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