diff options
Diffstat (limited to 'pkgs/development/compilers/gcc/8/default.nix')
-rw-r--r-- | pkgs/development/compilers/gcc/8/default.nix | 32 |
1 files changed, 15 insertions, 17 deletions
diff --git a/pkgs/development/compilers/gcc/8/default.nix b/pkgs/development/compilers/gcc/8/default.nix index 7842110a2146..bcac577712aa 100644 --- a/pkgs/development/compilers/gcc/8/default.nix +++ b/pkgs/development/compilers/gcc/8/default.nix @@ -87,7 +87,7 @@ let version = "8.2.0"; "--disable-libmpx" # requires libc ] else [ (if crossDarwin then "--with-sysroot=${getLib libcCross}/share/sysroot" - else "--with-headers=${getDev libcCross}/include") + else "--with-headers=${getDev libcCross}${libcCross.incdir or "/include"}") "--enable-__cxa_atexit" "--enable-long-long" ] ++ @@ -110,10 +110,15 @@ let version = "8.2.0"; "--disable-libgomp" # musl at least, disable: https://git.buildroot.net/buildroot/commit/?id=873d4019f7fb00f6a80592224236b3ba7d657865 "--disable-libmpx" - ] ++ [ - "--enable-threads=posix" - "--enable-nls" - "--disable-decimal-float" # No final libdecnumber (it may work only in 386) + ] + ++ optional (targetPlatform.libc == "newlib") "--with-newlib" + ++ optional (targetPlatform.libc == "avrlibc") "--with-avrlibc" + ++ [ + "--enable-threads=${if targetPlatform.isUnix then "posix" + else if targetPlatform.isWindows then "win32" + else "single"}" + "--enable-nls" + "--disable-decimal-float" # No final libdecnumber (it may work only in 386) ])); stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final"; crossNameAddon = if targetPlatform != hostPlatform then "-${targetPlatform.config}" + stageNameAddon else ""; @@ -261,7 +266,7 @@ stdenv.mkDerivation ({ }" ] ++ - (if enableMultilib + (if (enableMultilib || targetPlatform.isAvr) then ["--enable-multilib" "--disable-libquadmath"] else ["--disable-multilib"]) ++ optional (!enableShared) "--disable-shared" ++ @@ -322,23 +327,16 @@ stdenv.mkDerivation ({ LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath (optional (zlib != null) zlib)); - EXTRA_TARGET_FLAGS = optionals - (targetPlatform != hostPlatform && libcCross != null) - ([ - "-idirafter ${getDev libcCross}/include" - ] ++ optionals (! crossStageStatic) [ - "-B${libcCross.out}/lib" - ]); EXTRA_TARGET_LDFLAGS = optionals (targetPlatform != hostPlatform && libcCross != null) ([ - "-Wl,-L${libcCross.out}/lib" + "-Wl,-L${libcCross.out}${libcCross.libdir or "/lib"}" ] ++ (if crossStageStatic then [ - "-B${libcCross.out}/lib" + "-B${libcCross.out}${libcCross.libdir or "/lib"}" ] else [ - "-Wl,-rpath,${libcCross.out}/lib" - "-Wl,-rpath-link,${libcCross.out}/lib" + "-Wl,-rpath,${libcCross.out}${libcCross.libdir or "/lib"}" + "-Wl,-rpath-link,${libcCross.out}${libcCross.libdir or "/lib"}" ])); passthru = |