1{
2 lib,
3 stdenv,
4 libstdcxx,
5 gcc_meta,
6 release_version,
7 version,
8 monorepoSrc ? null,
9 runCommand,
10}:
11stdenv.mkDerivation (finalAttrs: {
12 pname = "libsanitizer";
13 inherit version;
14
15 src = runCommand "libsanitizer-src-${version}" { src = monorepoSrc; } ''
16 runPhase unpackPhase
17
18 mkdir -p "$out/gcc"
19 cp gcc/BASE-VER "$out/gcc"
20 cp gcc/DATESTAMP "$out/gcc"
21
22 cp -r libsanitizer "$out"
23
24 cp config.guess "$out"
25 cp config.rpath "$out"
26 cp config.sub "$out"
27 cp config-ml.in "$out"
28 cp ltmain.sh "$out"
29 cp install-sh "$out"
30 cp mkinstalldirs "$out"
31
32 [[ -f MD5SUMS ]]; cp MD5SUMS "$out"
33 '';
34
35 sourceRoot = "${finalAttrs.src.name}/libsanitizer";
36
37 postUnpack = ''
38 mkdir -p libstdc++-v3/src/
39 ln -s ${libstdcxx}/lib/libstdc++.la libstdc++-v3/src/libstdc++.la
40 '';
41
42 preConfigure = ''
43 mkdir ../../build
44 cd ../../build
45 configureScript=../$sourceRoot/configure
46 '';
47
48 doCheck = true;
49
50 passthru = {
51 isGNU = true;
52 };
53
54 meta = gcc_meta // {
55 homepage = "https://gcc.gnu.org/";
56 };
57})