gecko-dev/build/autoconf
Mike Hommey cd06f032af Bug 1079662 - Always enable PIE. r=froydnj
Last attempt, a few years ago, blatantly failed because nautilus (the
GNOME file manager) can't start PIE executables, which look like shared
libraries, and that it thus considers not being executables.

Downstreams don't actually have the problem, because users won't be
launching Firefox from a file manager, but for mozilla.org builds, it is
a problem because users would download, then extract, and then likely
try to run the Firefox executable from a file manager.

So for mozilla.org builds, we still need to find a way around the
nautilus problem.

A .desktop file could be a solution, but .desktop files have not
actually been designed for this use case, which leads to:
- having to use an awful one-liner shell wrapper to derive the path
  to the executable from that of the .desktop file,
- not even being able to associate an icon,
- the .desktop file not being copiable to a location where .desktop
  files would normally go, because it would then fail to find the
  executable.

Another possibility is to go back to using a shell wrapper, but that's
not entirely appealing.

What we chose here is similar, where we have a small `firefox` wrapper
that launches the real `firefox-bin` (which is still leftover from those
old times where we had a shell wrapper, for reasons).

The small `firefox` wrapper is a minimalist C executable that just
finds the path to the `firefox-bin` executable and executes it with the
same args it was called with. The wrapper is only enabled when the
MOZ_NO_PIE_COMPAT environment variable is set, which we only take into
account on Linux. The variable is only really meant to be used for
mozilla.org builds, for the nautilus problem. Downstreams will just pick
the default, which is changed to build PIE.

On other platforms, PIE was already enabled by default, so we just
remove the --enable-pie configure flag.

Differential Revision: https://phabricator.services.mozilla.com/D5109
2018-09-08 07:41:21 +09:00
..
acwinpaths.m4
alloc.m4
altoptions.m4
android.m4 Bug 1352015 - Part 1: Fix Android SDK configure checks. r=nalexander 2018-05-06 20:39:11 +02:00
arch.m4 Bug 1397807 - Allow rustc to emit NEON instructions when clang does on ARMv7 and use NEON in encoding_rs. r=glandium 2018-06-05 14:56:11 +03:00
clang-plugin.m4 Bug 1454667 - clear out CPPFLAGS before compiling test files for the clang plugin. r=froydnj 2018-05-11 12:23:30 +03:00
codeset.m4
compiler-opts.m4 Bug 1079662 - Always enable PIE. r=froydnj 2018-09-08 07:41:21 +09:00
config.guess
config.status.m4 Bug 1341234 - part 1 - add AC_SUBST_TOML_LIST macro; r=gps 2017-11-10 10:05:36 -05:00
config.sub
expandlibs.m4 Bug 1487931 - Avoid using linker scripts as file lists when doing LTO with BFD ld. r=froydnj 2018-09-04 21:49:16 +00:00
frameptr.m4 Bug 1485716 - part 1 - always use frame pointers on aarch64 windows; r=dmajor 2018-08-23 16:48:53 -04:00
hooks.m4
hotfixes.m4
icu.m4 Bug 1484535 - Allow C++ files to check MOZ_SYSTEM_ICU. r=froydnj 2018-08-21 16:02:00 +03:00
install-sh
ios.m4
lto.m4
mozheader.m4
mozprog.m4
nspr-build.m4 Bug 1341222 - Avoid m4 breaking the sed expressions that set NSPR_INCLUDE_DIR and NSPR_LIB_DIR. r=froydnj 2018-08-21 07:25:00 +09:00
nspr.m4
nss.m4
pkg.m4
sanitize.m4 Bug 1079662 - Always pass -rdynamic when linking with sanitizers. r=froydnj 2018-09-08 07:41:21 +09:00
subconfigure.m4
toolchain.m4 Bug 1451372: Force libatomic only on 32-bits Linux clang builds; r=froydnj 2018-04-06 16:27:01 +02:00
zlib.m4