Re: static pie: confusion between _DYNAMIC, crt1.o, Scrt1.o
* Mike Frysinger via Libc-alpha:
> On 24 Oct 2022 13:12, Florian Weimer via Libc-alpha wrote:
>> * Samuel Thibault:
>> > Florian Weimer, le lun. 24 oct. 2022 12:11:03 +0200, a ecrit:
>> >> * Samuel Thibault:
>> >>
>> >> > Is it not possible to make -static -pie get the same behavior? That'd be
>> >> > way more orthogonal for people to understand.
>> >>
>> >> I think you want -static to mean -static-pie if GCC defaults to PIE,
>> >> right?
>> >
>> > That would actually provide the pie benefit automatically for all
>> > static executable, yes. Otherwise static pie will be a nice thing, but
>> > not actually largely used in practice. And most people won't actually
>> > realize it.
>>
>> That's true.
>>
>> Fedora uses a specs file fragment that turns -static into -static-pie
>> under certain conditions.
>>
>> >> That will break a few things that use gcc -static to build binaries for
>> >> quasi-bare-metal targets using the GNU ELF toolchain (where glibc's
>> >> startup code is not use).
>> >
>> > But then the piece which is saying that glibc's startup code is not in
>> > use can be fixed into not using static-pie, can't it?
>>
>> In theory, yes. How hard it will be depends on the specs file change
>> for --enable-default-pie.
>
> i don't see a problem with -static DTRT. people abusing a compiler for a
> target it wasn't designed for means they get the pieces. it's not like
> they're using -static in the first place to pull in the C library & gcc
> internal libs (which also depend/assume the corresponding OS & C lib).
>
> plus, -static -no-pie would get you back to a non-PIE static binary.
The last part depends on the specs file, it has to be put there
explicitly I think. And perhaps -Wl,-no-pie as well?
Maybe also do -no-pie implicitly with -static -nostartfiles?
Thanks,
Florian
Reply to:
- References:
- static pie: confusion between _DYNAMIC, crt1.o, Scrt1.o
- From: Samuel Thibault <samuel.thibault@ens-lyon.org>
- Re: static pie: confusion between _DYNAMIC, crt1.o, Scrt1.o
- From: Xi Ruoyao <xry111@xry111.site>
- Re: static pie: confusion between _DYNAMIC, crt1.o, Scrt1.o
- From: Samuel Thibault <sthibault@debian.org>
- Re: static pie: confusion between _DYNAMIC, crt1.o, Scrt1.o
- From: Florian Weimer <fweimer@redhat.com>
- Re: static pie: confusion between _DYNAMIC, crt1.o, Scrt1.o
- From: Samuel Thibault <sthibault@debian.org>
- Re: static pie: confusion between _DYNAMIC, crt1.o, Scrt1.o
- From: Florian Weimer <fweimer@redhat.com>
- Re: static pie: confusion between _DYNAMIC, crt1.o, Scrt1.o
- From: Mike Frysinger <vapier@gentoo.org>