c - Linking with another start-up file -
i trying link program own start-up file using startup
directive in ld script:
... entry(_start) startup(my_crt1.o) ...
gcc driver used link program (not bother library paths libgcc, etc.):
gcc -t my_script.ld ...
unfortunately, works gcc compiled powerpc targets, while arm or i686 targets don't , still include crt0.o in collect2. example:
arm-eabi-g++ -v -t my_script.ld ...
gives me:
collect2 ... /opt/lib/gcc/arm-eabi/4.8.0/../../../../arm-eabi/lib/crt0.o ...
and thus:
crt0.s:101: multiple definition of `_start'
it seems startup
directive totally ignored (the powerpc target uses default crt0 unless startup
directive specified) , there no way disable default crt0.
is there portable way link against start-up file?
my start-up file uses libgcc
functions (to call ctors , dtors) crtbegin.o
, crtend.o
, etc. needed avoid -nostartfiles
option disables crt*.o
- need disable crt0.o
only.
thank you
i trying link program own start-up file ...
gcc driver used link program ...
in case, must supply -nostartfiles
flag gcc.
Comments
Post a Comment