Remove support for the obsolete powerpc-darwin and i686-darwin platforms

This commit is contained in:
Eelco Dolstra 2012-11-29 14:10:49 +01:00
parent 4b48d05c58
commit 72684fb42f
20 changed files with 68 additions and 466 deletions

View File

@ -5,7 +5,6 @@ hydra_eval_jobs \
--argstr system x86_64-linux \
--argstr system i686-linux \
--argstr system x86_64-darwin \
--argstr system i686-darwin \
--argstr system i686-cygwin \
--argstr system i686-freebsd \
--arg officialRelease false \

View File

@ -15,10 +15,6 @@ let
arch = "x86-linux";
sha256 = "1s00r1kszk5zhmv7m8z5q2wcqjn2gn7fbqwji3hgnsdvbb1f3jdn";
}
else if system == "i686-darwin" then fetchDist {
arch = "x86-darwin";
sha256 = "0vd3zbp5zcp0hjd3y03k595hmri8hw884brjpwjiby3jpm3l40np";
}
else throw "Unsupported platform for cmucl.";
in

View File

@ -1,125 +0,0 @@
source $stdenv/setup
export NIX_FIXINC_DUMMY=$NIX_BUILD_TOP/dummy
mkdir $NIX_FIXINC_DUMMY
# libstdc++ needs this; otherwise it will use /lib/cpp, which is a Bad
# Thing.
export CPP="gcc -E"
if test "$noSysDirs" = "1"; then
# Figure out what extra flags to pass to the gcc compilers being
# generated to make sure that they use our glibc.
if test -e $NIX_GCC/nix-support/orig-glibc; then
glibc=$(cat $NIX_GCC/nix-support/orig-glibc)
# Ugh. Copied from gcc-wrapper/builder.sh. We can't just
# source in $NIX_GCC/nix-support/add-flags, since that would
# cause *this* GCC to be linked against the *previous* GCC.
# Need some more modularity there.
extraCFlags="-B$glibc/lib -isystem $glibc/include"
extraLDFlags="-B$glibc/lib -L$glibc/lib -Wl,-s \
-Wl,-dynamic-linker,$glibc/lib/ld-linux.so.2"
# Oh, what a hack. I should be shot for this. In stage 1, we
# should link against the previous GCC, but not afterwards.
# Otherwise we retain a dependency. However, ld-wrapper,
# which adds the linker flags for the previous GCC, is also
# used in stage 2/3. We can prevent it from adding them by
# NIX_GLIBC_FLAGS_SET, but then gcc-wrapper will also not add
# them, thereby causing stage 1 to fail. So we use a trick to
# only set the flags in gcc-wrapper.
hook=$(pwd)/ld-wrapper-hook
echo "NIX_GLIBC_FLAGS_SET=1" > $hook
export NIX_LD_WRAPPER_START_HOOK=$hook
# Use *real* header files, otherwise a limits.h is generated
# that does not include Glibc's limits.h (notably missing
# SSIZE_MAX, which breaks the build).
export NIX_FIXINC_DUMMY=$glibc/include
fi
export NIX_EXTRA_CFLAGS=$extraCFlags
export NIX_EXTRA_LDFLAGS=$extraLDFlags
export CFLAGS=$extraCFlags
export CXXFLAGS=$extraCFlags
export LDFLAGS=$extraLDFlags
fi
preConfigure() {
# Determine the frontends to build.
langs="c"
if test -n "$langCC"; then
langs="$langs,c++"
fi
if test -n "$langF77"; then
langs="$langs,f95"
fi
# Perform the build in a different directory.
mkdir ../build
cd ../build
configureScript=../$sourceRoot/configure
configureFlags="--enable-languages=$langs --disable-libstdcxx-pch --disable-libstdcxx-debug --disable-multilib --with-gxx-include-dir=${STDCXX_INCDIR}"
}
postInstall() {
# Remove precompiled headers for now. They are very big and
# probably not very useful yet.
find $out/include -name "*.gch" -exec rm -rf {} \; -prune
# Remove `fixincl' to prevent a retained dependency on the
# previous gcc.
rm -rf $out/libexec/gcc/*/*/install-tools
}
postUnpack() {
mv libstdcxx-16/libstdcxx $sourceRoot/
}
STDCXX_INCDIR="$out/include/c++/4.2.1"
genericBuild
echo '-------------------------------------------------------------------------------------------------------------------------'
echo 'libstdcxx-16'
echo '-------------------------------------------------------------------------------------------------------------------------'
cd ..
pwd
preConfigure() {
# Perform the build in a different directory.
mkdir ../build_libstdcxx
cd ../build_libstdcxx
ln -s ../build/gcc gcc
configureScript=../$sourceRoot/libstdcxx/configure
configureFlags="--disable-libstdcxx-pch --disable-libstdcxx-debug --disable-multilib --with-gxx-include-dir=${STDCXX_INCDIR}"
}
unpackPhase () {
echo '-'
}
postInstall() {
echo '-'
echo "cp -v ${STDCXX_INCDIR}/*/bits/* ${STDCXX_INCDIR}/bits/"
cp -v ${STDCXX_INCDIR}/*/bits/* ${STDCXX_INCDIR}/bits/
}
patchPhase() {
echo '-'
}
genericBuild

View File

@ -1,30 +0,0 @@
diff -rc libstdcxx-16-orig/libstdcxx/libstdc++-v3/src/Makefile.in libstdcxx-16/libstdcxx/libstdc++-v3/src/Makefile.in
*** libstdcxx-16-orig/libstdcxx/libstdc++-v3/src/Makefile.in Thu Jul 23 19:13:52 2009
--- libstdcxx-16/libstdcxx/libstdc++-v3/src/Makefile.in Thu Jul 23 19:38:23 2009
***************
*** 65,71 ****
numeric_members.lo time_members.lo
am__objects_2 = basic_file.lo c++locale.lo
am__objects_3 = bitmap_allocator.lo pool_allocator.lo mt_allocator.lo \
! codecvt.lo complex_io.lo ctype.lo debug.lo debug_list.lo \
functexcept.lo globals_locale.lo globals_io.lo ios.lo \
ios_failure.lo ios_init.lo ios_locale.lo limits.lo list.lo \
locale.lo locale_init.lo locale_facets.lo localename.lo \
--- 65,71 ----
numeric_members.lo time_members.lo
am__objects_2 = basic_file.lo c++locale.lo
am__objects_3 = bitmap_allocator.lo pool_allocator.lo mt_allocator.lo \
! codecvt.lo complex_io.lo ctype.lo debug.lo \
functexcept.lo globals_locale.lo globals_io.lo ios.lo \
ios_failure.lo ios_init.lo ios_locale.lo limits.lo list.lo \
locale.lo locale_init.lo locale_facets.lo localename.lo \
***************
*** 315,321 ****
complex_io.cc \
ctype.cc \
debug.cc \
- debug_list.cc \
functexcept.cc \
globals_locale.cc \
globals_io.cc \
--- 315,320 ----

View File

@ -1,31 +0,0 @@
{ stdenv, fetchurl, noSysDirs
, langC ? true, langCC ? true, langF77 ? false
, profiledCompiler ? false
, gmp ? null, mpfr ? null, bison ? null, flex ? null
}:
assert langC;
assert stdenv.isDarwin;
assert langF77 -> gmp != null;
stdenv.mkDerivation ({
name = "gcc-4.2.1-apple-5574";
builder = ./builder.sh;
src =
stdenv.lib.optional /*langC*/ true (fetchurl {
url = http://www.opensource.apple.com/tarballs/gcc_42/gcc_42-5574.tar.gz ;
sha256 = "0b76ef3cded7822e3c0ec430f9811b6bb84895055b683acd2df7f7253d745a50";
}) ++
stdenv.lib.optional langCC (fetchurl {
url = http://www.opensource.apple.com/tarballs/libstdcxx/libstdcxx-16.tar.gz ;
sha256 = "a7d8041e50e110f5a503e188a05cb217f0c99c51f248a0a1387cc07a0b6f167f";
}) ;
enableParallelBuilding = true;
sourceRoot = "gcc_42-5574/";
patches =
[./pass-cxxcpp.patch ./debug_list.patch]
++ (if noSysDirs then [./no-sys-dirs.patch] else []);
inherit noSysDirs langC langCC langF77 profiledCompiler;
} // (if langF77 then {buildInputs = [gmp mpfr bison flex];} else {}))

