emacs: Set native-comp library path as linker flags instead
Since Darwin's linker does not understand LIBRARY_PATH, we have to set the library path as explicit linker flags: This requires a very recent feature/native-comp emacs revision, but it runs on Darwin and correctly compiles files at runtime.
This commit is contained in:
parent
861f27018d
commit
a891ae41b3
|
@ -67,18 +67,18 @@ in stdenv.mkDerivation {
|
||||||
|
|
||||||
# Make native compilation work both inside and outside of nix build
|
# Make native compilation work both inside and outside of nix build
|
||||||
(lib.optionalString nativeComp (let
|
(lib.optionalString nativeComp (let
|
||||||
libPath = lib.concatStringsSep ":" [
|
libPath = (lib.concatStringsSep " "
|
||||||
"${lib.getLib libgccjit}/lib/gcc/${targetPlatform.config}/${libgccjit.version}"
|
(builtins.map (x: ''\"-L${x}\"'') [
|
||||||
"${lib.getLib stdenv.cc.cc}/lib"
|
"${lib.getLib libgccjit}/lib"
|
||||||
"${lib.getLib stdenv.libc}/lib"
|
"${lib.getLib libgccjit}/lib/gcc/${targetPlatform.config}/${libgccjit.version}"
|
||||||
];
|
"${lib.getLib stdenv.cc.cc}/lib"
|
||||||
|
"${lib.getLib stdenv.libc}/lib"
|
||||||
|
]));
|
||||||
in ''
|
in ''
|
||||||
substituteInPlace lisp/emacs-lisp/comp.el --replace \
|
substituteInPlace lisp/emacs-lisp/comp.el --replace \
|
||||||
"(defcustom comp-async-env-modifier-form nil" \
|
"(defcustom comp-native-driver-options nil" \
|
||||||
"(defcustom comp-async-env-modifier-form '((setenv \"LIBRARY_PATH\" (string-join (seq-filter (lambda (v) (null (eq v nil))) (list (getenv \"LIBRARY_PATH\") \"${libPath}\")) \":\")))"
|
"(defcustom comp-native-driver-options '(${libPath})"
|
||||||
|
|
||||||
''))
|
''))
|
||||||
|
|
||||||
""
|
""
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue