This is the mail archive of the gcc-help@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]

Re: Controlling ld and as with GCC-Backend


Am 17.03.2013 13:50, schrieb Chung-Ju Wu:
> 2013/3/17 Jens Mehler <jens.mehler@mni.thm.de>:
>> Hi,
>>
>> the problem I keep running into is something that I don't fully
>> understand (yet).
>> I wrote a new backend for GCC, ported the GNU-Toolchain to my target and
>> got it running.
>>
>> The next thing I did:
>> I wrote a small helloworld.c a start.s and an end.s.
>> Everything that is needed is included in those files. When building the
>> program myself:
>> eco32-elf-gcc -S helloworld.c
>> eco32-elf-as -o hello.o start.s helloworld.s end.s
>> eco32-elf-ld -o hello.elf hello.o
>> everything works like a charm. The program even runs in the simulator
>> (after using eco32-elf-objdump -O binary hello.elf hello.bin)
>>
>> After that I tried using only gcc:
>> gcc -o hello.elf start.s helloworld.c end.s
>> after that I got "ld can't find crt0.o".
> Hi Jens,
>
> It is controlled by spec mechanism.
> The following is the link for its syntax:
> http://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html
>
> In your case, I think you should define your own
> STARTFILE_SPEC and ENDFILE_SPEC to guide gcc driver
> using start.o and end.o files.
>
>
> Best regards,
> jasonwucj
>
Hi Jasonwucj,

I implemented the start.o and end.o.
Fixed some errors in my binutils by letting the default functions taking
care of relaction and just adjust the reloc entries to the correct values.
Thanks for all your help!
~ Jens


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