at master 1.7 kB view raw
1{ 2 lib, 3 stdenv, 4 gcc_meta, 5 release_version, 6 version, 7 getVersionFile, 8 monorepoSrc ? null, 9 fetchpatch, 10 autoreconfHook269, 11 runCommand, 12}: 13stdenv.mkDerivation (finalAttrs: { 14 pname = "libatomic"; 15 inherit version; 16 17 src = runCommand "libatomic-src-${version}" { src = monorepoSrc; } '' 18 runPhase unpackPhase 19 20 mkdir -p "$out/gcc" 21 cp gcc/BASE-VER "$out/gcc" 22 cp gcc/DATESTAMP "$out/gcc" 23 24 cp -r libatomic "$out" 25 26 cp -r config "$out" 27 cp -r multilib.am "$out" 28 cp -r libtool.m4 "$out" 29 30 cp config.guess "$out" 31 cp config.rpath "$out" 32 cp config.sub "$out" 33 cp config-ml.in "$out" 34 cp ltmain.sh "$out" 35 cp install-sh "$out" 36 cp mkinstalldirs "$out" 37 38 [[ -f MD5SUMS ]]; cp MD5SUMS "$out" 39 ''; 40 41 patches = [ 42 (fetchpatch { 43 name = "custom-threading-model.patch"; 44 url = "https://inbox.sourceware.org/gcc-patches/20250716204545.1063669-1-git@JohnEricson.me/raw"; 45 hash = "sha256-kxNntY2r4i/+XHQSpf9bYV2Jg+FD/pD5TiMn5hd4ckk="; 46 includes = [ 47 "config/*" 48 "libatomic/*" 49 ]; 50 }) 51 ]; 52 53 postUnpack = '' 54 mkdir -p ./build 55 buildRoot=$(readlink -e "./build") 56 ''; 57 58 preAutoreconf = '' 59 sourceRoot=$(readlink -e "./libatomic") 60 cd $sourceRoot 61 ''; 62 63 enableParallelBuilding = true; 64 65 nativeBuildInputs = [ 66 autoreconfHook269 67 ]; 68 69 configurePlatforms = [ 70 "build" 71 "host" 72 ]; 73 74 configureFlags = [ 75 "--disable-dependency-tracking" 76 "cross_compiling=true" 77 "--disable-multilib" 78 ]; 79 80 preConfigure = '' 81 cd "$buildRoot" 82 configureScript=$sourceRoot/configure 83 ''; 84 85 doCheck = true; 86 87 passthru = { 88 isGNU = true; 89 }; 90 91 meta = gcc_meta // { 92 homepage = "https://gcc.gnu.org/"; 93 }; 94})