On 14/09/12 21:34, Ben Cheng wrote: > Hi, > > Recently we found out that the .interp section starts to show up in > ARM executables compiled with "-shared -static" and the gold linker > from binutils 2.22. We tracked down the origin of the dynamic linker > commands and they are always explicitly specified in > config/arm/linux-elf.h. We tested the following simple patch to > suppress the dynamic linker options for statically linked programs on > Android's AOSP tree. Everything builds fine and the unneeded .interp > section is gone. > > Thanks, > -Ben > > == > > gcc/ChangeLog > 2012-09-14 Ben Cheng <bcch...@google.com> > * config/arm/linux-elf.h: Suppress the dynamic linker commands for > statically linked programs. > > Index: config/arm/linux-elf.h > =================================================================== > --- config/arm/linux-elf.h (revision 191198) > +++ config/arm/linux-elf.h (working copy) > @@ -65,8 +65,9 @@ > %{static:-Bstatic} \ > %{shared:-shared} \ > %{symbolic:-Bsymbolic} \ > - %{rdynamic:-export-dynamic} \ > - -dynamic-linker " GNU_USER_DYNAMIC_LINKER " \ > + %{!static: \ > + %{rdynamic:-export-dynamic} \ > + -dynamic-linker " GNU_USER_DYNAMIC_LINKER "} \ > -X \ > %{mbig-endian:-EB} %{mlittle-endian:-EL}" \ > SUBTARGET_EXTRA_LINK_SPEC >
OK. R.