Message ID | 1373290149-14808-1-git-send-email-sebastian.huber@embedded-brains.de |
---|---|
State | New |
Headers | show |
Ping. On 2013-07-08 15:29, Sebastian Huber wrote: > The __cxa_atexit support is a reqirement for destructor registration of > thread-local objects. > > For *-*-elf it is already enabled by default. See comment line 810 in > "gcc/config.gcc". > > Define TARGET_LIBGCC_SDATA_SECTION on PowerPC for RTEMS to ".sdata" to > place the __dso_handle. The __dso_handle is referenced by application > code. In case this code uses the small data section, the __dso_handle > must be there. > > This patch should be committed to GCC 4.8 and 4.9. > > Test results: > > http://gcc.gnu.org/ml/gcc-testresults/2013-07/msg00671.html > > gcc/ChangeLog > 2013-07-08 Sebastian Huber <sebastian.huber@embedded-brains.de> > > * config.gcc (*-*-rtems*): Use __cxa_atexit by default. > * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define. > --- > gcc/config.gcc | 1 + > gcc/config/rs6000/rtems.h | 3 +++ > 2 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/gcc/config.gcc b/gcc/config.gcc > index a927964..1648dfe 100644 > --- a/gcc/config.gcc > +++ b/gcc/config.gcc > @@ -734,6 +734,7 @@ case ${target} in > yes) thread_file='rtems' ;; > esac > extra_options="${extra_options} rtems.opt" > + default_use_cxa_atexit=yes > use_gcc_stdint=wrap > ;; > *-*-uclinux*) > diff --git a/gcc/config/rs6000/rtems.h b/gcc/config/rs6000/rtems.h > index b910b5e..fb22be1 100644 > --- a/gcc/config/rs6000/rtems.h > +++ b/gcc/config/rs6000/rtems.h > @@ -34,6 +34,9 @@ > } \ > while (0) > > +#undef TARGET_LIBGCC_SDATA_SECTION > +#define TARGET_LIBGCC_SDATA_SECTION ".sdata" > + > #undef CPP_OS_DEFAULT_SPEC > #define CPP_OS_DEFAULT_SPEC "%(cpp_os_rtems)" > >
This is now committed. Please double check me, Sebastian. --joel On 7/31/2013 2:02 AM, Sebastian Huber wrote: > Ping. > > On 2013-07-08 15:29, Sebastian Huber wrote: >> The __cxa_atexit support is a reqirement for destructor registration of >> thread-local objects. >> >> For *-*-elf it is already enabled by default. See comment line 810 in >> "gcc/config.gcc". >> >> Define TARGET_LIBGCC_SDATA_SECTION on PowerPC for RTEMS to ".sdata" to >> place the __dso_handle. The __dso_handle is referenced by application >> code. In case this code uses the small data section, the __dso_handle >> must be there. >> >> This patch should be committed to GCC 4.8 and 4.9. >> >> Test results: >> >> http://gcc.gnu.org/ml/gcc-testresults/2013-07/msg00671.html >> >> gcc/ChangeLog >> 2013-07-08 Sebastian Huber <sebastian.huber@embedded-brains.de> >> >> * config.gcc (*-*-rtems*): Use __cxa_atexit by default. >> * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define. >> --- >> gcc/config.gcc | 1 + >> gcc/config/rs6000/rtems.h | 3 +++ >> 2 files changed, 4 insertions(+), 0 deletions(-) >> >> diff --git a/gcc/config.gcc b/gcc/config.gcc >> index a927964..1648dfe 100644 >> --- a/gcc/config.gcc >> +++ b/gcc/config.gcc >> @@ -734,6 +734,7 @@ case ${target} in >> yes) thread_file='rtems' ;; >> esac >> extra_options="${extra_options} rtems.opt" >> + default_use_cxa_atexit=yes >> use_gcc_stdint=wrap >> ;; >> *-*-uclinux*) >> diff --git a/gcc/config/rs6000/rtems.h b/gcc/config/rs6000/rtems.h >> index b910b5e..fb22be1 100644 >> --- a/gcc/config/rs6000/rtems.h >> +++ b/gcc/config/rs6000/rtems.h >> @@ -34,6 +34,9 @@ >> } \ >> while (0) >> >> +#undef TARGET_LIBGCC_SDATA_SECTION >> +#define TARGET_LIBGCC_SDATA_SECTION ".sdata" >> + >> #undef CPP_OS_DEFAULT_SPEC >> #define CPP_OS_DEFAULT_SPEC "%(cpp_os_rtems)" >> >> >
diff --git a/gcc/config.gcc b/gcc/config.gcc index a927964..1648dfe 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -734,6 +734,7 @@ case ${target} in yes) thread_file='rtems' ;; esac extra_options="${extra_options} rtems.opt" + default_use_cxa_atexit=yes use_gcc_stdint=wrap ;; *-*-uclinux*) diff --git a/gcc/config/rs6000/rtems.h b/gcc/config/rs6000/rtems.h index b910b5e..fb22be1 100644 --- a/gcc/config/rs6000/rtems.h +++ b/gcc/config/rs6000/rtems.h @@ -34,6 +34,9 @@ } \ while (0) +#undef TARGET_LIBGCC_SDATA_SECTION +#define TARGET_LIBGCC_SDATA_SECTION ".sdata" + #undef CPP_OS_DEFAULT_SPEC #define CPP_OS_DEFAULT_SPEC "%(cpp_os_rtems)"