|
Message-ID: <545B657F.8060805@opensource.dyc.edu> Date: Thu, 06 Nov 2014 07:11:43 -0500 From: "Anthony G. Basile" <basile@...nsource.dyc.edu> To: musl@...ts.openwall.com Subject: Re: fixing -fPIE + -fstack-protector-all On 11/05/14 11:01, Timo Teras wrote: > On Wed, 05 Nov 2014 16:25:03 +0100 > John Spencer <maillist-musl@...fooze.de> wrote: > >> using -fPIE + -fstack-protector-all is currently broken for a number >> of architectures (most notably i386) in the default gcc setup >> (including the musl-cross patches), as it depends on a >> libssp_nonshared.a which provides __stack_chk_fail_local(). > > In Alpine Linux we are patching gcc to unconditionally to have > -lssp_nonshared: > http://git.alpinelinux.org/cgit/aports/tree/main/gcc/gcc-4.8-musl-libssp.patch The piepatches do not need to link in anything on glibc or uclibc, whereas in your approach they need to pick up the symbol from libc_unshared. It also doesn't depend on whether its a cross compile or native attempt to boostrap into a hardened system (gentoo style) form a non-hardened musl i686. In both cases it will fail unless you provide __stack_chk_fail_local by some "hack". > > And making musl package provide that library: > http://git.alpinelinux.org/cgit/aports/tree/main/musl/__stack_chk_fail_local.c > http://git.alpinelinux.org/cgit/aports/tree/main/musl/APKBUILD#n60 > > This is for two reasons: > > 1. gcc bootstrap is broken if it's to be compiled with > -fstack-protector otherwise > > 2. Linking without "-fstack-protector" flag with .a or .o files that > have been compiled with SSP would break. > > Basically, __stack_chk_fail_local symbol should be provided always. Agreed. The symbol is there on both x86_64 and i386 in libc_nonshared.a (glibc). What I've never understood is why this appears only as an issue in i686 and not x86_64 for musl. I haven't had time to dig into gcc internals to find out why. > Agreeably gcc should emit 'hlt' or similar instead of that function > call. Or at least provide implementation for that function with 'once' > linking. > > /Timo > -- Anthony G. Basile, Ph. D. Chair of Information Technology D'Youville College Buffalo, NY 14201 (716) 829-8197
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.