at v192 535 lines 22 kB view raw
1{ stdenv, fetchurl, noSysDirs 2, langC ? true, langCC ? true, langFortran ? false 3, langObjC ? stdenv.isDarwin 4, langObjCpp ? stdenv.isDarwin 5, langJava ? false 6, langAda ? false 7, langVhdl ? false 8, langGo ? false 9, profiledCompiler ? false 10, staticCompiler ? false 11, enableShared ? true 12, texinfo ? null 13, perl ? null # optional, for texi2pod (then pod2man); required for Java 14, gmp, mpfr, libmpc, gettext, which 15, libelf # optional, for link-time optimizations (LTO) 16, cloog ? null, isl ? null # optional, for the Graphite optimization framework. 17, zlib ? null, boehmgc ? null 18, zip ? null, unzip ? null, pkgconfig ? null 19, gtk ? null, libart_lgpl ? null 20, libX11 ? null, libXt ? null, libSM ? null, libICE ? null, libXtst ? null 21, libXrender ? null, xproto ? null, renderproto ? null, xextproto ? null 22, libXrandr ? null, libXi ? null, inputproto ? null, randrproto ? null 23, x11Support ? langJava 24, gnatboot ? null 25, enableMultilib ? false 26, enablePlugin ? true # whether to support user-supplied plug-ins 27, name ? "gcc" 28, cross ? null 29, binutilsCross ? null 30, libcCross ? null 31, crossStageStatic ? true 32, gnat ? null 33, libpthread ? null, libpthreadCross ? null # required for GNU/Hurd 34, stripped ? true 35, gnused ? null 36}: 37 38assert langJava -> zip != null && unzip != null 39 && zlib != null && boehmgc != null 40 && perl != null; # for `--enable-java-home' 41assert langAda -> gnatboot != null; 42assert langVhdl -> gnat != null; 43 44# We enable the isl cloog backend. 45assert cloog != null -> isl != null; 46 47# LTO needs libelf and zlib. 48assert libelf != null -> zlib != null; 49 50# Make sure we get GNU sed. 51assert stdenv.isDarwin -> gnused != null; 52 53# The go frontend is written in c++ 54assert langGo -> langCC; 55 56with stdenv.lib; 57with builtins; 58 59let version = "4.8.5"; 60 61 # Whether building a cross-compiler for GNU/Hurd. 62 crossGNU = cross != null && cross.config == "i586-pc-gnu"; 63 64 enableParallelBuilding = true; 65 66 patches = [ ] 67 ++ optional enableParallelBuilding ../parallel-bconfig.patch 68 ++ optional (cross != null) ../libstdc++-target.patch 69 ++ optional noSysDirs ../no-sys-dirs.patch 70 # The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its 71 # target libraries and tools. 72 ++ optional langAda ../gnat-cflags.patch 73 ++ optional langFortran ../gfortran-driving.patch; 74 75 javaEcj = fetchurl { 76 # The `$(top_srcdir)/ecj.jar' file is automatically picked up at 77 # `configure' time. 78 79 # XXX: Eventually we might want to take it from upstream. 80 url = "ftp://sourceware.org/pub/java/ecj-4.3.jar"; 81 sha256 = "0jz7hvc0s6iydmhgh5h2m15yza7p2rlss2vkif30vm9y77m97qcx"; 82 }; 83 84 # Antlr (optional) allows the Java `gjdoc' tool to be built. We want a 85 # binary distribution here to allow the whole chain to be bootstrapped. 86 javaAntlr = fetchurl { 87 url = http://www.antlr.org/download/antlr-4.4-complete.jar; 88 sha256 = "02lda2imivsvsis8rnzmbrbp8rh1kb8vmq4i67pqhkwz7lf8y6dz"; 89 }; 90 91 xlibs = [ 92 libX11 libXt libSM libICE libXtst libXrender libXrandr libXi 93 xproto renderproto xextproto inputproto randrproto 94 ]; 95 96 javaAwtGtk = langJava && x11Support; 97 98 /* Platform flags */ 99 platformFlags = let 100 gccArch = stdenv.platform.gcc.arch or null; 101 gccCpu = stdenv.platform.gcc.cpu or null; 102 gccAbi = stdenv.platform.gcc.abi or null; 103 gccFpu = stdenv.platform.gcc.fpu or null; 104 gccFloat = stdenv.platform.gcc.float or null; 105 gccMode = stdenv.platform.gcc.mode or null; 106 withArch = if gccArch != null then " --with-arch=${gccArch}" else ""; 107 withCpu = if gccCpu != null then " --with-cpu=${gccCpu}" else ""; 108 withAbi = if gccAbi != null then " --with-abi=${gccAbi}" else ""; 109 withFpu = if gccFpu != null then " --with-fpu=${gccFpu}" else ""; 110 withFloat = if gccFloat != null then " --with-float=${gccFloat}" else ""; 111 withMode = if gccMode != null then " --with-mode=${gccMode}" else ""; 112 in 113 withArch + 114 withCpu + 115 withAbi + 116 withFpu + 117 withFloat + 118 withMode; 119 120 /* Cross-gcc settings */ 121 crossMingw = cross != null && cross.libc == "msvcrt"; 122 crossDarwin = cross != null && cross.libc == "libSystem"; 123 crossConfigureFlags = let 124 gccArch = stdenv.cross.gcc.arch or null; 125 gccCpu = stdenv.cross.gcc.cpu or null; 126 gccAbi = stdenv.cross.gcc.abi or null; 127 gccFpu = stdenv.cross.gcc.fpu or null; 128 gccFloat = stdenv.cross.gcc.float or null; 129 gccMode = stdenv.cross.gcc.mode or null; 130 withArch = if gccArch != null then " --with-arch=${gccArch}" else ""; 131 withCpu = if gccCpu != null then " --with-cpu=${gccCpu}" else ""; 132 withAbi = if gccAbi != null then " --with-abi=${gccAbi}" else ""; 133 withFpu = if gccFpu != null then " --with-fpu=${gccFpu}" else ""; 134 withFloat = if gccFloat != null then " --with-float=${gccFloat}" else ""; 135 withMode = if gccMode != null then " --with-mode=${gccMode}" else ""; 136 in 137 "--target=${cross.config}" + 138 withArch + 139 withCpu + 140 withAbi + 141 withFpu + 142 withFloat + 143 withMode + 144 (if crossMingw && crossStageStatic then 145 " --with-headers=${libcCross}/include" + 146 " --with-gcc" + 147 " --with-gnu-as" + 148 " --with-gnu-ld" + 149 " --with-gnu-ld" + 150 " --disable-shared" + 151 " --disable-nls" + 152 " --disable-debug" + 153 " --enable-sjlj-exceptions" + 154 " --enable-threads=win32" + 155 " --disable-win32-registry" 156 else if crossStageStatic then 157 " --disable-libssp --disable-nls" + 158 " --without-headers" + 159 " --disable-threads " + 160 " --disable-libmudflap " + 161 " --disable-libgomp " + 162 " --disable-libquadmath" + 163 " --disable-shared" + 164 " --disable-libatomic " + # libatomic requires libc 165 " --disable-decimal-float" # libdecnumber requires libc 166 else 167 (if crossDarwin then " --with-sysroot=${libcCross}/share/sysroot" 168 else " --with-headers=${libcCross}/include") + 169 # Ensure that -print-prog-name is able to find the correct programs. 170 (stdenv.lib.optionalString (crossMingw || crossDarwin) ( 171 " --with-as=${binutilsCross}/bin/${cross.config}-as" + 172 " --with-ld=${binutilsCross}/bin/${cross.config}-ld" 173 )) + 174 " --enable-__cxa_atexit" + 175 " --enable-long-long" + 176 (if crossMingw then 177 " --enable-threads=win32" + 178 " --enable-sjlj-exceptions" + 179 " --enable-hash-synchronization" + 180 " --disable-libssp" + 181 " --disable-nls" + 182 " --with-dwarf2" + 183 # I think noone uses shared gcc libs in mingw, so we better do the same. 184 # In any case, mingw32 g++ linking is broken by default with shared libs, 185 # unless adding "-lsupc++" to any linking command. I don't know why. 186 " --disable-shared" + 187 # To keep ABI compatibility with upstream mingw-w64 188 " --enable-fully-dynamic-string" 189 else (if cross.libc == "uclibc" then 190 # In uclibc cases, libgomp needs an additional '-ldl' 191 # and as I don't know how to pass it, I disable libgomp. 192 " --disable-libgomp" else "") + 193 " --enable-threads=posix" + 194 " --enable-nls" + 195 " --disable-decimal-float") # No final libdecnumber (it may work only in 386) 196 ); 197 stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final"; 198 crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else ""; 199 200 bootstrap = cross == null && !stdenv.isArm && !stdenv.isMips; 201 202in 203 204# We need all these X libraries when building AWT with GTK+. 205assert x11Support -> (filter (x: x == null) ([ gtk libart_lgpl ] ++ xlibs)) == []; 206 207stdenv.mkDerivation ({ 208 name = "${name}${if stripped then "" else "-debug"}-${version}" + crossNameAddon; 209 210 builder = ../builder.sh; 211 212 outputs = [ "out" "info" ]; 213 214 src = fetchurl { 215 url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.bz2"; 216 sha256 = "08yggr18v373a1ihj0rg2vd6psnic42b518xcgp3r9k81xz1xyr2"; 217 }; 218 219 inherit patches; 220 221 postPatch = 222 if (stdenv.isGNU 223 || (libcCross != null # e.g., building `gcc.crossDrv' 224 && libcCross ? crossConfig 225 && libcCross.crossConfig == "i586-pc-gnu") 226 || (crossGNU && libcCross != null)) 227 then 228 # On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not 229 # in glibc, so add the right `-I' flags to the default spec string. 230 assert libcCross != null -> libpthreadCross != null; 231 let 232 libc = if libcCross != null then libcCross else stdenv.glibc; 233 gnu_h = "gcc/config/gnu.h"; 234 extraCPPDeps = 235 libc.propagatedBuildInputs 236 ++ stdenv.lib.optional (libpthreadCross != null) libpthreadCross 237 ++ stdenv.lib.optional (libpthread != null) libpthread; 238 extraCPPSpec = 239 concatStrings (intersperse " " 240 (map (x: "-I${x}/include") extraCPPDeps)); 241 extraLibSpec = 242 if libpthreadCross != null 243 then "-L${libpthreadCross}/lib ${libpthreadCross.TARGET_LDFLAGS}" 244 else "-L${libpthread}/lib"; 245 in 246 '' echo "augmenting \`CPP_SPEC' in \`${gnu_h}' with \`${extraCPPSpec}'..." 247 sed -i "${gnu_h}" \ 248 -es'|CPP_SPEC *"\(.*\)$|CPP_SPEC "${extraCPPSpec} \1|g' 249 250 echo "augmenting \`LIB_SPEC' in \`${gnu_h}' with \`${extraLibSpec}'..." 251 sed -i "${gnu_h}" \ 252 -es'|LIB_SPEC *"\(.*\)$|LIB_SPEC "${extraLibSpec} \1|g' 253 254 echo "setting \`NATIVE_SYSTEM_HEADER_DIR' and \`STANDARD_INCLUDE_DIR' to \`${libc}/include'..." 255 sed -i "${gnu_h}" \ 256 -es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc}/include"|g' 257 '' 258 else if cross != null || stdenv.cc.libc != null then 259 # On NixOS, use the right path to the dynamic linker instead of 260 # `/lib/ld*.so'. 261 let 262 libc = if libcCross != null then libcCross else stdenv.cc.libc; 263 in 264 '' echo "fixing the \`GLIBC_DYNAMIC_LINKER' and \`UCLIBC_DYNAMIC_LINKER' macros..." 265 for header in "gcc/config/"*-gnu.h "gcc/config/"*"/"*.h 266 do 267 grep -q LIBC_DYNAMIC_LINKER "$header" || continue 268 echo " fixing \`$header'..." 269 sed -i "$header" \ 270 -e 's|define[[:blank:]]*\([UCG]\+\)LIBC_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define \1LIBC_DYNAMIC_LINKER\2 "${libc}\3"|g' 271 done 272 '' 273 else null; 274 275 inherit noSysDirs staticCompiler langJava crossStageStatic 276 libcCross crossMingw; 277 278 nativeBuildInputs = [ texinfo which gettext ] 279 ++ (optional (perl != null) perl) 280 ++ (optional javaAwtGtk pkgconfig); 281 282 buildInputs = [ gmp mpfr libmpc libelf ] 283 ++ (optional (cloog != null) cloog) 284 ++ (optional (isl != null) isl) 285 ++ (optional (zlib != null) zlib) 286 ++ (optionals langJava [ boehmgc zip unzip ]) 287 ++ (optionals javaAwtGtk ([ gtk libart_lgpl ] ++ xlibs)) 288 ++ (optionals (cross != null) [binutilsCross]) 289 ++ (optionals langAda [gnatboot]) 290 ++ (optionals langVhdl [gnat]) 291 292 # The builder relies on GNU sed (for instance, Darwin's `sed' fails with 293 # "-i may not be used with stdin"), and `stdenvNative' doesn't provide it. 294 ++ (optional stdenv.isDarwin gnused) 295 ; 296 297 NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isSunOS "-lm -ldl"; 298 299 preConfigure = stdenv.lib.optionalString (stdenv.isSunOS && stdenv.is64bit) '' 300 export NIX_LDFLAGS=`echo $NIX_LDFLAGS | sed -e s~$prefix/lib~$prefix/lib/amd64~g` 301 export LDFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $LDFLAGS_FOR_TARGET" 302 export CXXFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CXXFLAGS_FOR_TARGET" 303 export CFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CFLAGS_FOR_TARGET" 304 '' + stdenv.lib.optionalString stdenv.isDarwin '' 305 if SDKROOT=$(/usr/bin/xcrun --show-sdk-path); then 306 configureFlagsArray+=(--with-native-system-header-dir=$SDKROOT/usr/include) 307 makeFlagsArray+=( \ 308 CFLAGS_FOR_BUILD=-F$SDKROOT/System/Library/Frameworks \ 309 CFLAGS_FOR_TARGET=-F$SDKROOT/System/Library/Frameworks \ 310 FLAGS_FOR_TARGET=-F$SDKROOT/System/Library/Frameworks \ 311 ) 312 fi 313 ''; 314 315 dontDisableStatic = true; 316 317 configureFlags = " 318 ${if stdenv.isSunOS then 319 " --enable-long-long --enable-libssp --enable-threads=posix --disable-nls --enable-__cxa_atexit " + 320 # On Illumos/Solaris GNU as is preferred 321 " --with-gnu-as --without-gnu-ld " 322 else ""} 323 --enable-lto 324 ${if enableMultilib then "--disable-libquadmath" else "--disable-multilib"} 325 ${if enableShared then "" else "--disable-shared"} 326 ${if enablePlugin then "--enable-plugin" else "--disable-plugin"} 327 ${optionalString (isl != null) "--with-isl=${isl}"} 328 ${optionalString (cloog != null) "--with-cloog=${cloog} --disable-cloog-version-check --enable-cloog-backend=isl"} 329 ${if langJava then 330 "--with-ecj-jar=${javaEcj} " + 331 332 # Follow Sun's layout for the convenience of IcedTea/OpenJDK. See 333 # <http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2010-April/008888.html>. 334 "--enable-java-home --with-java-home=\${prefix}/lib/jvm/jre " 335 else ""} 336 ${if javaAwtGtk then "--enable-java-awt=gtk" else ""} 337 ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr}" else ""} 338 --with-gmp=${gmp} 339 --with-mpfr=${mpfr} 340 --with-mpc=${libmpc} 341 ${if libelf != null then "--with-libelf=${libelf}" else ""} 342 --disable-libstdcxx-pch 343 --without-included-gettext 344 --with-system-zlib 345 --enable-static 346 --enable-languages=${ 347 concatStrings (intersperse "," 348 ( optional langC "c" 349 ++ optional langCC "c++" 350 ++ optional langFortran "fortran" 351 ++ optional langJava "java" 352 ++ optional langAda "ada" 353 ++ optional langVhdl "vhdl" 354 ++ optional langGo "go" 355 ++ optional langObjC "objc" 356 ++ optional langObjCpp "obj-c++" 357 ++ optionals crossDarwin [ "objc" "obj-c++" ] 358 ) 359 ) 360 } 361 ${if (stdenv ? glibc && cross == null) 362 then " --with-native-system-header-dir=${stdenv.glibc}/include" 363 else ""} 364 ${if langAda then " --enable-libada" else ""} 365 ${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""} 366 ${if cross != null then crossConfigureFlags else ""} 367 ${if !bootstrap then "--disable-bootstrap" else ""} 368 ${if cross == null then platformFlags else ""} 369 "; 370 371 targetConfig = if cross != null then cross.config else null; 372 373 buildFlags = if bootstrap then 374 (if profiledCompiler then "profiledbootstrap" else "bootstrap") 375 else ""; 376 377 installTargets = 378 if stripped 379 then "install-strip" 380 else "install"; 381 382 crossAttrs = let 383 xgccArch = stdenv.cross.gcc.arch or null; 384 xgccCpu = stdenv.cross.gcc.cpu or null; 385 xgccAbi = stdenv.cross.gcc.abi or null; 386 xgccFpu = stdenv.cross.gcc.fpu or null; 387 xgccFloat = stdenv.cross.gcc.float or null; 388 xwithArch = if xgccArch != null then " --with-arch=${xgccArch}" else ""; 389 xwithCpu = if xgccCpu != null then " --with-cpu=${xgccCpu}" else ""; 390 xwithAbi = if xgccAbi != null then " --with-abi=${xgccAbi}" else ""; 391 xwithFpu = if xgccFpu != null then " --with-fpu=${xgccFpu}" else ""; 392 xwithFloat = if xgccFloat != null then " --with-float=${xgccFloat}" else ""; 393 in { 394 AR = "${stdenv.cross.config}-ar"; 395 LD = "${stdenv.cross.config}-ld"; 396 CC = "${stdenv.cross.config}-gcc"; 397 CXX = "${stdenv.cross.config}-gcc"; 398 AR_FOR_TARGET = "${stdenv.cross.config}-ar"; 399 LD_FOR_TARGET = "${stdenv.cross.config}-ld"; 400 CC_FOR_TARGET = "${stdenv.cross.config}-gcc"; 401 NM_FOR_TARGET = "${stdenv.cross.config}-nm"; 402 CXX_FOR_TARGET = "${stdenv.cross.config}-g++"; 403 # If we are making a cross compiler, cross != null 404 NIX_CC_CROSS = if cross == null then "${stdenv.ccCross}" else ""; 405 dontStrip = true; 406 configureFlags = '' 407 ${if enableMultilib then "" else "--disable-multilib"} 408 ${if enableShared then "" else "--disable-shared"} 409 ${if cloog != null then "--with-cloog=${cloog.crossDrv} --enable-cloog-backend=isl" else ""} 410 ${if langJava then "--with-ecj-jar=${javaEcj.crossDrv}" else ""} 411 ${if javaAwtGtk then "--enable-java-awt=gtk" else ""} 412 ${if langJava && javaAntlr != null then "--with-antlr-jar=${javaAntlr.crossDrv}" else ""} 413 --with-gmp=${gmp.crossDrv} 414 --with-mpfr=${mpfr.crossDrv} 415 --disable-libstdcxx-pch 416 --without-included-gettext 417 --with-system-zlib 418 --enable-languages=${ 419 concatStrings (intersperse "," 420 ( optional langC "c" 421 ++ optional langCC "c++" 422 ++ optional langFortran "fortran" 423 ++ optional langJava "java" 424 ++ optional langAda "ada" 425 ++ optional langVhdl "vhdl" 426 ++ optional langGo "go" 427 ) 428 ) 429 } 430 ${if langAda then " --enable-libada" else ""} 431 --target=${stdenv.cross.config} 432 ${xwithArch} 433 ${xwithCpu} 434 ${xwithAbi} 435 ${xwithFpu} 436 ${xwithFloat} 437 ''; 438 buildFlags = ""; 439 }; 440 441 442 # Needed for the cross compilation to work 443 AR = "ar"; 444 LD = "ld"; 445 # http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210 446 CC = if stdenv.system == "x86_64-solaris" then "gcc -m64" else "gcc"; 447 448 # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find 449 # the library headers and binaries, regarless of the language being 450 # compiled. 451 452 # Note: When building the Java AWT GTK+ peer, the build system doesn't 453 # honor `--with-gmp' et al., e.g., when building 454 # `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just 455 # add them to $CPATH and $LIBRARY_PATH in this case. 456 # 457 # Likewise, the LTO code doesn't find zlib. 458 459 CPATH = concatStrings 460 (intersperse ":" (map (x: x + "/include") 461 (optionals (zlib != null) [ zlib ] 462 ++ optionals langJava [ boehmgc ] 463 ++ optionals javaAwtGtk xlibs 464 ++ optionals javaAwtGtk [ gmp mpfr ] 465 ++ optional (libpthread != null) libpthread 466 ++ optional (libpthreadCross != null) libpthreadCross 467 468 # On GNU/Hurd glibc refers to Mach & Hurd 469 # headers. 470 ++ optionals (libcCross != null && libcCross ? "propagatedBuildInputs" ) 471 libcCross.propagatedBuildInputs))); 472 473 LIBRARY_PATH = concatStrings 474 (intersperse ":" (map (x: x + "/lib") 475 (optionals (zlib != null) [ zlib ] 476 ++ optionals langJava [ boehmgc ] 477 ++ optionals javaAwtGtk xlibs 478 ++ optionals javaAwtGtk [ gmp mpfr ] 479 ++ optional (libpthread != null) libpthread))); 480 481 EXTRA_TARGET_CFLAGS = 482 if cross != null && libcCross != null 483 then "-idirafter ${libcCross}/include" 484 else null; 485 486 EXTRA_TARGET_LDFLAGS = 487 if cross != null && libcCross != null 488 then "-B${libcCross}/lib -Wl,-L${libcCross}/lib" + 489 (optionalString (libpthreadCross != null) 490 " -L${libpthreadCross}/lib -Wl,${libpthreadCross.TARGET_LDFLAGS}") 491 else null; 492 493 passthru = 494 { inherit langC langCC langObjC langObjCpp langAda langFortran langVhdl langGo version; isGNU = true; }; 495 496 inherit enableParallelBuilding enableMultilib; 497 498 inherit (stdenv) is64bit; 499 500 meta = { 501 homepage = http://gcc.gnu.org/; 502 license = stdenv.lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+ 503 description = "GNU Compiler Collection, version ${version}" 504 + (if stripped then "" else " (with debugging info)"); 505 506 longDescription = '' 507 The GNU Compiler Collection includes compiler front ends for C, C++, 508 Objective-C, Fortran, OpenMP for C/C++/Fortran, Java, and Ada, as well 509 as libraries for these languages (libstdc++, libgcj, libgomp,...). 510 511 GCC development is a part of the GNU Project, aiming to improve the 512 compiler used in the GNU system including the GNU/Linux variant. 513 ''; 514 515 maintainers = with stdenv.lib.maintainers; [ viric simons ]; 516 517 # gnatboot is not available out of linux platforms, so we disable the darwin build 518 # for the gnat (ada compiler). 519 platforms = 520 stdenv.lib.platforms.linux ++ 521 stdenv.lib.platforms.freebsd ++ 522 optionals (langAda == false) stdenv.lib.platforms.darwin; 523 }; 524} 525 526// optionalAttrs (cross != null && cross.libc == "msvcrt" && crossStageStatic) { 527 makeFlags = [ "all-gcc" "all-target-libgcc" ]; 528 installTargets = "install-gcc install-target-libgcc"; 529} 530 531# Strip kills static libs of other archs (hence cross != null) 532// optionalAttrs (!stripped || cross != null) { dontStrip = true; NIX_STRIP_DEBUG = 0; } 533 534// optionalAttrs (enableMultilib) { dontMoveLib64 = true; } 535)