This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

cxa-atexit again


Hi,
    I just finished running the test case from...

http://gcc.gnu.org/ml/gcc-patches/1999-12n/msg00664.html

and discovered that it passes fine here with...

1) gcc-3.0.4 built with debian g++-cxa-atexit patch that sets
flag_use_cxa_atexit to 1 in src/gcc/cp/decl2.c
2) gcc-3.1 built without the g++-cxa-atexit patch

I also get passes from the test case with or without -fuse-cxa-atexit.
Lastly I find that the binaries in all cases show...

nm a.out | grep atexit
         U __cxa_atexit@@GLIBC_2.1.3

suggesting I think that the __cxa_atexit usage is being toggled on
in all cases.
   I find this puzzling because debian added the g++-cxa-atexit patch
thinking it would make the -fuse-cxa-atexit flag on by default.
However I have two conflicting observations here...

1) with or without setting flag_use_cxa_atexit to 1 in src/gcc/cp/decl2.c
I can pass the test case with and without -fuse-cxa-atexit
and __cxa_atexit is always linked in

and

2) with flag_use_cxa_atexit to 1 we are seeing binutils breakage

This seems to argue that the g++-cxa-atexit patch is doing far more
than setting the -fuse-cxa-atexit flag on as the default. Also
is -fuse-cxa-atexit getting set automatically these days depending
on if the libc gcc 3.1 is built against has use-cxa-atexit support?
That would seem to be the case since I always see a __cxa_atexit 
symbol regardless of the presence of the -fuse-cxa-atexit flag
and the test case is always passed now.

Thanks in advance for any clarifications.
                               Jack


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]