This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
gcc 3.1.1 eh_frame and global constructors for embedded platforms ie no start files
- From: Ken Faiczak <kfaiczak at SANDVINE dot com>
- To: "'gcc at gnu dot org'" <gcc at gnu dot org>
- Date: Thu, 14 Nov 2002 17:57:35 -0500
- Subject: gcc 3.1.1 eh_frame and global constructors for embedded platforms ie no start files
We are currently using gcc 3.0.3 for mips-wrs-vxworks
and trying to upgrade to 3.1.1 & 3.2
(using binutils ld 2.11.2 in both cases)
with 3.0.3 we have a munch script which process the
symbols looking for
_GLOBAL__F
_GLOBAL__I
_GLOBAL__D
and puts those in structs
frame_table[] =
ctors[] =
dtors[] =
and then vxWorks walks through the ctors
and we call __register_frame_info_table(frame_table, ob)
and all is fine
in 3.1.1
a lot of the constructors are now local symbols and thus cannot be linked to
without
mucking the object file.
and the frame table seems significantly smaller (200 entries down to 25)
I am looking at how to do this properly so going forward to new versions of
gcc this will work
I have tried using -Wl,-Ur but ld crashes on that and not sure exactly what
it would do anyway.
Someone else reported this a while back it seems as well, this may
we don't call __main() etc, but this could be a possibility,
but the libgcc.a does not have a __main()
do I need to set use_collect2=yes??
do I need to use -Ur to ld??
any ideas or thoughts would be helpful..
thanks
ken faiczak
kfaiczak@sandvine.com