Merge 'staging' into master

This commit is contained in:
Vladimír Čunát
2014-08-08 20:13:23 +02:00
220 changed files with 611 additions and 2164 deletions

View File

@@ -44,4 +44,6 @@ stdenv.mkDerivation rec {
langC = true;
buildInputs = stdenv.lib.optionals langF77 [ gmp mpfr bison flex ];
meta.broken = true;
}

View File

@@ -109,13 +109,11 @@ if test "$noSysDirs" = "1"; then
fi
fi
# CFLAGS_FOR_TARGET are needed for the libstdc++ configure script to find
# the startfiles.
# FLAGS_FOR_TARGET are needed for the target libraries to receive the -Bxxx
# for the startfiles.
makeFlagsArray=( \
"${makeFlagsArray[@]}" \
makeFlagsArray+=( \
NATIVE_SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \
SYSTEM_HEADER_DIR="$NIX_FIXINC_DUMMY" \
CFLAGS_FOR_BUILD="$EXTRA_FLAGS $EXTRA_LDFLAGS" \
@@ -128,8 +126,7 @@ if test "$noSysDirs" = "1"; then
)
if test -z "$targetConfig"; then
makeFlagsArray=( \
"${makeFlagsArray[@]}" \
makeFlagsArray+=( \
BOOT_CFLAGS="$EXTRA_FLAGS $EXTRA_LDFLAGS" \
BOOT_LDFLAGS="$EXTRA_TARGET_CFLAGS $EXTRA_TARGET_LDFLAGS" \
)
@@ -138,13 +135,11 @@ if test "$noSysDirs" = "1"; then
if test -n "$targetConfig" -a "$crossStageStatic" == 1; then
# We don't want the gcc build to assume there will be a libc providing
# limits.h in this stagae
makeFlagsArray=( \
"${makeFlagsArray[@]}" \
makeFlagsArray+=( \
LIMITS_H_TEST=false \
)
else
makeFlagsArray=( \
"${makeFlagsArray[@]}" \
makeFlagsArray+=( \
LIMITS_H_TEST=true \
)
fi
@@ -163,6 +158,7 @@ preConfigure() {
# Patch to get armvt5el working:
sed -i -e 's/ arm)/ arm*)/' newlib/configure.host
fi
# Bug - they packaged zlib
if test -d "zlib"; then
# This breaks the build without-headers, which should build only
@@ -189,8 +185,8 @@ preConfigure() {
fi
# Eval the preConfigure script from nix expression.
eval $providedPreConfigure;
env;
eval "$providedPreConfigure"
# Perform the build in a different directory.
mkdir ../build
cd ../build
@@ -204,6 +200,15 @@ postConfigure() {
}
preInstall() {
# Make lib64 a symlink to lib.
if [ -n "$is64bit" -a -z "$enableMultilib" ]; then
mkdir -p $out/lib
ln -s lib $out/lib64
fi
}
postInstall() {
# Remove precompiled headers for now. They are very big and
# probably not very useful yet.

View File

@@ -67,7 +67,6 @@ let version = "4.8.3";
patches = []
++ optional enableParallelBuilding ./parallel-bconfig.patch
++ optional (cross != null) ./libstdc++-target.patch
# ++ optional noSysDirs ./no-sys-dirs.patch
# The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
# target libraries and tools.
++ optional langAda ./gnat-cflags.patch
@@ -304,14 +303,21 @@ stdenv.mkDerivation ({
"\"--with-host-libstdcxx=-Wl,-rpath,\$prefix/lib/amd64 -lstdc++\"
\"--with-boot-ldflags=-L../prev-x86_64-pc-solaris2.11/libstdc++-v3/src/.libs\""}
);
${stdenv.lib.optionalString (stdenv.isSunOS && stdenv.is64bit)
''
export NIX_LDFLAGS=`echo $NIX_LDFLAGS | sed -e s~$prefix/lib~$prefix/lib/amd64~g`
export LDFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $LDFLAGS_FOR_TARGET"
export CXXFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CXXFLAGS_FOR_TARGET"
export CFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CFLAGS_FOR_TARGET"
''}
'';
'' + stdenv.lib.optionalString (stdenv.isSunOS && stdenv.is64bit) ''
export NIX_LDFLAGS=`echo $NIX_LDFLAGS | sed -e s~$prefix/lib~$prefix/lib/amd64~g`
export LDFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $LDFLAGS_FOR_TARGET"
export CXXFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CXXFLAGS_FOR_TARGET"
export CFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CFLAGS_FOR_TARGET"
'' + stdenv.lib.optionalString stdenv.isDarwin ''
if SDKROOT=$(/usr/bin/xcrun --show-sdk-path); then
configureFlagsArray+=(--with-native-system-header-dir=$SDKROOT/usr/include)
makeFlagsArray+=( \
CFLAGS_FOR_BUILD=-F$SDKROOT/System/Library/Frameworks \
CFLAGS_FOR_TARGET=-F$SDKROOT/System/Library/Frameworks \
FLAGS_FOR_TARGET=-F$SDKROOT/System/Library/Frameworks \
)
fi
'';
dontDisableStatic = true;
@@ -494,9 +500,11 @@ stdenv.mkDerivation ({
else null;
passthru =
{ inherit langC langCC langObjC langObjCpp langAda langFortran langVhdl langGo enableMultilib version; };
{ inherit langC langCC langObjC langObjCpp langAda langFortran langVhdl langGo version; };
inherit enableParallelBuilding;
inherit enableParallelBuilding enableMultilib;
inherit (stdenv) is64bit;
meta = {
homepage = http://gcc.gnu.org/;

View File

@@ -1,41 +0,0 @@
diff -ru gcc-4.3.1-orig/gcc/cppdefault.c gcc-4.3.1/gcc/cppdefault.c
--- gcc-4.3.1-orig/gcc/cppdefault.c 2007-07-26 10:37:01.000000000 +0200
+++ gcc-4.3.1/gcc/cppdefault.c 2008-06-25 17:48:23.000000000 +0200
@@ -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 -ru gcc-4.3.1-orig/gcc/gcc.c gcc-4.3.1/gcc/gcc.c
--- gcc-4.3.1-orig/gcc/gcc.c 2008-03-02 23:55:19.000000000 +0100
+++ gcc-4.3.1/gcc/gcc.c 2008-06-25 17:52:53.000000000 +0200
@@ -1478,10 +1478,10 @@
/* Default prefixes to attach to command names. */
#ifndef STANDARD_STARTFILE_PREFIX_1
-#define STANDARD_STARTFILE_PREFIX_1 "/lib/"
+#define STANDARD_STARTFILE_PREFIX_1 ""
#endif
#ifndef STANDARD_STARTFILE_PREFIX_2
-#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/"
+#define STANDARD_STARTFILE_PREFIX_2 ""
#endif
#ifdef CROSS_DIRECTORY_STRUCTURE /* Don't use these prefixes for a cross compiler. */
--- gcc-4.3.1-orig/gcc/Makefile.in 2008-05-11 20:54:15.000000000 +0200
+++ gcc-4.3.1/gcc/Makefile.in 2008-06-25 17:48:23.000000000 +0200
@@ -3277,7 +3281,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\" \
-DPREFIX=\"$(prefix)/\" \

View File

@@ -34,14 +34,14 @@ stdenv.mkDerivation rec {
'';
installPhase = ''
ensureDir $out/bin
mkdir -p $out/bin
cp ghdl_mcode $out/bin
ensureDir $out/share/ghdl_mcode/translate
mkdir -p $out/share/ghdl_mcode/translate
cp -R ../lib $out/share/ghdl_mcode/translate
cp -R ../../libraries $out/share/ghdl_mcode
ensureDir $out/share/man/man1
mkdir -p $out/share/man/man1
cp ../../doc/ghdl.1 $out/share/man/man1/ghdl_mcode.1
# Ghdl has some timestamps checks, storing file timestamps in '.cf' files.

View File

@@ -69,7 +69,7 @@ stdenv.mkDerivation {
# http://lists.science.uu.nl/pipermail/nix-dev/2013-October/011891.html
# Fix for "libgcc_s.so.1 must be installed for pthread_cancel to work"
# during tests:
export LD_LIBRARY_PATH="$(dirname $(echo ${stdenv.gcc.gcc}/lib*/libgcc_s.so))"
export LD_LIBRARY_PATH="$(dirname $(echo ${stdenv.gcc.gcc}/lib/libgcc_s.so))"
mkdir -p "$out/bin"
export GOROOT="$(pwd)/"

View File

@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = [ go ];
installPhase = ''
ensureDir $out/bin
mkdir -p $out/bin
export GOPATH=$src
go build -v -o $out/bin/gox github.com/mitchellh/gox
'';

View File

@@ -11,7 +11,7 @@ stdenv.mkDerivation {
buildInputs = [ unzip ];
installPhase = ''
ensureDir $out
mkdir -p $out
unzip $src
mv gwt-2.4.0 $out/bin
'';

View File

@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
'';
preConfigure = ''
ensureDir $out/lib/mercury/cgi-bin ;
mkdir -p $out/lib/mercury/cgi-bin ;
configureFlags="--enable-deep-profiler=$out/lib/mercury/cgi-bin";
'';

View File

@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
patch -p0 < ${./mips64.patch}
'';
postBuild = ''
ensureDir $out/include
mkdir -p $out/include
ln -sv $out/lib/ocaml/caml $out/include/caml
'';

View File

@@ -1,16 +1,18 @@
{ stdenv, fetchurl, setJavaClassPath }:
{ stdenv, fetchurl, unzip, setJavaClassPath }:
let
jdk = stdenv.mkDerivation {
name = "openjdk6-b16-24_apr_2009-r1";
name = "openjdk-7u60b30";
# From https://github.com/alexkasko/openjdk-unofficial-builds
src = fetchurl {
url = http://landonf.bikemonkey.org/static/soylatte/bsd-dist/openjdk6_darwin/openjdk6-b16-24_apr_2009-r1.tar.bz2;
sha256 = "14pbv6jjk95k7hbgiwyvjdjv8pccm7m8a130k0q7mjssf4qmpx1v";
url = https://bitbucket.org/alexkasko/openjdk-unofficial-builds/downloads/openjdk-1.7.0-u60-unofficial-macosx-x86_64-bundle.zip;
sha256 = "af510a4d566712d82c17054bb39f91d98c69a85586e244c6123669a0bd4b7401";
};
buildInputs = [ unzip ];
installPhase = ''
mkdir -p $out
cp -vR * $out/
mv */Contents/Home $out
# jni.h expects jni_md.h to be in the header search path.
ln -s $out/include/darwin/*_md.h $out/include/

View File

@@ -54,13 +54,13 @@ stdenv.mkDerivation rec {
export LC_ALL=en_US.UTF-8
# Set up link to cymake, which has been built already.
ensureDir bin/.local
mkdir -p bin/.local
ln -s ${curryFront}/bin/cymake bin/.local/
'';
installPhase = ''
# Prepare PAKCSHOME directory.
ensureDir $out/pakcs
mkdir -p $out/pakcs
for d in bin curry2prolog currytools lib tools cpns include www examples docs ; do
cp -r $d $out/pakcs ;
done
@@ -80,7 +80,7 @@ stdenv.mkDerivation rec {
(cd $out/pakcs/www ; make)
# Install bin.
ensureDir $out/bin
mkdir -p $out/bin
for b in makecurrycgi .makesavedstate pakcs parsecurry cleancurry \
addtypes cass currybrowse currycreatemake currydoc currytest \
dataToXml erd2curry ; do
@@ -88,7 +88,7 @@ stdenv.mkDerivation rec {
done
# Place emacs lisp files in expected locations.
ensureDir $out/share/emacs/site-lisp/curry-pakcs
mkdir -p $out/share/emacs/site-lisp/curry-pakcs
for e in "tools/emacs/"*.el ; do
cp $e $out/share/emacs/site-lisp/curry-pakcs/ ;
done

View File

@@ -15,9 +15,9 @@ stdenv.mkDerivation rec {
};
installPhase = ''
ensureDir $out/bin
mkdir -p $out/bin
cp -p src/runtime/sbcl $out/bin
ensureDir $out/share/sbcl
mkdir -p $out/share/sbcl
cp -p output/sbcl.core $out/share/sbcl
'';

View File

@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
preBuild = ''
export INSTALL_ROOT=$out
ensureDir test-home
mkdir -p test-home
export HOME=$PWD/test-home
'';

View File

@@ -22,10 +22,10 @@ stdenv.mkDerivation rec {
'';
installPhase = ''
ensureDir $out/bin
mkdir -p $out/bin
rsync -av bin/ $out/bin/
ensureDir $out/lib
mkdir -p $out/lib
rsync -av lib/ $out/lib/
'';