global contructors

Philippe Simons loki_666 at fastmail.fm
Thu Aug 24 15:01:24 UTC 2006


So i need to add "builtin_define ("__USE_INIT_FINI__");" to
arm/rtemself.h
or add a #ifdef __ELF__ to _Thread_Handler?

Philippe
 
On Thu, 24 Aug 2006 10:28:20 +1000, "Chris Johns" <chrisj at rtems.org>
said:
> Philippe Simons wrote:
> > I'm close to get global construcors working on ARM.
> > my .init/.fini and .ctors/.dtors sections are build correctly
> > I made some test to force the call to _init() in the Init task, and it
> > seems to works.
> > 
> > but where should i define the __USE_INIT_FINI__ to let _Thread_Handler
> > call _init()?
> > i tried to add it in the bsp_specs using: %(old_cpp) %{qrtems:
> > -D__USE_INIT_FINI__ }
> > but it doesnt seems to change anything to _Thread_Handler
> > 
> > any tips on this?
> > 
> 
> You need to build the tools with the correct setup:
> 
> [cjohns at moa rtemsrpms]$ which i386-rtems4.7-gcc
> /opt/rtems-4.7/bin/i386-rtems4.7-gcc
> [cjohns at moa rtemsrpms]$ i386-rtems4.7-gcc -dM -E - </dev/null | grep 
> __USE_INIT_FINI__
> #define __USE_INIT_FINI__ 1
> [cjohns at moa rtemsrpms]$ arm-rtems4.7-gcc -dM -E - </dev/null | grep 
> __USE_INIT_FINI__
> 
> Looking at the source for the rtems-4.7 tool set:
> 
> [chrisjohns at england config]$ pwd
> /home/chrisjohns/rtems/4.7/packages/BUILD/custom-arm-rtems4.7-gcc-4.1.1/gcc-4.1.1/gcc/config
> [chrisjohns at england config]$ grep -r __USE_INIT_FINI__ arm
> [chrisjohns at england config]$ grep -r __USE_INIT_FINI__ m68k
> m68k/rtemself.h:        builtin_define ("__USE_INIT_FINI__");   \
> 
> I did notice the arm does have __USES_INITFINI__ defined but this is 
> only target in gcc to have this.
> 
> Should the arm have __USE_INIT_FINI__ defined or should RTEMS handle 
> __USES_INITFINI__ or is it safe to assume __ELF__ means __USE_INIT_FINI__
> ?
> 
> Regards
> Chris

-- 
http://www.fastmail.fm - Does exactly what it says on the tin




More information about the users mailing list