Re: make on Debian 9.2 failing

Thorsten Glaser <[email protected]> Wed, 6 Dec 2017 14:40:56 +0100 (CET)
Newsgroups gmane.linux.lib.dietlibc
Message-ID <[email protected]>
Hi Lehner,

> I could not find usage of -fno-pie in the Debian source package and addin=
g it

tglase@tglase:/tmp/dietlibc-0.34~cvs20160606 $ fgrep -r no-pie .
=2E/diet.c:      if (!strcmp(argv[i],"-fno-pie")) pie=3D0;
=2E/diet.c:               strcmp(argv[i],"-fpie") && strcmp(argv[i],"-fno-p=
ie") &&
=2E/Makefile:     $(CCC) $(INC) $(CCFLAGS) $(EXTRACFLAGS) $(SPECIFICCFLAGS)=
 -c $< $(ASM_CFLAGS) -fno-pie -o $@
=2E/Makefile:$(OBJDIR)/stackgap.o: SPECIFICCFLAGS:=3D-fno-stack-protector -=
fno-pie
=2E/.pc/debian/multiarch.diff/diet.c:      if (!strcmp(argv[i],"-fno-pie"))=
 pie=3D0;
=2E/.pc/debian/multiarch.diff/diet.c:             strcmp(argv[i],"-fpie") &=
& strcmp(argv[i],"-fno-pie") &&
=2E/.pc/debian/buildflags.diff/Makefile:  $(CCC) $(INC) $(CCFLAGS) $(EXTRAC=
FLAGS) -c $< $(ASM_CFLAGS) -fno-pie -o $@
=2E/.pc/debian/buildflags.diff/Makefile:$(OBJDIR)/stackgap.o: EXTRACFLAGS:=
=3D-fno-stack-protector -fno-pie
=2E/.pc/debian/native-x32.diff/diet.c:      if (!strcmp(argv[i],"-fno-pie")=
) pie=3D0;
=2E/.pc/debian/native-x32.diff/diet.c:            strcmp(argv[i],"-fpie") &=
& strcmp(argv[i],"-fno-pie") &&
=2E/.pc/debian/native-x32.diff/Makefile:  $(CCC) $(INC) $(CCFLAGS) $(EXTRAC=
FLAGS) -c $< $(ASM_CFLAGS) -fno-pie -o $@
=2E/.pc/debian/native-x32.diff/Makefile:$(OBJDIR)/stackgap.o: EXTRACFLAGS:=
=3D-fno-stack-protector -fno-pie
=2E/.pc/debian/sparc32-mcpu-v9.diff/diet.c:      if (!strcmp(argv[i],"-fno-=
pie")) pie=3D0;
=2E/.pc/debian/sparc32-mcpu-v9.diff/diet.c:               strcmp(argv[i],"-=
fpie") && strcmp(argv[i],"-fno-pie") &&
=2E/debian/rules:export DEB_CFLAGS_MAINT_APPEND =3D -Wall -fno-pie
=2E/debian/rules:export DEB_LDFLAGS_MAINT_APPEND =3D -no-pie
=2E/debian/patches/debian/buildflags.diff:-       $(CCC) $(INC) $(CCFLAGS) =
$(EXTRACFLAGS) -c $< $(ASM_CFLAGS) -fno-pie -o $@
=2E/debian/patches/debian/buildflags.diff:+       $(CCC) $(INC) $(CCFLAGS) =
$(EXTRACFLAGS) $(SPECIFICCFLAGS) -c $< $(ASM_CFLAGS) -fno-pie -o $@
=2E/debian/patches/debian/buildflags.diff:-$(OBJDIR)/stackgap.o: EXTRACFLAG=
S:=3D-fno-stack-protector -fno-pie
=2E/debian/patches/debian/buildflags.diff:+$(OBJDIR)/stackgap.o: SPECIFICCF=
LAGS:=3D-fno-stack-protector -fno-pie
=2E/debian/changelog:    to dietlibc's build system. Also make sure that we=
 pass -fno-pie and
=2E/debian/changelog:    -no-pie to the build system so that the new defaul=
t setting of gcc in

Wasn=E2=80=99t that hard now, was it?

> In fact, I succeeded by *removing* -fno-pie in the line where stackgap.o =
is
> compiled, see the patch below.
>=20
> I was than able to compile dietlibc with or without the "PIE" line (line
> number 98 in `Makefile`)

This needs Felix to comment on, I don=E2=80=99t know if dietlibc nowadays
works with static PIE.

> If pie is default on x86_64, why does this break builds now?=C2=A0 Why wo=
uld I want

PIE is default on all architectures. Unfortunately, someone from
Canonical chose to enable this in the *compiler*, after someone
else chose to enable this in dpkg-buildflags, while upstream GCC
chose to do other unfortunate things, so the PIE situation is an
utter mess.

bye,
//mirabilos
--=20
=C2=ABMyISAM tables -will- get corrupted eventually. This is a fact of life=
=2E =C2=BB
=E2=80=9Cmysql is about as much database as ms access=E2=80=9D =E2=80=93 =
=E2=80=9CMSSQL at least descends
from a database=E2=80=9D =E2=80=9Cit's a rebranded SyBase=E2=80=9D =E2=80=
=9CMySQL however was born from a
flatfile and went downhill from there=E2=80=9D =E2=80=93 =E2=80=9Cat least =
jetDB doesn=E2=80=99t claim to
be a database=E2=80=9D=09=E2=80=A3=E2=80=A3=E2=80=A3 Please, http://deb.li/=
mysql and MariaDB, finally die!