View File

@ -1,126 +0,0 @@
diff -ruN gcc-4.1.0/gcc/cppdefault.c gcc-4.1.0.new/gcc/cppdefault.c
--- gcc-4.1.0/gcc/cppdefault.c 2005-06-25 04:02:01.000000000 +0200
+++ gcc-4.1.0.new/gcc/cppdefault.c 2006-03-01 18:48:58.000000000 +0100
@@ -41,6 +41,10 @@
# undef CROSS_INCLUDE_DIR
#endif
+#undef LOCAL_INCLUDE_DIR
+#undef SYSTEM_INCLUDE_DIR
+#undef STANDARD_INCLUDE_DIR
+
const struct default_include cpp_include_defaults[]
#ifdef INCLUDE_DEFAULTS
= INCLUDE_DEFAULTS;
diff -ruN gcc-4.1.0/gcc/Makefile.in gcc-4.1.0.new/gcc/Makefile.in
--- gcc-4.1.0/gcc/Makefile.in 2006-02-16 16:23:24.000000000 +0100
+++ gcc-4.1.0.new/gcc/Makefile.in 2006-03-01 18:55:12.000000000 +0100
@@ -219,7 +219,7 @@
CPPFLAGS = @CPPFLAGS@
# These exists to be overridden by the x-* and t-* files, respectively.
-X_CFLAGS =
+X_CFLAGS = $(NIX_EXTRA_CFLAGS) $(NIX_EXTRA_LDFLAGS)
T_CFLAGS =
X_CPPFLAGS =
@@ -383,7 +383,11 @@
MD5_H = $(srcdir)/../include/md5.h
# Default native SYSTEM_HEADER_DIR, to be overridden by targets.
-NATIVE_SYSTEM_HEADER_DIR = /usr/include
+# Nix: we override NATIVE_SYSTEM_HEADER_DIR in order to prevent
+# `fixinc' from fixing header files in /usr/include. However,
+# NATIVE_SYSTEM_HEADER_DIR must point to an existing directory, so set
+# it to some dummy directory.
+NATIVE_SYSTEM_HEADER_DIR = $(NIX_FIXINC_DUMMY)
# Default cross SYSTEM_HEADER_DIR, to be overridden by targets.
CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
@@ -395,7 +399,7 @@
STMP_FIXINC = @STMP_FIXINC@
# Test to see whether <limits.h> exists in the system header files.
-LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR)/limits.h ]
+LIMITS_H_TEST = true
# Directory for prefix to system directories, for
# each of $(system_prefix)/usr/include, $(system_prefix)/usr/lib, etc.
@@ -3002,7 +3006,7 @@
-DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
-DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \
-DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
- -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \
+ -DLOCAL_INCLUDE_DIR=\"/no-such-dir\" \
-DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \
-DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
@TARGET_SYSTEM_ROOT_DEFINE@
diff -ruN gcc-4.1.0/libstdc++-v3/include/Makefile.in gcc-4.1.0.new/libstdc++-v3/include/Makefile.in
--- gcc-4.1.0/libstdc++-v3/include/Makefile.in 2006-01-10 18:14:00.000000000 +0100
+++ gcc-4.1.0.new/libstdc++-v3/include/Makefile.in 2006-03-01 18:57:32.000000000 +0100
@@ -1257,8 +1257,8 @@
if [ ! -d "${pch_output_builddir}" ]; then \
mkdir -p ${pch_output_builddir}; \
fi; \
- $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O0 -g -o ${pch_output_builddir}/O0g.gch; \
- $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O2 -g -o ${pch_output_builddir}/O2g.gch;
+ $(CXX) $(CFLAGS) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O0 -g -o ${pch_output_builddir}/O0g.gch; \
+ $(CXX) $(CFLAGS) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O2 -g -o ${pch_output_builddir}/O2g.gch;
# For robustness sake (in light of junk files or in-source
# configuration), copy from the build or source tree to the install
diff -ruN gcc-4.1.0/ltcf-cxx.sh gcc-4.1.0.new/ltcf-cxx.sh
--- gcc-4.1.0/ltcf-cxx.sh 2005-07-16 04:30:53.000000000 +0200
+++ gcc-4.1.0.new/ltcf-cxx.sh 2006-03-01 18:58:15.000000000 +0100
@@ -989,7 +989,7 @@
# the conftest object file.
pre_test_object_deps_done=no
- for p in `eval $output_verbose_link_cmd`; do
+ for p in `true`; do
case $p in
diff -ruN gcc-4.1.0/ltconfig gcc-4.1.0.new/ltconfig
--- gcc-4.1.0/ltconfig 2005-07-16 04:30:53.000000000 +0200
+++ gcc-4.1.0.new/ltconfig 2006-03-01 18:59:58.000000000 +0100
@@ -2322,6 +2322,11 @@
# A language-specific compiler.
CC=$CC
+# Ugly hack to get libmudflap (and possibly other libraries) to build.
+# Libtool filters out \`-B' flags when linking (why?), so the \`-B' flag
+# to Glibc gets lost. Here we forcibly add it to any invocation.
+CC="\$CC $NIX_EXTRA_LDFLAGS"
+
# Is the compiler the GNU C compiler?
with_gcc=$with_gcc
diff -ruN gcc-4.1.0/Makefile.in gcc-4.1.0.new/Makefile.in
--- gcc-4.1.0/Makefile.in 2005-12-15 15:02:02.000000000 +0100
+++ gcc-4.1.0.new/Makefile.in 2006-03-01 19:41:04.000000000 +0100
@@ -286,7 +286,7 @@
WINDRES = @WINDRES@
CFLAGS = @CFLAGS@
-LDFLAGS =
+LDFLAGS = $(NIX_EXTRA_LDFLAGS)
LIBCFLAGS = $(CFLAGS)
CXXFLAGS = @CXXFLAGS@
LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
@@ -329,12 +329,12 @@
# CFLAGS will be just -g. We want to ensure that TARGET libraries
# (which we know are built with gcc) are built with optimizations so
# prepend -O2 when setting CFLAGS_FOR_TARGET.
-CFLAGS_FOR_TARGET = -O2 $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)
+CFLAGS_FOR_TARGET = -O2 $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) $(NIX_EXTRA_CFLAGS)
SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@
-CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET)
+CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) $(NIX_EXTRA_CFLAGS)
LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
-LDFLAGS_FOR_TARGET =
+LDFLAGS_FOR_TARGET = $(NIX_EXTRA_LDFLAGS)
PICFLAG_FOR_TARGET =
# ------------------------------------

View File

@ -1,21 +0,0 @@
diff -rc gcc-orig/Makefile.in gcc-4.1.1/Makefile.in
*** gcc-orig/Makefile.in Wed Jun 21 13:40:23 2006
--- gcc-4.1.1/Makefile.in Wed Jun 21 14:19:44 2006
***************
*** 213,219 ****
RAW_CXX_TARGET_EXPORTS = \
$(BASE_TARGET_EXPORTS) \
CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \
! CXX="$(RAW_CXX_FOR_TARGET)"; export CXX;
NORMAL_TARGET_EXPORTS = \
$(BASE_TARGET_EXPORTS) \
--- 213,220 ----
RAW_CXX_TARGET_EXPORTS = \
$(BASE_TARGET_EXPORTS) \
CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \
! CXX="$(RAW_CXX_FOR_TARGET)"; export CXX; \
! CXXCPP="$(RAW_CXX_FOR_TARGET) $(CFLAGS_FOR_BUILD) -E"; export CXXCPP;
NORMAL_TARGET_EXPORTS = \
$(BASE_TARGET_EXPORTS) \

View File

@ -14,10 +14,7 @@ stdenv.mkDerivation rec {
] ++ stdenv.lib.optional (stdenv.system != "i686-cygwin") ./dll.patch;
buildInputs = [ unzip ]
# For some reason the makefile sets "AR = libtool" on Darwin.
++ stdenv.lib.optional (stdenv.system == "i686-darwin") libtool;
buildInputs = [ unzip ];
# Unpack the thing in a subdirectory.
unpackPhase = ''

