[PING][PATCH][ARM]Use different startfile and endfile for elf target when generating shared object.
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 * 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.
Re: [PING][PATCH][ARM]Use different startfile and endfile for elf target when generating shared object.
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 * 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.
Re: [PING][PATCH][ARM]Use different startfile and endfile for elf target when generating shared object.
~ Ping https://gcc.gnu.org/ml/gcc-patches/2016-06/msg01227.html Regards, Renlin 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 * 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.