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.
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 way, we don't have to drag clang or binutils/binutils-wrapped
into the emacs closure, and can instead rely on using the correct one
for the platform we're running on.
Co-authored-by: Matthew Bauer <mjbauer95@gmail.com>
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.
Turns out that libgccjit gets installed as a .so file, which the gcc
builder.sh didn't change: It only touched .dylib files; that means
that anything linking in libgccjit.so would receive an "Image not
found" error at load time.
With this change, we invoke `install_name_tool` on .so files too,
adjusting their dynamic linker ID, so that they too can be found.
The latter doesn't exist on Darwin (and, presumably, other targets as
well). This change allows emacsGcc from emacs-overlay to attempt to
build where previously, the derivation would error out.
* Upstream changed from freedesktop.org to GitHub,
so updateWalker is disabled and fetchFromGitHub used
* Build system now based on meson/ninja
* python3 instead of python
* postInstall hook moved to postFixup since it depends on
some files being moved around in fixupPhase
* Build developer manual using gtk-doc