gecko-dev/build/unix
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
..
build-binutils Bug 1482268 - Upgrade binutils for clang builds to 2.31.1. r=froydnj 2018-08-31 21:49:12 +00:00
build-gcc Backed out 6 changesets (bug 1451104) for causing build bustages on OS X Cross Compiled. CLOSED TREE 2018-07-21 03:18:37 +03:00
build-hfsplus Bug 1436800: Update fedora source URL; r=glandium 2018-02-08 12:26:08 -07:00
elfhack Bug 1484872 - Move LTO flags to python configure. r=froydnj 2018-08-21 08:40:26 +09:00
stdc++compat Bug 1464084 - Don't export std:🧵:_M_start_thread symbols with --enable-stdcxx-compat. r=froydnj 2018-06-01 08:10:25 +09:00
aix.exp
moz.build Bug 1333003 part 4 - Package the binary of llvm-symbolizer also on Windows. r=ted 2017-03-10 12:24:02 +08:00
mozconfig.asan Bug 1489001 - Move most of mozconfig.linux to mozconfig.unix. r=froydnj 2018-09-08 07:41:19 +09:00
mozconfig.linux Bug 1079662 - Always enable PIE. r=froydnj 2018-09-08 07:41:21 +09:00
mozconfig.linux32 Backed out 4 changesets (bug 1417646) for Webdriver missing geckodriver binary, at least on Linux x64 asan 2018-08-30 12:54:45 +03:00
mozconfig.lto Bug 1079662 - Always enable PIE. r=froydnj 2018-09-08 07:41:21 +09:00
mozconfig.stdcxx Bug 1486998 - Use the binutils toolchain instead of gcc for builds using clang. r=froydnj 2018-08-30 07:30:30 +09:00
mozconfig.tsan Bug 1079662 - Always enable PIE. r=froydnj 2018-09-08 07:41:21 +09:00
mozconfig.unix Bug 1489001 - Move most of mozconfig.linux to mozconfig.unix. r=froydnj 2018-09-08 07:41:19 +09:00
mozilla.in
print-failed-commands.sh
print-non-newline.sh
rewrite_asan_dylib.py bug 1463425 - Fix flake8/pep8 issue by hand in build/ r=gps 2018-05-21 23:58:19 +02:00
run-gprof.sh
run-hiprof.sh
run-mozilla.sh Bug 1407211 - Fix typo in build/unix/run-mozilla.sh from bug 1403366. r=glandium 2017-10-12 07:28:20 +09:00
run-third.sh