Files
tubestation/build/unix/elfhack/moz.build
Mike Hommey e857df21e7 Bug 1856752 - Allow more leniency wrt swapping .relr.dyn and .rel.plt sections. r=sergesanspaille
On ARM, lld places the .ARM.exidx section between .rel.dyn/.relr.dyn and
.rel.plt. This means we can't swap .relr.dyn and .rel.plt (well, we
could, if we also moved and rewrote the .ARM.exidx section, but that's
more work than we ought to do).
But we only need to swap the sections when we want the binary to be
compatible with older versions of glibc, which we don't care about on
desktop ARM Linux (we don't ship such builds), and don't need at all
on ARM Android. Ultimately, this is a bug in lld
(https://github.com/llvm/llvm-project/issues/68178).

Differential Revision: https://phabricator.services.mozilla.com/D190006
2023-10-05 08:40:44 +00:00

47 lines
1.1 KiB
Python

# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
DIST_INSTALL = False
DIRS += ["inject"]
if CONFIG["RELRHACK"]:
HOST_SOURCES += [
"relrhack.cpp",
]
HostProgram(CONFIG["RELRHACK_LINKER"])
HOST_OS_LIBS += CONFIG["RELRHACK_LIBS"]
if CONFIG["MOZ_STDCXX_COMPAT"]:
HOST_DEFINES["MOZ_STDCXX_COMPAT"] = True
else:
HOST_SOURCES += [
"elf.cpp",
"elfhack.cpp",
]
HostProgram("elfhack")
if not CONFIG["CROSS_COMPILE"]:
SOURCES += [
"dummy.c",
]
SOURCES["dummy.c"].flags += ["-fno-lto"]
SOURCES += [
"test-array.c",
"test-ctors.c",
]
SOURCES["test-array.c"].flags += ["-fno-lto"]
SOURCES["test-ctors.c"].flags += ["-fno-lto"]
NO_PGO = True
COMPILE_FLAGS["OS_CXXFLAGS"] = [
f for f in COMPILE_FLAGS["OS_CXXFLAGS"] if f != "-fno-exceptions"
] + ["-fexceptions"]