Граф коммитов

10 Коммитов

Автор SHA1 Сообщение Дата
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
Mike Hommey a5cbd7bc7e Bug 1489001 - Move most of mozconfig.linux to mozconfig.unix. r=froydnj
Bug 1487330 made mozconfig.asan use mozconfig.linux, but while that
worked out fine, it turns out that we do have mac builds using
e.g. mozconfig.asan, and that those can break when doing linux-specific
changes to mozconfig.linux.


--HG--
rename : build/unix/mozconfig.linux => build/unix/mozconfig.unix
2018-09-08 07:41:19 +09:00
Mike Hommey 880d97b311 Bug 1487330 - Make mozconfig.{asan,lto,tsan} use mozconfig.linux. r=froydnj
Those mozconfigs do things in common that are already in
mozconfig.linux. Let's just use that.

This will make the build have the binutils toolchain in PATH rather than
passing it to CC/CXX, which is better because it also makes the build
use tools such as ar, ranlib, objcopy from the binutils toolchain,
rather than the old system ones.

Differential Revision: https://phabricator.services.mozilla.com/D4649
2018-08-31 17:25:37 +09:00
Gurzau Raul 3291b096a2 Backed out changeset e1eac066705f (bug 1487330) for permafailing with leaks at mozilla::net::nsStandardURL::TemplatedMutator on a CLOSED TREE 2018-08-31 04:39:10 +03:00
Mike Hommey 78c3a07f1f Bug 1487330 - Make mozconfig.{asan,lto,tsan} use mozconfig.linux. r=froydnj
Those mozconfigs do things in common that are already in
mozconfig.linux. Let's just use that.

This will make the build have the binutils toolchain in PATH rather than
passing it to CC/CXX, which is better because it also makes the build
use tools such as ar, ranlib, objcopy from the binutils toolchain,
rather than the old system ones.

Differential Revision: https://phabricator.services.mozilla.com/D4649
2018-08-31 07:50:56 +09:00
Mike Hommey 6e78f08178 Bug 1486998 - Use the binutils toolchain instead of gcc for builds using clang. r=froydnj
This avoids downloading and unpacking a large package that we only use
for binutils when building with clang.

Differential Revision: https://phabricator.services.mozilla.com/D4516
2018-08-30 07:30:30 +09:00
Steve Fink 3765bea320 Bug 1280637 - Make --enable-thread-sanitizer & friends do more work, r=glandium
MozReview-Commit-ID: KinAe8zLivJ

--HG--
extra : rebase_source : 8ce1b58222a034f2d6ec45f28aabb3a543bc84c7
2016-07-12 17:30:23 -07:00
Mike Hommey 2fe5367788 Bug 1280338 - Use tooltool GCC's ld on TSan builds. r=froydnj
Something similar was done in bug 1278718 for ASan builds, because of
indirect dependencies on libstdc++ being picked by the linker and
leading to linkage failure with the older binutils from the CentOS 6
image we use to do desktop builds.
2016-06-16 16:16:51 +09:00
Mike Hommey c5caa62fdf Bug 1278456 - Add the tooltool GCC library directory to LD_LIBRARY_PATH on Linux builds. r=mshal
Build slaves on automation are based on Centos 6, which doesn't have a
recent enough version of libstdc++ for our new requirements. But since
we're building with a recent GCC or clang with its own libstdc++, we do
have such a libstdc++ available somewhere, and the compiler picks it
when invoking the linker.

Problems start happening when we execute some of the built programs
during the build, like host tools (e.g. nsinstall), or target programs
(xpcshell, during packaging). In that case, we need the compiler's
libstdc++ to be used. Which required adding the GCC or clang library
directory to LD_LIBRARY_PATH.

Unconveniently enough, the clang 3.5 tooltool package we're using for
ASAN builds until we can update to at least 3.8 (bug 1278718) doesn't
contain libstdc++.so. So for those builds, pull the GCC package from
tooltool as well, and pick libstdc++ from there.
2016-06-12 18:52:15 +09:00
Chris Manchester 073236ea96 Bug 1181255 - Mozconfigs for tsan builds. r=glandium
--HG--
extra : commitid : LIOTQcZydyU
2015-07-14 18:45:54 -07:00