Date: Wed, 29 Jan 2020 16:46:41 -0500 From: Rich Felker <dalias@...c.org> To: musl@...ts.openwall.com Subject: Re: Static linking is broken after creation of DT_TEXTREL segment On Thu, Jan 30, 2020 at 12:35:52AM +0300, Андрей Аладьев wrote: > "readelf -d main | grep TEXTREL" returns the same text on both musl and > glibc containers: > > 0x0000000000000016 (TEXTREL) 0x0 > 0x000000000000001e (FLAGS) TEXTREL > > "gcc -no-pie" is another workaround for musl container like Rich said. But > I think that 'set(CMAKE_EXE_LINKER_FLAGS "-static")' will be best cross > platform solution. As I know "-static" implies "no-pie". -static normally does not imply -no-pie with musl target. musl was the first to introduce static pie, and it was not treated as something special/weird you have to request, just what you get with -static + -pie or -static and default-pie toolchain. When GCC upstreamed static pie with glibc support, they made it so -static overrides -pie and so you need the new -static-pie to get static pie. musl patches for gcc revert this change since it's a regression to the original behavior, treats static-pie a second-class, and does not work with environments where pie is mandatory (like nommu targets) where default-pie *must* be honored. Rich
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.