emacs: use -B flags for native compilation dependencies
The -B flag to gcc (and libgccjit) allows us to specify where it can find things it needs to correctly compile code (both programs and libraries) without adjusting any environmental flags: So, no need to wrap the program for a PATH entry containing binutils, and no need to explicitly pass a linker path anymore.
This commit is contained in:
parent
6ad323d0a0
commit
04fffd6cae
1 changed files with 6 additions and 5 deletions
|
@ -67,13 +67,14 @@ in stdenv.mkDerivation {
|
|||
|
||||
# Make native compilation work both inside and outside of nix build
|
||||
(lib.optionalString nativeComp (let
|
||||
libPath = (lib.concatStringsSep " "
|
||||
backendPath = (lib.concatStringsSep " "
|
||||
(builtins.map (x: ''\"-B${x}\"'') [
|
||||
# Paths necessary so the JIT compiler finds its libraries:
|
||||
"${lib.getLib libgccjit}/lib"
|
||||
"${lib.getLib libgccjit}/lib/gcc/${targetPlatform.config}/${libgccjit.version}"
|
||||
"${lib.getLib stdenv.cc.cc}/lib"
|
||||
"${lib.getLib libgccjit}/lib/gcc"
|
||||
"${lib.getLib stdenv.cc.libc}/lib"
|
||||
"${lib.getBin stdenv.cc.cc}"
|
||||
|
||||
# Executable paths necessary for compilation (ld, as):
|
||||
"${lib.getBin stdenv.cc.cc}"
|
||||
"${lib.getBin stdenv.cc.bintools}"
|
||||
"${lib.getBin stdenv.cc.bintools.bintools}"
|
||||
|
@ -81,7 +82,7 @@ in stdenv.mkDerivation {
|
|||
in ''
|
||||
substituteInPlace lisp/emacs-lisp/comp.el --replace \
|
||||
"(defcustom comp-native-driver-options nil" \
|
||||
"(defcustom comp-native-driver-options '(${libPath})"
|
||||
"(defcustom comp-native-driver-options '(${backendPath})"
|
||||
''))
|
||||
""
|
||||
];
|
||||
|
|
Loading…
Reference in a new issue