[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: static pie: confusion between _DYNAMIC, crt1.o, Scrt1.o



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.
-mike

Attachment: signature.asc
Description: PGP signature


Reply to: