Files
Ben Siraphob 3d8133c572 gccNGPackages.libbacktrace: fix tests on darwin
The libbacktrace test suite was failing on darwin because the
btest_gnudebuglink tests attempted to use GNU debuglink functionality,
which only works on ELF binaries, not Mach-O on darwin.

We set `libbacktrace_cv_objcopy_debuglink=no`, allowing the remaining 21 tests to run successfully.
2025-11-02 22:56:41 -08:00

80 lines
1.5 KiB
Nix

{
lib,
stdenv,
gcc_meta,
release_version,
version,
monorepoSrc ? null,
runCommand,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libbacktrace";
inherit version;
src = runCommand "libbacktrace-src-${version}" { src = monorepoSrc; } ''
runPhase unpackPhase
mkdir -p "$out/gcc"
cp gcc/BASE-VER "$out/gcc"
cp gcc/DATESTAMP "$out/gcc"
cp -r include "$out"
cp -r libbacktrace "$out"
cp config.guess "$out"
cp config.rpath "$out"
cp config.sub "$out"
cp config-ml.in "$out"
cp ltmain.sh "$out"
cp install-sh "$out"
cp move-if-change "$out"
cp mkinstalldirs "$out"
cp test-driver "$out"
[[ -f MD5SUMS ]]; cp MD5SUMS "$out"
'';
outputs = [
"out"
"dev"
];
enableParallelBuilding = true;
sourceRoot = "${finalAttrs.src.name}/libbacktrace";
preConfigure = ''
mkdir ../../build
cd ../../build
configureScript=../$sourceRoot/configure
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
# GNU debuglink is not supported on macOS (Mach-O format)
# Skip the gnudebuglink tests which fail on Darwin
export libbacktrace_cv_objcopy_debuglink=no
'';
installPhase = ''
runHook preInstall
mkdir -p "$out/lib"
cp .libs/*.a "$out/lib"
cp libbacktrace*.la "$out/lib"
mkdir -p "$dev/include"
cp backtrace-supported.h "$dev/include"
runHook postInstall
'';
doCheck = true;
passthru = {
isGNU = true;
};
meta = gcc_meta // {
homepage = "https://gcc.gnu.org/";
};
})