From: Jory A. Pratt Date: Mon, 30 Jan 2017 03:01:01 +0000 (-0600) Subject: www-client/firefox: Fix pie detection on hardened toolchain, bug #607350 X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=50a543bdfe736ec8faa708c93471e1e31ef1e8eb;p=gentoo.git www-client/firefox: Fix pie detection on hardened toolchain, bug #607350 --- diff --git a/www-client/firefox/files/fix_hardened_pie_detection.patch b/www-client/firefox/files/fix_hardened_pie_detection.patch new file mode 100644 index 000000000000..7cc74cd1eb72 --- /dev/null +++ b/www-client/firefox/files/fix_hardened_pie_detection.patch @@ -0,0 +1,36 @@ +From: Jory A. Pratt + +CFLAGS must contain -fPIC when checking the linker + +https://bugs.gentoo.org/show_bug.cgi?id=607350 + +diff --git a/build/autoconf/compiler-opts.m4 b/build/autoconf/compiler-opts.m4 +--- a/build/autoconf/compiler-opts.m4 ++++ b/build/autoconf/compiler-opts.m4 +@@ -263,23 +263,26 @@ fi + + MOZ_ARG_ENABLE_BOOL(pie, + [ --enable-pie Enable Position Independent Executables], + MOZ_PIE=1, + MOZ_PIE= ) + + if test "$GNU_CC" -a -n "$MOZ_PIE"; then + AC_MSG_CHECKING([for PIE support]) ++ _SAVE_CFLAGS=$CFLAGS ++ CFLAGS="$CFLAGS -fPIC" + _SAVE_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -pie" + AC_TRY_LINK(,,AC_MSG_RESULT([yes]) + [MOZ_PROGRAM_LDFLAGS="$MOZ_PROGRAM_LDFLAGS -pie"], + AC_MSG_RESULT([no]) + AC_MSG_ERROR([--enable-pie requires PIE support from the linker.])) + LDFLAGS=$_SAVE_LDFLAGS ++ CFLAGS=$_SAVE_CFLAGS + fi + + AC_SUBST(MOZ_PROGRAM_LDFLAGS) + + dnl ASan assumes no symbols are being interposed, and when that happens, + dnl it's not happy with it. Unconveniently, since Firefox is exporting + dnl libffi symbols and Gtk+3 pulls system libffi via libwayland-client, + dnl system libffi interposes libffi symbols that ASan assumes are in diff --git a/www-client/firefox/firefox-51.0.ebuild b/www-client/firefox/firefox-51.0.ebuild index f1f2b1c9674f..579ef6ecd65a 100644 --- a/www-client/firefox/firefox-51.0.ebuild +++ b/www-client/firefox/firefox-51.0.ebuild @@ -127,7 +127,8 @@ src_unpack() { src_prepare() { # Apply our patches - eapply "${WORKDIR}/firefox" + eapply "${WORKDIR}/firefox" \ + "${FILESDIR}"/fix_hardened_pie_detection.patch # Enable gnomebreakpad if use debug ; then