[PING][PATCH][ARM]Use different startfile and endfile for elf target when generating shared object.

Renlin Li renlin.li@foss.arm.com
Wed Jun 7 16:41:00 GMT 2017


Ping ~

On 14/12/16 15:33, Renlin Li wrote:
> Ping~
>
> Regards,
> Renlin
>
> On 16/06/16 12:04, Renlin Li wrote:
>> Hi all,
>>
>> GCC has startfile and endfile spec string built into it.
>> startfile is used to specify objects files to include at the start of the link process.
>> While endfile, on the other hand, is used to specify objects files to include at the end
>> of the link process.
>>
>> crtbegin.o is one of the object files specified by startfile spec string. IIUC,
>> crtbeginS.o should be used in place of crtbegin.o when generating shared objects.
>> The same applies to crtend.o which is one of the endfile. crtendS.o should be used when
>> generating shared objects.
>>
>> This patch makes the change to use different crtbegin and crtend files when creating
>> shared and static object for elf toolchain. The linux toolchain already did this
>> differentiation.
>>
>> So when the toolchain doesn't support shared object, the following error message will be
>> produced:
>> ld: cannot find crtbeginS.o: No such file or directory
>>
>> Still, those specs strings built into GCC can be overridden by using
>> -specs=command-line switch to specify a spec file.
>>
>> arm-none-eabi regression test without new issues, OK for trunk?
>>
>> Regards,
>> Renlin Li
>>
>> gcc/ChangeLog:
>>
>> 2016-06-16  Renlin Li  <renlin.li@arm.com>
>>
>>      * config/arm/unknown-elf.h (UNKNOWN_ELF_STARTFILE_SPEC): Use
>>      crtbeginS.o for shared object.
>>      (UNKNOWN_ELF_ENDFILE_SPEC): Use crtendS.o for shared object.



More information about the Gcc-patches mailing list