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]

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







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