1{
2 lib,
3 stdenv,
4 gcc_meta,
5 release_version,
6 version,
7 monorepoSrc ? null,
8 runCommand,
9}:
10stdenv.mkDerivation (finalAttrs: {
11 pname = "libiberty";
12 inherit version;
13
14 src = runCommand "libiberty-src-${version}" { src = monorepoSrc; } ''
15 runPhase unpackPhase
16
17 mkdir -p "$out/gcc"
18 cp gcc/BASE-VER "$out/gcc"
19 cp gcc/DATESTAMP "$out/gcc"
20
21 cp -r include "$out"
22 cp -r libiberty "$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 outputs = [
36 "out"
37 "dev"
38 ];
39
40 enableParallelBuilding = true;
41
42 sourceRoot = "${finalAttrs.src.name}/libiberty";
43
44 preConfigure = ''
45 mkdir ../../build
46 cd ../../build
47 configureScript=../$sourceRoot/configure
48 '';
49
50 configureFlags = [
51 "--enable-install-libiberty"
52 ]
53 ++ lib.optional (!stdenv.hostPlatform.isStatic) "--enable-shared";
54
55 postInstall = ''
56 cp pic/libiberty.a $out/lib/libiberty_pic.a
57 '';
58
59 doCheck = true;
60
61 passthru = {
62 isGNU = true;
63 };
64
65 meta = gcc_meta // {
66 homepage = "https://gcc.gnu.org/";
67 };
68})