diff options
author | Matthew Bauer <mjbauer95@gmail.com> | 2018-10-15 16:11:20 -0500 |
---|---|---|
committer | Matthew Bauer <mjbauer95@gmail.com> | 2018-10-29 14:34:09 -0500 |
commit | 412093994b9a4fe0fa7da99d1947effc85d9070b (patch) | |
tree | 7be2219ecb1781b707672adf9274e6b5e11c1979 /pkgs/development/compilers/gcc/4.8 | |
parent | 72e3b2a6629dbe12f184ed0156d9c34af271e158 (diff) | |
download | nixlib-412093994b9a4fe0fa7da99d1947effc85d9070b.tar nixlib-412093994b9a4fe0fa7da99d1947effc85d9070b.tar.gz nixlib-412093994b9a4fe0fa7da99d1947effc85d9070b.tar.bz2 nixlib-412093994b9a4fe0fa7da99d1947effc85d9070b.tar.lz nixlib-412093994b9a4fe0fa7da99d1947effc85d9070b.tar.xz nixlib-412093994b9a4fe0fa7da99d1947effc85d9070b.tar.zst nixlib-412093994b9a4fe0fa7da99d1947effc85d9070b.zip |
gcc: support avr
- respect libc’s incdir and libdir - make non-unix systems single threaded - set LIMITS_H_TEST to false for avr - misc updates to support new libc’s - use multilib with avr For threads we want to use: - posix on unix systems - win32 on windows - single on everything else For avr: - add library directories for avrlibc - to disable relro and bind - avr5 should have precedence over avr3 - otherwise gcc uses the wrong one
Diffstat (limited to 'pkgs/development/compilers/gcc/4.8')
-rw-r--r-- | pkgs/development/compilers/gcc/4.8/default.nix | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/pkgs/development/compilers/gcc/4.8/default.nix b/pkgs/development/compilers/gcc/4.8/default.nix index d9376f597a70..e585f296e877 100644 --- a/pkgs/development/compilers/gcc/4.8/default.nix +++ b/pkgs/development/compilers/gcc/4.8/default.nix @@ -130,7 +130,7 @@ let version = "4.8.5"; "--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" ] ++ @@ -148,10 +148,15 @@ let version = "4.8.5"; # In uclibc cases, libgomp needs an additional '-ldl' # and as I don't know how to pass it, I disable libgomp. "--disable-libgomp" - ] ++ [ - "--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 ""; @@ -270,7 +275,7 @@ stdenv.mkDerivation ({ }" ] ++ - (if enableMultilib + (if (enableMultilib || targetPlatform.isAvr) then ["--enable-multilib" "--disable-libquadmath"] else ["--disable-multilib"]) ++ optional (!enableShared) "--disable-shared" ++ @@ -360,20 +365,20 @@ stdenv.mkDerivation ({ EXTRA_TARGET_FLAGS = optionals (targetPlatform != hostPlatform && libcCross != null) ([ - "-idirafter ${libcCross.dev}/include" + "-idirafter ${getDev libcCross}${libcCross.incdir or "/include"}" ] ++ optionals (! crossStageStatic) [ - "-B${libcCross.out}/lib" + "-B${libcCross.out}${libcCross.libdir or "/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 = { |