View File

@ -1,27 +0,0 @@
{stdenv, fetchurl, m4, cxx ? true}:
stdenv.mkDerivation rec {
name = "gmp-4.3.1";
src = fetchurl {
url = "mirror://gnu/gmp/${name}.tar.bz2";
sha256 = "1j5pklq36ivg2cim5wfysns229a544lqkimp3mlzkwjl513ra0ma";
};
buildInputs = [m4];
preConfigure = "ln -sf configfsf.guess config.guess";
configureFlags = if cxx then "--enable-cxx" else "--disable-cxx";
doCheck = true;
enableParallelBuilding = true;
meta = {
description = "A free library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating point numbers";
homepage = http://gmplib.org/;
license = "LGPL";
platforms = stdenv.lib.platforms.all;
};
}

View File

@ -1,6 +1,6 @@
{ fetchurl, stdenv }:
stdenv.mkDerivation (rec {
stdenv.mkDerivation rec {
name = "libiconv-1.13.1";
src = fetchurl {
@ -8,6 +8,12 @@ stdenv.mkDerivation (rec {
sha256 = "0jcsjk2g28bq20yh7rvbn8xgq6q42g8dkkac0nfh12b061l638sm";
};
# On Cygwin, Libtool produces a `.dll.a', which is not a "real" DLL
# (Windows' linker would need to be used somehow to produce an actual
# DLL.) Thus, build the static library too, and this is what Gettext
# will actually use.
configureFlags = stdenv.lib.optional stdenv.isCygwin [ "--enable-static" ];
meta = {
description = "GNU libiconv, an iconv(3) implementation";
@ -27,16 +33,6 @@ stdenv.mkDerivation (rec {
maintainers = [ stdenv.lib.maintainers.ludo ];
# This library is not needed on GNU platforms.
platforms = [ "i686-cygwin" "i686-darwin" ];
platforms = [ "i686-cygwin" ];
};
}
//
stdenv.lib.optionalAttrs stdenv.isCygwin {
# On Cygwin, Libtool produces a `.dll.a', which is not a "real" DLL
# (Windows' linker would need to be used somehow to produce an actual
# DLL.) Thus, build the static library too, and this is what Gettext
# will actually use.
configureFlags = [ "--enable-static" ];
})

View File

@ -15,11 +15,10 @@ stdenv.mkDerivation rec {
'';
buildInputs = [ gettext ] ++
# We don't have Emacs/GTK/etc. on {Dar,Cyg}win.
stdenv.lib.optional
(! (stdenv.lib.lists.any (x: stdenv.system == x)
[ "i686-darwin" "i686-cygwin" ]))
[ "i686-cygwin" ]))
emacs;
doCheck = true;

View File

@ -2,9 +2,8 @@ let lists = import ./lists.nix; in
rec {
gnu = linux; /* ++ hurd ++ kfreebsd ++ ... */
linux = ["i686-linux" "x86_64-linux" "powerpc-linux" "armv5tel-linux"
"armv7l-linux" "mips64el-linux"];
darwin = ["i686-darwin" "powerpc-darwin" "x86_64-darwin"];
linux = ["i686-linux" "x86_64-linux" "powerpc-linux" "armv5tel-linux" "armv7l-linux" "mips64el-linux"];
darwin = ["x86_64-darwin"];
freebsd = ["i686-freebsd" "x86_64-freebsd" "powerpc-freebsd"];
openbsd = ["i686-openbsd" "x86_64-openbsd"];
netbsd = ["i686-netbsd" "x86_64-netbsd"];

View File

@ -251,10 +251,7 @@ in
};
libSM = attrs: attrs
// { propagatedBuildInputs = [ xorg.libICE ]; }
// args.stdenv.lib.optionalAttrs (args.stdenv.system == "i686-darwin") {
configureFlags = "LIBUUID_CFLAGS='' LIBUUID_LIBS=''";
};
// { propagatedBuildInputs = [ xorg.libICE ]; };
lndir = attrs: attrs // {
preConfigure = ''

View File

@ -43,13 +43,13 @@ rec {
# Linux standard environment.
stdenvLinux = (import ./linux {inherit system allPackages platform;}).stdenvLinux;
# MinGW/MSYS standard environment.
stdenvMinGW = import ./mingw {
inherit system;
};
# Select the appropriate stdenv for the platform `system'.
stdenv =
if stdenvType == "i686-linux" then stdenvLinux else
@ -59,7 +59,6 @@ rec {
if stdenvType == "mips64el-linux" then stdenvLinux else
if stdenvType == "powerpc-linux" then /* stdenvLinux */ stdenvNative else
if stdenvType == "i686-mingw" then stdenvMinGW else
if stdenvType == "i686-darwin" then stdenvNix else
if stdenvType == "x86_64-darwin" then stdenvNix else
stdenvNative;
}

View File

@ -82,9 +82,7 @@ let
// (attrs.passthru or {});
# Utility flags to test the type of platform.
isDarwin = result.system == "i686-darwin"
|| result.system == "powerpc-darwin"
|| result.system == "x86_64-darwin";
isDarwin = result.system == "x86_64-darwin";
isLinux = result.system == "i686-linux"
|| result.system == "x86_64-linux"
|| result.system == "powerpc-linux"
@ -108,7 +106,6 @@ let
|| result.system == "x86_64-openbsd";
isi686 = result.system == "i686-linux"
|| result.system == "i686-gnu"
|| result.system == "i686-darwin"
|| result.system == "i686-freebsd"
|| result.system == "i686-openbsd"
|| result.system == "i386-sunos";

View File

@ -2,11 +2,11 @@
rec {
shell =
shell =
if system == "i686-freebsd" || system == "x86_64-freebsd" then "/usr/local/bin/bash"
else "/bin/bash";
path =
path =
(if system == "i686-solaris" then [ "/usr/gnu" ] else []) ++
(if system == "i686-netbsd" then [ "/usr/pkg" ] else []) ++
["/" "/usr" "/usr/local"];
@ -22,13 +22,13 @@ rec {
export NIX_DONT_SET_RPATH=1
export NIX_NO_SELF_RPATH=1
dontFixLibtool=1
stripAllFlags=" " # the Darwin "strip" command doesn't know "-s"
stripAllFlags=" " # the Darwin "strip" command doesn't know "-s"
xargsFlags=" "
'';
prehookFreeBSD = ''
${prehookBase}
alias make=gmake
alias tar=gtar
alias sed=gsed
@ -41,14 +41,14 @@ rec {
prehookOpenBSD = ''
${prehookBase}
alias make=gmake
alias grep=ggrep
alias mv=gmv
alias ln=gln
alias sed=gsed
alias tar=gtar
export MAKE=gmake
shopt -s expand_aliases
@ -58,20 +58,20 @@ rec {
prehookNetBSD = ''
${prehookBase}
alias make=gmake
alias sed=gsed
alias tar=gtar
export MAKE=gmake
shopt -s expand_aliases
# Filter out stupid GCC warnings (in gcc-wrapper).
export NIX_GCC_NEEDS_GREP=1
'';
prehookCygwin = ''
${prehookBase}
if test -z "$cygwinConfigureEnableShared"; then
export configureFlags="$configureFlags --disable-shared"
fi
@ -81,17 +81,17 @@ rec {
# A function that builds a "native" stdenv (one that uses tools in
# /usr etc.).
# /usr etc.).
makeStdenv =
{ gcc, fetchurl, extraPath ? [], overrides ? (pkgs: { }) }:
import ../generic {
preHook =
if system == "i686-darwin" || system == "powerpc-darwin" || system == "x86_64-darwin" then prehookDarwin else
if system == "x86_64-darwin" then prehookDarwin else
if system == "i686-freebsd" then prehookFreeBSD else
if system == "x86_64-freebsd" then prehookFreeBSD else
if system == "i686-openbsd" then prehookOpenBSD else
if system == "i686-netbsd" then prehookNetBSD else
if system == "i686-netbsd" then prehookNetBSD else
prehookBase;
initialPath = extraPath ++ path;
@ -106,7 +106,7 @@ rec {
gcc = "/no-such-path";
fetchurl = null;
};
gcc = import ../../build-support/gcc-wrapper {
name = "gcc-native";
@ -116,14 +116,14 @@ rec {
stdenv = stdenvBoot0;
};
fetchurl = import ../../build-support/fetchurl {
stdenv = stdenvBoot0;
# Curl should be in /usr/bin or so.
curl = null;
};
# First build a stdenv based only on tools outside the store.
stdenvBoot1 = makeStdenv {
inherit gcc fetchurl;

View File

@ -10,10 +10,5 @@ cd hevea-*
sed s+/usr/local+$out+ Makefile > Makefile.new
mv Makefile.new Makefile
if test "x$system" = "xpowerpc-darwin"; then
sed s/CPP=cpp\ -E\ -P/CPP=m4\ -E\ -E\ -P/ Makefile > Makefile.new
mv Makefile.new Makefile
fi
make
make install

View File

@ -24,7 +24,7 @@
, # Non-GNU/Linux OSes are currently "impure" platforms, with their libc
# outside of the store. Thus, GCC, GFortran, & co. must always look for
# files in standard system directories (/usr/include, etc.)
noSysDirs ? (system != "x86_64-darwin" && system != "i686-darwin"
noSysDirs ? (system != "x86_64-darwin"
&& system != "x86_64-freebsd" && system != "i686-freebsd"
&& system != "x86_64-kfreebsd-gnu")
@ -2121,17 +2121,14 @@ let
}));
gccApple =
wrapGCC (makeOverridable
(if stdenv.system == "i686-darwin"
then import ../development/compilers/gcc/4.2-apple32
else import ../development/compilers/gcc/4.2-apple64) {
inherit fetchurl noSysDirs;
profiledCompiler = true;
# Since it fails to build with GCC 4.6, build it with the "native"
# Apple-GCC.
stdenv = allStdenvs.stdenvNative;
});
assert stdenv.isDarwin;
wrapGCC (makeOverridable (import ../development/compilers/gcc/4.2-apple64) {
inherit fetchurl noSysDirs;
profiledCompiler = true;
# Since it fails to build with GCC 4.6, build it with the "native"
# Apple-GCC.
stdenv = allStdenvs.stdenvNative;
});
gccupc40 = wrapGCCUPC (import ../development/compilers/gcc-upc-4.0 {
inherit fetchurl stdenv bison autoconf gnum4 noSysDirs;
@ -3753,18 +3750,12 @@ let
gmm = callPackage ../development/libraries/gmm { };
# GMP 4.3.2 is broken on Darwin, so use 4.3.1.
gmp = if stdenv.system == "i686-darwin" then gmp4 else gmp5;
gmp = gmp5;
gmpxx = appendToName "with-cxx" (gmp.override { cxx = true; });
# The GHC bootstrap binaries link against libgmp.so.3, which is in GMP 4.x.
gmp4 =
if stdenv.system == "i686-darwin" then
# GMP 4.3.2 is broken on Darwin, so use 4.3.1.
callPackage ../development/libraries/gmp/4.3.1.nix { }
else
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 { };
@ -4509,8 +4500,7 @@ let
mesaSupported =
system == "i686-linux" ||
system == "x86_64-linux" ||
system == "x86_64-darwin" ||
system == "i686-darwin";
system == "x86_64-darwin";
mesa = callPackage ../development/libraries/mesa { };

View File

@ -47,16 +47,16 @@ releaseTools.sourceTarball {
export NIX_DB_DIR=$TMPDIR
export NIX_STATE_DIR=$TMPDIR
nix-store --init
# Run the regression tests in `lib'.
res="$(nix-instantiate --eval-only --strict pkgs/lib/tests.nix)"
if test "$res" != "[ ]"; then
echo "regression tests for lib failed, got: $res"
exit 1
fi
# Check that all-packages.nix evaluates on a number of platforms.
for platform in i686-linux x86_64-linux powerpc-linux i686-freebsd powerpc-darwin i686-darwin; do
for platform in i686-linux x86_64-linux powerpc-linux i686-freebsd; do
header "checking pkgs/top-level/all-packages.nix on $platform"
nix-env --readonly-mode -f pkgs/top-level/all-packages.nix \
--show-trace --argstr system "$platform" \
@ -72,7 +72,7 @@ releaseTools.sourceTarball {
distPhase = ''
find . -name "\.svn" -exec rm -rvf {} \; -prune
mkdir -p $out/tarballs
mkdir ../$releaseName
cp -prd . ../$releaseName

View File

@ -10,7 +10,6 @@ rec {
if system == "x86_64-linux" then pkgs_x86_64_linux
else if system == "i686-linux" then pkgs_i686_linux
else if system == "x86_64-darwin" then pkgs_x86_64_darwin
else if system == "i686-darwin" then pkgs_i686_darwin
else if system == "x86_64-freebsd" then pkgs_x86_64_freebsd
else if system == "i686-freebsd" then pkgs_i686_freebsd
else if system == "i686-cygwin" then pkgs_i686_cygwin
@ -19,7 +18,6 @@ rec {
pkgs_x86_64_linux = allPackages { system = "x86_64-linux"; };
pkgs_i686_linux = allPackages { system = "i686-linux"; };
pkgs_x86_64_darwin = allPackages { system = "x86_64-darwin"; };
pkgs_i686_darwin = allPackages { system = "i686-darwin"; };
pkgs_x86_64_freebsd = allPackages { system = "x86_64-freebsd"; };
pkgs_i686_freebsd = allPackages { system = "i686-freebsd"; };
pkgs_i686_cygwin = allPackages { system = "i686-cygwin"; };
@ -75,37 +73,37 @@ rec {
job = toJob value;
getPkg = pkgs: (pkgs.lib.addMetaAttrs {
schedulingPriority = toString job.schedulingPriority;
maintainers = crossMaintainers;
maintainers = crossMaintainers;
}
(pkgs.lib.getAttrFromPath path pkgs));
in testOnCross crossSystem job.systems getPkg);
/* Find all packages that have a meta.platforms field listing the
supported platforms. */
packagesWithMetaPlatform = attrSet:
if builtins ? tryEval then
let pairs = pkgs.lib.concatMap
packagesWithMetaPlatform = attrSet:
if builtins ? tryEval then
let pairs = pkgs.lib.concatMap
(x:
let pair = builtins.tryEval
(let
attrVal = (builtins.getAttr x attrSet);
in
{val=(processPackage attrVal);
attrVal = attrVal;
attrValIsAttrs = builtins.isAttrs attrVal;
});
success = (builtins.tryEval pair.value.attrVal).success;
in
if success && pair.value.attrValIsAttrs &&
pair.value.val != [] then
[{name= x; value=pair.value.val;}] else [])
let pair = builtins.tryEval
(let
attrVal = (builtins.getAttr x attrSet);
in
{val=(processPackage attrVal);
attrVal = attrVal;
attrValIsAttrs = builtins.isAttrs attrVal;
});
success = (builtins.tryEval pair.value.attrVal).success;
in
if success && pair.value.attrValIsAttrs &&
pair.value.val != [] then
[{name= x; value=pair.value.val;}] else [])
(builtins.attrNames attrSet);
in
builtins.listToAttrs pairs
else {};
# May fail as much as it wishes, we will catch the error.
processPackage = attrSet:
processPackage = attrSet:
if attrSet ? recurseForDerivations && attrSet.recurseForDerivations then
packagesWithMetaPlatform attrSet
else if attrSet ? recurseForRelease && attrSet.recurseForRelease then
@ -121,6 +119,6 @@ rec {
/* Platform groups for specific kinds of applications. */
x11Supported = linux;
gtkSupported = linux;
ghcSupported = linux ++ ["i686-darwin"] ;
ghcSupported = linux;
}