Attempt at getting GCC 4.7 compiled on Illumos...

No success yet :-(
This commit is contained in:
Danny Wilson 2013-02-20 09:20:07 +00:00 committed by Danny Wilson
parent cf42601f92
commit bcaea92a12
12 changed files with 37 additions and 21 deletions

View File

@ -286,12 +286,18 @@ stdenv.mkDerivation ({
dontDisableStatic = langGo; dontDisableStatic = langGo;
configureFlags = " configureFlags = "
${if stdenv.isSunOS then
" --enable-long-long --enable-libssp --enable-threads=posix --disable-nls --enable-__cxa_atexit " +
# On Illumos/Solaris GNU as is preferred
" --with-gnu-as --with-gnu-ld "
else ""}
--enable-lto
${if enableMultilib then "" else "--disable-multilib"} ${if enableMultilib then "" else "--disable-multilib"}
${if enableShared then "" else "--disable-shared"} ${if enableShared then "" else "--disable-shared"}
${if enablePlugin then "--enable-plugin" else ""} ${if enablePlugin then "--enable-plugin" else "--disable-plugin"}
${if ppl != null then "--with-ppl=${ppl}" else ""} ${if ppl != null then "--with-ppl=${ppl} --disable-ppl-version-check" else ""}
${if cloog != null then ${if cloog != null then
"--with-cloog=${cloog} --enable-cloog-backend=isl" "--with-cloog=${cloog} --disable-cloog-version-check --enable-cloog-backend=isl"
else ""} else ""}
${if langJava then ${if langJava then
"--with-ecj-jar=${javaEcj} " + "--with-ecj-jar=${javaEcj} " +
@ -406,7 +412,9 @@ stdenv.mkDerivation ({
# Needed for the cross compilation to work # Needed for the cross compilation to work
AR = "ar"; AR = "ar";
LD = "ld"; LD = "ld";
CC = "gcc"; # http://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
CC = if stdenv.system == "x86_64-solaris" then "gcc -m64"
else "gcc";
# Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find # Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find
# the library headers and binaries, regarless of the language being # the library headers and binaries, regarless of the language being
@ -496,6 +504,7 @@ stdenv.mkDerivation ({
installTargets = "install-gcc install-target-libgcc"; installTargets = "install-gcc install-target-libgcc";
} }
# Strip kills static libs of other archs (hence cross != null) # Strip kills static libs of other archs (hence cross != null)
// optionalAttrs (!stripped || cross != null) { dontStrip = true; NIX_STRIP_DEBUG = 0; } // optionalAttrs (!stripped || cross != null) { dontStrip = true; NIX_STRIP_DEBUG = 0; }
) )

View File

@ -1,11 +1,11 @@
{ fetchurl, stdenv, gmp, isl }: { fetchurl, stdenv, gmp, isl }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "cloog-0.16.3"; name = "cloog-0.18.0";
src = fetchurl { src = fetchurl {
url = "http://www.bastoul.net/cloog/pages/download/count.php3?url=./${name}.tar.gz"; url = "http://www.bastoul.net/cloog/pages/download/count.php3?url=./${name}.tar.gz";
sha256 = "0lzbsszfzsr0jfwkccfbsvx913d2yc45dqwa472plmxkhbwykmc9"; sha256 = "1c4aa8dde7886be9cbe0f9069c334843b21028f61d344a2d685f88cb1dcf2228";
}; };
buildInputs = [ gmp ]; buildInputs = [ gmp ];

View File

@ -10,6 +10,8 @@ stdenv.mkDerivation (rec {
patches = [ ./no-gets.patch ]; patches = [ ./no-gets.patch ];
LDFLAGS = if stdenv.isSunOS then "-lsec -lavl" else "";
configureFlags = [ "--disable-csharp" ] configureFlags = [ "--disable-csharp" ]
++ (stdenv.lib.optionals stdenv.isCygwin ++ (stdenv.lib.optionals stdenv.isCygwin
[ # We have a static libiconv, so we can only build the static lib. [ # We have a static libiconv, so we can only build the static lib.

View File

@ -1,14 +1,14 @@
{ stdenv, fetchurl, gmp }: { stdenv, fetchurl, gmp }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "isl-0.07"; # CLooG 0.16.3 fails to build with ISL 0.08. name = "isl-0.11.1"; # CLooG 0.16.3 fails to build with ISL 0.08.
src = fetchurl { src = fetchurl {
urls = [ urls = [
"http://www.kotnet.org/~skimo/isl/${name}.tar.bz2" "http://www.kotnet.org/~skimo/isl/${name}.tar.bz2"
"ftp://ftp.linux.student.kuleuven.be/pub/people/skimo/isl/${name}.tar.bz2" "ftp://ftp.linux.student.kuleuven.be/pub/people/skimo/isl/${name}.tar.bz2"
]; ];
sha256 = "0kpxmvhrwwdygqqafqzjf9xiksq7paac2x24g9jhr3f9ajj3zkyx"; sha256 = "095f4b54c88ca13a80d2b025d9c551f89ea7ba6f6201d701960bfe5c1466a98d";
}; };
buildInputs = [ gmp ]; buildInputs = [ gmp ];

View File

@ -1,11 +1,11 @@
{ fetchurl, stdenv, gmp, mpfr }: { fetchurl, stdenv, gmp, mpfr }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "mpc-0.9"; name = "mpc-1.0.1";
src = fetchurl { src = fetchurl {
url = "http://www.multiprecision.org/mpc/download/${name}.tar.gz"; url = "http://www.multiprecision.org/mpc/download/${name}.tar.gz";
sha1 = "229722d553030734d49731844abfef7617b64f1a"; sha256 = "ed5a815cfea525dc778df0cb37468b9c1b554aaf30d9328b1431ca705b7400ff";
}; };
buildInputs = [ gmp mpfr ]; buildInputs = [ gmp mpfr ];

View File

@ -1,11 +1,11 @@
{stdenv, fetchurl, gmp}: {stdenv, fetchurl, gmp}:
stdenv.mkDerivation (rec { stdenv.mkDerivation (rec {
name = "mpfr-3.1.0"; name = "mpfr-3.1.1";
src = fetchurl { src = fetchurl {
url = "mirror://gnu/mpfr/${name}.tar.bz2"; url = "mirror://gnu/mpfr/${name}.tar.bz2";
sha256 = "105nx8qqx5x8f4rlplr2wk4cyv61iw5j3jgi2k21rpb8s6xbp9vl"; sha256 = "1zfmmk4p26b67qpmh787p3dfxa71yd9mi02c4q45yf687pqw6rkv";
}; };
buildInputs = [ gmp ]; buildInputs = [ gmp ];
@ -39,7 +39,7 @@ stdenv.mkDerivation (rec {
// //
(stdenv.lib.optionalAttrs stdenv.isFreeBSD { (stdenv.lib.optionalAttrs (stdenv.isSunOS or stdenv.isFreeBSD) {
/* Work around a FreeBSD bug that otherwise leads to segfaults in /* Work around a FreeBSD bug that otherwise leads to segfaults in
the test suite: the test suite:
http://hydra.bordeaux.inria.fr/build/34862 http://hydra.bordeaux.inria.fr/build/34862

View File

@ -1,13 +1,13 @@
{ fetchurl, stdenv, gmpxx, perl, gnum4 }: { fetchurl, stdenv, gmpxx, perl, gnum4 }:
let version = "0.11.2"; in let version = "1.0"; in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "ppl-${version}"; name = "ppl-${version}";
src = fetchurl { src = fetchurl {
url = "http://bugseng.com/products/ppl/download/ftp/releases/${version}/ppl-${version}.tar.bz2"; url = "http://bugseng.com/products/ppl/download/ftp/releases/${version}/ppl-${version}.tar.bz2";
sha256 = "1sxviip4yk6gp453pid5scy1ba66dzdpr02i1416yk7lkv0x3yz3"; sha256 = "c169e962b8a0f7b7bcde5c5e0e2235248f1d78b155dfad684591d1a57e330b54";
}; };
nativeBuildInputs = [ perl gnum4 ]; nativeBuildInputs = [ perl gnum4 ];
@ -15,6 +15,8 @@ stdenv.mkDerivation rec {
configureFlags = "--disable-watchdog"; configureFlags = "--disable-watchdog";
patches = [ ./upstream-based.patch ];
# Beware! It took ~6 hours to compile PPL and run its tests on a 1.2 GHz # Beware! It took ~6 hours to compile PPL and run its tests on a 1.2 GHz
# x86_64 box. Nevertheless, being a dependency of GCC, it probably ought # x86_64 box. Nevertheless, being a dependency of GCC, it probably ought
# to be tested. # to be tested.
@ -40,7 +42,7 @@ stdenv.mkDerivation rec {
version of the simplex algorithm. version of the simplex algorithm.
''; '';
homepage = http://www.cs.unipr.it/ppl/; homepage = http://bugseng.com/products/ppl/;
license = "GPLv3+"; license = "GPLv3+";

View File

@ -62,5 +62,6 @@ rec {
if stdenvType == "powerpc-linux" then /* stdenvLinux */ stdenvNative else if stdenvType == "powerpc-linux" then /* stdenvLinux */ stdenvNative else
if stdenvType == "i686-mingw" then stdenvMinGW else if stdenvType == "i686-mingw" then stdenvMinGW else
if stdenvType == "x86_64-darwin" then stdenvNix else if stdenvType == "x86_64-darwin" then stdenvNix else
if stdenvType == "x86_64-solaris" then stdenvNix else
stdenvNative; stdenvNative;
} }

View File

@ -9,6 +9,7 @@ rec {
path = path =
(if system == "i686-solaris" then [ "/usr/gnu" ] else []) ++ (if system == "i686-solaris" then [ "/usr/gnu" ] else []) ++
(if system == "i686-netbsd" then [ "/usr/pkg" ] else []) ++ (if system == "i686-netbsd" then [ "/usr/pkg" ] else []) ++
(if system == "x86_64-solaris" then [ "/opt/local/gnu" ] else []) ++
["/" "/usr" "/usr/local"]; ["/" "/usr" "/usr/local"];
prehookBase = '' prehookBase = ''

View File

@ -4,8 +4,8 @@ stdenv.mkDerivation {
name = "cpio-2.9"; name = "cpio-2.9";
src = fetchurl { src = fetchurl {
url = mirror://gnu/cpio/cpio-2.9.tar.bz2; url = mirror://gnu/cpio/cpio-2.11.tar.bz2;
sha256 = "01s7f9hg8kgpis96j99hgkiqgdy53pm7qi7bhm3fzx58jfk5z6mv"; sha256 = "bb820bfd96e74fc6ce43104f06fe733178517e7f5d1cdee553773e8eff7d5bbd";
}; };
patches = [ patches = [

View File

@ -49,6 +49,7 @@ stdenv.mkDerivation (rec {
enableParallelBuilding = true; enableParallelBuilding = true;
LDFLAGS = stdenv.lib.optionalString stdenv.isSunOS "-lmp -lmd -lnsl -lsocket -lresolv";
NIX_LDFLAGS = stdenv.lib.optionalString selinuxSupport "-lsepol"; NIX_LDFLAGS = stdenv.lib.optionalString selinuxSupport "-lsepol";
meta = { meta = {

View File

@ -1938,7 +1938,7 @@ let
gambit = callPackage ../development/compilers/gambit { }; gambit = callPackage ../development/compilers/gambit { };
gcc = gcc46; gcc = gcc47;
gcc33 = wrapGCC (import ../development/compilers/gcc/3.3 { gcc33 = wrapGCC (import ../development/compilers/gcc/3.3 {
inherit fetchurl stdenv noSysDirs; inherit fetchurl stdenv noSysDirs;
@ -3761,7 +3761,7 @@ let
# The GHC bootstrap binaries link against libgmp.so.3, which is in GMP 4.x. # The GHC bootstrap binaries link against libgmp.so.3, which is in GMP 4.x.
gmp4 = callPackage ../development/libraries/gmp/4.3.2.nix { }; gmp4 = callPackage ../development/libraries/gmp/4.3.2.nix { };
gmp5 = callPackage ../development/libraries/gmp/5.0.5.nix { }; gmp5 = callPackage ../development/libraries/gmp/5.1.1.nix { };
gmp51 = callPackage ../development/libraries/gmp/5.1.1.nix { }; gmp51 = callPackage ../development/libraries/gmp/5.1.1.nix { };