This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
cxa-atexit again
- From: Jack Howarth <howarth at bromo dot msbb dot uc dot edu>
- To: gcc at gcc dot gnu dot org
- Date: Sat, 1 Jun 2002 21:35:57 -0400 (EDT)
- Subject: 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