|
Message-ID: <aa379bf6-ea86-a5ff-a410-62f2ad3bfee6@redhat.com> Date: Mon, 27 Apr 2020 14:24:24 +0200 From: Harald Hoyer <harald@...hat.com> To: Rich Felker <dalias@...c.org> Cc: musl@...ts.openwall.com Subject: Re: [PATCH] Enable linking to a static position independent executable Am 24.04.20 um 17:08 schrieb Rich Felker: > On Tue, Apr 07, 2020 at 03:17:07PM +0200, harald@...hat.com wrote: >> diff --git a/tools/musl-gcc.specs.sh b/tools/musl-gcc.specs.sh >> old mode 100644 >> new mode 100755 >> index 30492574..4d93626a >> --- a/tools/musl-gcc.specs.sh >> +++ b/tools/musl-gcc.specs.sh >> @@ -17,13 +17,13 @@ cat <<EOF >> libgcc.a%s %:if-exists(libgcc_eh.a%s) >> >> *startfile: >> -%{!shared: $libdir/Scrt1.o} $libdir/crti.o crtbeginS.o%s >> +%{shared:;static:$libdir/crt1.o%s; static-pie:$libdir/rcrt1.o%s; pie:$libdir/Scrt1.o%s; :$libdir/crt1.o%s} $libdir/crti.o%s %{static:crtbeginT.o%s; shared|static-pie|pie:crtbeginS.o%s; :crtbegin.o%s} >> >> *endfile: >> -crtendS.o%s $libdir/crtn.o >> +%{static:crtend.o%s; shared|static-pie|pie:crtendS.o%s; :crtend.o%s} $libdir/crtn.o%s > > Is there a reason for this change? I think crtendS.o is always > preferable and the other ones just exist for weird historical reasons. I just didn't want to divert too much from the original gcc spec. > >> *link: >> --dynamic-linker $ldso -nostdlib %{shared:-shared} %{static:-static} %{rdynamic:-export-dynamic} >> +%{!r:--build-id} --no-add-needed %{!static|static-pie:--eh-frame-hdr} --hash-style=gnu %{shared:-shared} %{!shared:%{!static:%{!static-pie:%{rdynamic:-export-dynamic} -dynamic-linker $ldso}} %{static:-static} %{static-pie:-static -pie --no-dynamic-linker -z text}} > Same as above. I just didn't want to divert too much from the original gcc spec. But you are right. Small steps. > There are multiple unrelated and probably unwanted changes here: > > * --build-id> * --eh-frame-header but only for non-static? > * --hash-style=gnu? > * Disallowing -rdynamic for static[-pie]? > * ... ? > > I think all that should be done here is ensuring that > --no-dynamic-linker is passed whenever -static-pie is. Is there > something else that's a wanted change that I'm overlooking? > > Rich > Will update with a minimal diff.
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.