Merge branch 'darwin-stdenv' of github.com:joelteon/nixpkgs into staging

Conflicts:
	pkgs/development/interpreters/ruby/ruby-19.nix
	pkgs/development/libraries/libc++/default.nix
	pkgs/development/libraries/libc++abi/default.nix
	pkgs/tools/text/sgml/opensp/default.nix
This commit is contained in:
Eelco Dolstra 2014-09-23 11:27:53 +02:00
commit cd71f7a2e6
68 changed files with 640 additions and 117 deletions

View File

@ -3,12 +3,12 @@
stdenv.mkDerivation rec {
name = "vim-${version}";
version = "7.4.335";
version = "7.4.410";
src = fetchhg {
url = "https://vim.googlecode.com/hg/";
rev = "v7-4-335";
sha256 = "0qnpzfcbi6fhz82pj68l4vrnigca1akq2ksrxz6krwlfhns6jhhj";
rev = "v7-4-410";
sha256 = "145llhj6gq2bh9b7p8xkxc388krrximq80b87f3cn4w4d4k9fhqp";
};
enableParallelBuilding = true;

View File

@ -1,9 +1,8 @@
{ stdenv, stdenvAdapters, gccApple, fetchFromGitHub, ncurses, gettext,
{ stdenv, stdenvAdapters, fetchFromGitHub, ncurses, gettext,
pkgconfig, cscope, python, ruby, tcl, perl, luajit
}:
let inherit (stdenvAdapters.overrideGCC stdenv gccApple) mkDerivation;
in mkDerivation rec {
stdenv.mkDerivation rec {
name = "macvim-${version}";
version = "7.4.355";

View File

@ -15,7 +15,7 @@ assert httpServer -> httpd != null;
assert pythonBindings -> swig != null && python != null;
assert javahlBindings -> jdk != null && perl != null;
stdenv.mkDerivation rec {
stdenv.mkDerivation (rec {
version = "1.8.10";
@ -46,8 +46,6 @@ stdenv.mkDerivation rec {
preBuild = ''
makeFlagsArray=(APACHE_LIBEXECDIR=$out/modules)
'' + stdenv.lib.optionalString stdenv.isDarwin ''
substituteInPlace configure --replace "-no-cpp-precomp" ""
'';
postInstall = ''
@ -73,14 +71,15 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
# Hack to build on Mac OS X. The system header files use C99-style
# comments, but Subversion passes -std=c90.
NIX_CFLAGS_COMPILE = "-std=c99";
meta = {
description = "A version control system intended to be a compelling replacement for CVS in the open source community";
homepage = http://subversion.apache.org/;
maintainers = with stdenv.lib.maintainers; [ eelco lovek323 ];
hydraPlatforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin;
};
}
} // stdenv.lib.optionalAttrs stdenv.isDarwin {
CXX = "clang++";
CC = "clang";
CPP = "clang -E";
CXXCPP = "clang++ -E";
})

View File

@ -214,6 +214,10 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version;
configureFlags+=" --ghc-option=-j$NIX_BUILD_CORES"
''}
${optionalString self.stdenv.isDarwin ''
configureFlags+=" --with-gcc=clang"
''}
echo "configure flags: $extraConfigureFlags $configureFlags"
./Setup configure --verbose --prefix="$out" --libdir='$prefix/lib/$compiler' \
--libsubdir='$pkgid' $extraConfigureFlags $configureFlags 2>&1 \
@ -236,6 +240,7 @@ assert !enableStaticLibraries -> versionOlder "7.7" ghc.version;
export GHC_PACKAGE_PATH=$(${ghc.GHCPackages})
test -n "$noHaddock" || ./Setup haddock --html --hoogle \
--ghc-options=-optP-P \
${optionalString self.hyperlinkSource "--hyperlink-source"}
eval "$postBuild"

View File

@ -28,20 +28,32 @@ if test -z "$nativeLibc"; then
fi
if test -n "$nativeTools"; then
clangPath="$nativePrefix/bin"
if [ -n "$isDarwin" ]; then
clangPath="$clang/bin"
else
clangPath="$nativePrefix/bin"
fi
ldPath="$nativePrefix/bin"
else
basePath=`echo $gcc/lib/*/*/*`
# Need libgcc until the llvm compiler-rt library is complete
clangLDFlags="$clangLDFlags -L$basePath"
if test -e "$gcc/lib64"; then
clangLDFlags="$clangLDFlags -L$gcc/lib64"
else
clangLDFlags="$clangLDFlags -L$gcc/lib"
clangLDFlags=""
if test -d "$gcc/lib"; then
basePath=`echo $gcc/lib/*/*/*`
# Need libgcc until the llvm compiler-rt library is complete
clangLDFlags="$clangLDFlags -L$basePath"
if test -e "$gcc/lib64"; then
clangLDFlags="$clangLDFlags -L$gcc/lib64"
else
clangLDFlags="$clangLDFlags -L$gcc/lib"
fi
fi
clangLDFlags="$clangLDFlags -L$clang/lib"
echo "$clangLDFlags" > $out/nix-support/clang-ldflags
if test -d "$clang/lib"; then
clangLDFlags="$clangLDFlags -L$clang/lib"
fi
if [ -n "$clangLDFlags" ]; then
echo "$clangLDFlags" > $out/nix-support/clang-ldflags
fi
# Need files like crtbegin.o from gcc
# It's unclear if these will ever be provided by an LLVM project
@ -49,9 +61,9 @@ else
clangCFlags="$clangCFlags -isystem$clang/lib/clang/$clangVersion/include"
echo "$clangCFlags" > $out/nix-support/clang-cflags
clangPath="$clang/bin"
ldPath="$binutils/bin"
clangPath="$clang/bin"
fi
@ -125,6 +137,10 @@ test -n "$libc" && echo $libc > $out/nix-support/orig-libc
doSubstitute "$addFlags" "$out/nix-support/add-flags.sh"
doSubstitute "$setupHook" "$out/nix-support/setup-hook"
cat >> "$out/nix-support/setup-hook" << EOF
export CC=clang
export CXX=clang++
EOF
cp -p $utils $out/nix-support/utils.sh

View File

@ -26,6 +26,8 @@ stdenv.mkDerivation {
(if name != "" then name else clangName + "-wrapper") +
(if clang != null && clangVersion != "" then "-" + clangVersion else "");
isDarwin = stdenv.isDarwin;
builder = ./builder.sh;
setupHook = ./setup-hook.sh;
clangWrapper = ./clang-wrapper.sh;

View File

@ -4,6 +4,7 @@
, gmp ? null, mpfr ? null, bison ? null, flex ? null
}:
assert false;
assert stdenv.isDarwin;
assert langF77 -> gmp != null;

View File

@ -62,7 +62,8 @@ stdenv.mkDerivation rec {
'' else "");
configurePhase = ''
./configure --prefix=$out --with-gmp-libraries=${gmp}/lib --with-gmp-includes=${gmp}/include
./configure --prefix=$out --with-gmp-libraries=${gmp}/lib --with-gmp-includes=${gmp}/include \
--with-clang
'';
# Stripping combined with patchelf breaks the executables (they die

View File

@ -0,0 +1,93 @@
{stdenv, fetchurl, perl, ncurses, gmp}:
stdenv.mkDerivation rec {
version = "7.8.3";
name = "ghc-${version}-binary";
src =
if stdenv.system == "i686-linux" then
fetchurl {
url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-unknown-linux.tar.bz2";
sha256 = "0gny7knhss0w0d9r6jm1gghrcb8kqjvj94bb7hxf9syrk4fxlcxi";
}
else if stdenv.system == "x86_64-linux" then
fetchurl {
url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-unknown-linux.tar.bz2";
sha256 = "043jabd0lh6n1zlqhysngbpvlsdznsa2mmsj08jyqgahw9sjb5ns";
}
else if stdenv.system == "i686-darwin" then
fetchurl {
url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-apple-darwin.tar.bz2";
sha256 = "1vrbs3pzki37hzym1f1nh07lrqh066z3ypvm81fwlikfsvk4djc0";
}
else if stdenv.system == "x86_64-darwin" then
fetchurl {
url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-apple-darwin.tar.bz2";
sha256 = "1ja0cq5xyjcvjpvjmm4nzhkpmwfs2kjlldbc48lxcs9rmqi7rnay";
}
else throw "cannot bootstrap GHC on this platform";
buildInputs = [perl];
postUnpack =
# Strip is harmful, see also below. It's important that this happens
# first. The GHC Cabal build system makes use of strip by default and
# has hardcoded paths to /usr/bin/strip in many places. We replace
# those below, making them point to our dummy script.
''
mkdir "$TMP/bin"
for i in strip; do
echo '#! ${stdenv.shell}' > "$TMP/bin/$i"
chmod +x "$TMP/bin/$i"
done
PATH="$TMP/bin:$PATH"
'' +
# We have to patch the GMP paths for the integer-gmp package.
''
find . -name integer-gmp.buildinfo \
-exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${gmp}/lib@" {} \;
'' +
# On Linux, use patchelf to modify the executables so that they can
# find editline/gmp.
(if stdenv.isLinux then ''
find . -type f -perm +100 \
-exec patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
--set-rpath "${ncurses}/lib:${gmp}/lib" {} \;
sed -i "s|/usr/bin/perl|perl\x00 |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
sed -i "s|/usr/bin/gcc|gcc\x00 |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
for prog in ld ar gcc strip ranlib; do
find . -name "setup-config" -exec sed -i "s@/usr/bin/$prog@$(type -p $prog)@g" {} \;
done
'' else "");
configurePhase = ''
./configure --prefix=$out --with-gmp-libraries=${gmp}/lib \
--with-gmp-includes=${gmp}/include
'';
# Stripping combined with patchelf breaks the executables (they die
# with a segfault or the kernel even refuses the execve). (NIXPKGS-85)
dontStrip = true;
# No building is necessary, but calling make without flags ironically
# calls install-strip ...
buildPhase = "true";
postInstall =
''
# Sanity check, can ghc create executables?
cd $TMP
mkdir test-ghc; cd test-ghc
cat > main.hs << EOF
module Main where
main = putStrLn "yes"
EOF
$out/bin/ghc --make main.hs
echo compilation ok
[ $(./main) == "yes" ]
'';
meta.license = stdenv.lib.licenses.bsd3;
meta.platforms = ["x86_64-linux" "i686-linux" "i686-darwin" "x86_64-darwin"];
}

View File

@ -26,8 +26,6 @@ stdenv.mkDerivation rec {
export NIX_LDFLAGS="$NIX_LDFLAGS -rpath $out/lib/ghc-${version}"
'';
configureFlags = "--with-gcc=${stdenv.gcc}/bin/gcc";
# required, because otherwise all symbols from HSffi.o are stripped, and
# that in turn causes GHCi to abort
stripDebugFlags = [ "-S" "--keep-file-symbols" ];

View File

@ -1,5 +1,9 @@
{ stdenv, fetch, cmake, libxml2, libedit, llvm, version, clang-tools-extra_src }:
# be sure not to rebuild clang on darwin; some packages request it specifically
# we need to fix those
assert stdenv.isDarwin -> stdenv.gcc.nativeTools;
stdenv.mkDerivation {
name = "clang-${version}";

View File

@ -65,6 +65,5 @@ in stdenv.mkDerivation rec {
license = stdenv.lib.licenses.bsd3;
maintainers = with stdenv.lib.maintainers; [ shlevy lovek323 raskin viric ];
platforms = stdenv.lib.platforms.all;
broken = stdenv.isDarwin;
};
}

View File

@ -26,6 +26,8 @@ stdenv.mkDerivation rec {
sha256 = "b1ca708994180236917ae79e17606da5bd334ca6acd6873a550027e1c0ec874a";
};
patches = [ ./fix-clang-build-on-osx.diff ];
prefixKey = "-prefix ";
configureFlags = ["-no-tk"] ++ optionals useX11 [ "-x11lib" x11lib
"-x11include" x11inc ];

View File

@ -0,0 +1,20 @@
diff --git a/configure b/configure
index d45e88f..25d872b 100755
--- a/configure
+++ b/configure
@@ -322,7 +322,14 @@ case "$bytecc,$target" in
bytecccompopts="-fno-defer-pop $gcc_warnings -DSHRINKED_GNUC"
mathlib="";;
*,*-*-darwin*)
- bytecccompopts="-fno-defer-pop $gcc_warnings"
+ # On recent version of OSX, gcc is a symlink to clang
+ if $bytecc --version | grep -q clang; then
+ # -fno-defer-pop is not supported by clang, and make recent
+ # versions of clang to fail
+ bytecccompopts="$gcc_warnings"
+ else
+ bytecccompopts="-fno-defer-pop $gcc_warnings"
+ fi
mathlib=""
mkexe="$mkexe -Wl,-no_compact_unwind"
# Tell gcc that we can use 32-bit code addresses for threaded code

View File

@ -0,0 +1,14 @@
diff --git a/lib/stdint.in.h b/lib/stdint.in.h
index 889bca7..15d39b0 100644
--- a/lib/stdint.in.h
+++ b/lib/stdint.in.h
@@ -74,7 +74,8 @@
in <inttypes.h> would reinclude us, skipping our contents because
_@GUARD_PREFIX@_STDINT_H is defined.
The include_next requires a split double-inclusion guard. */
-# @INCLUDE_NEXT@ @NEXT_STDINT_H@
+# include <inttypes.h>
+// # @INCLUDE_NEXT@ @NEXT_STDINT_H@
#endif
#if ! defined _@GUARD_PREFIX@_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H

View File

@ -7,11 +7,11 @@
else stdenv.mkDerivation)
(rec {
name = "guile-2.0.9";
name = "guile-2.0.11";
src = fetchurl {
url = "mirror://gnu/guile/${name}.tar.xz";
sha256 = "0nw9y8vjyz4r61v06p9msks5lm58pd91irmzg4k487vmv743h2pp";
sha256 = "1qh3j7308qvsjgwf7h94yqgckpbgz2k3yqdkzsyhqcafvfka9l5f";
};
nativeBuildInputs = [ makeWrapper gawk pkgconfig ];
@ -29,7 +29,7 @@
enableParallelBuilding = true;
patches = [ ./disable-gc-sensitive-tests.patch ./eai_system.patch ] ++
patches = [ ./disable-gc-sensitive-tests.patch ./eai_system.patch ./clang.patch ] ++
(stdenv.lib.optional (coverageAnalysis != null) ./gcov-file-name.patch);
# Explicitly link against libgcc_s, to work around the infamous

View File

@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
configurePhase =
if stdenv.isDarwin
then ''
makeFlagsArray=( INSTALL_TOP=$out INSTALL_MAN=$out/share/man/man1 PLAT=macosx CFLAGS="-DLUA_USE_LINUX -fno-common -O2" LDFLAGS="" )
makeFlagsArray=( INSTALL_TOP=$out INSTALL_MAN=$out/share/man/man1 PLAT=macosx CFLAGS="-DLUA_USE_LINUX -fno-common -O2" LDFLAGS="" CC="$CC" )
installFlagsArray=( TO_BIN="lua luac" TO_LIB="liblua.5.1.5.dylib" INSTALL_DATA='cp -d' )
'' else ''
makeFlagsArray=( INSTALL_TOP=$out INSTALL_MAN=$out/share/man/man1 PLAT=linux CFLAGS="-DLUA_USE_LINUX -O2 -fPIC" LDFLAGS="-fPIC" )

View File

@ -31,7 +31,6 @@ stdenv.mkDerivation rec {
# Miniperl needs -lm. perl needs -lrt.
configureFlags =
[ "-de"
"-Dcc=gcc"
"-Uinstallusrbinperl"
"-Dinstallstyle=lib/perl5"
"-Duseshrplib"

View File

@ -80,6 +80,8 @@ stdenv.mkDerivation rec {
installFlags = stdenv.lib.optionalString docSupport "install-doc";
CFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-mmacosx-version-min=10.7";
postInstall = ''
# Bundler tries to create this directory
mkdir -pv $out/${passthru.gemPath}

View File

@ -0,0 +1,18 @@
--- interfaces/cc/aspell.h 2013-10-13 20:29:33.000000000 +0200
+++ interfaces/cc/aspell.h 2013-10-13 20:30:01.000000000 +0200
@@ -237,6 +237,7 @@
/******************************** errors ********************************/
+#ifndef __cplusplus
extern const struct AspellErrorInfo * const aerror_other;
extern const struct AspellErrorInfo * const aerror_operation_not_supported;
extern const struct AspellErrorInfo * const aerror_cant_copy;
@@ -322,6 +323,7 @@
extern const struct AspellErrorInfo * const aerror_bad_magic;
extern const struct AspellErrorInfo * const aerror_expression;
extern const struct AspellErrorInfo * const aerror_invalid_expression;
+#endif
/******************************* speller *******************************/

View File

@ -8,6 +8,10 @@ stdenv.mkDerivation rec {
sha256 = "1qgn5psfyhbrnap275xjfrzppf5a83fb67gpql0kfqv37al869gm";
};
patchPhase = ''
patch interfaces/cc/aspell.h < ${./clang.patch}
'';
buildInputs = [ perl ];
doCheck = true;

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, icu, expat, zlib, bzip2, python, fixDarwinDylibNames
, toolset ? null
, toolset ? if stdenv.isDarwin then "clang" else null
, enableRelease ? true
, enableDebug ? false
, enableSingleThreaded ? false
@ -57,6 +57,8 @@ stdenv.mkDerivation {
sha256 = "0lkv5dzssbl5fmh2nkaszi8x9qbj80pr4acf9i26sj3rvlih1w7z";
};
patches = stdenv.lib.optional (toolset == "clang") [ ./boost-155-clang.patch ];
enableParallelBuilding = true;
buildInputs =
@ -66,7 +68,7 @@ stdenv.mkDerivation {
configureScript = "./bootstrap.sh";
configureFlags = "--with-icu=${icu} --with-python=${python}/bin/python" + withToolset;
buildPhase = "${stdenv.lib.optionalString (toolset == "clang") "unset NIX_ENFORCE_PURITY; "}./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat}/include -sEXPAT_LIBPATH=${expat}/lib --layout=${layout} variant=${variant} threading=${threading} link=${link} ${cflags} install${withToolset}";
buildPhase = "${stdenv.lib.optionalString (toolset == "clang") "unset NIX_ENFORCE_PURITY; "}./b2 -j$NIX_BUILD_CORES -sEXPAT_INCLUDE=${expat}/include -sEXPAT_LIBPATH=${expat}/lib --layout=${layout} variant=${variant} threading=${threading} link=${link} ${cflags} install";
# normal install does not install bjam, this is a separate step
installPhase = ''

View File

@ -0,0 +1,90 @@
diff --git a/boost/atomic/detail/cas128strong.hpp b/boost/atomic/detail/cas128strong.hpp
index 906c13e..dcb4d7d 100644
--- a/boost/atomic/detail/cas128strong.hpp
+++ b/boost/atomic/detail/cas128strong.hpp
@@ -196,15 +196,17 @@ class base_atomic<T, void, 16, Sign>
public:
BOOST_DEFAULTED_FUNCTION(base_atomic(void), {})
- explicit base_atomic(value_type const& v) BOOST_NOEXCEPT : v_(0)
+ explicit base_atomic(value_type const& v) BOOST_NOEXCEPT
{
+ memset(&v_, 0, sizeof(v_));
memcpy(&v_, &v, sizeof(value_type));
}
void
store(value_type const& value, memory_order order = memory_order_seq_cst) volatile BOOST_NOEXCEPT
{
- storage_type value_s = 0;
+ storage_type value_s;
+ memset(&value_s, 0, sizeof(value_s));
memcpy(&value_s, &value, sizeof(value_type));
platform_fence_before_store(order);
platform_store128(value_s, &v_);
@@ -247,7 +249,9 @@ class base_atomic<T, void, 16, Sign>
memory_order success_order,
memory_order failure_order) volatile BOOST_NOEXCEPT
{
- storage_type expected_s = 0, desired_s = 0;
+ storage_type expected_s, desired_s;
+ memset(&expected_s, 0, sizeof(expected_s));
+ memset(&desired_s, 0, sizeof(desired_s));
memcpy(&expected_s, &expected, sizeof(value_type));
memcpy(&desired_s, &desired, sizeof(value_type));
diff --git a/boost/atomic/detail/gcc-atomic.hpp b/boost/atomic/detail/gcc-atomic.hpp
index a130590..4af99a1 100644
--- a/boost/atomic/detail/gcc-atomic.hpp
+++ b/boost/atomic/detail/gcc-atomic.hpp
@@ -958,14 +958,16 @@ class base_atomic<T, void, 16, Sign>
public:
BOOST_DEFAULTED_FUNCTION(base_atomic(void), {})
- explicit base_atomic(value_type const& v) BOOST_NOEXCEPT : v_(0)
+ explicit base_atomic(value_type const& v) BOOST_NOEXCEPT
{
+ memset(&v_, 0, sizeof(v_));
memcpy(&v_, &v, sizeof(value_type));
}
void store(value_type const& v, memory_order order = memory_order_seq_cst) volatile BOOST_NOEXCEPT
{
- storage_type tmp = 0;
+ storage_type tmp;
+ memset(&tmp, 0, sizeof(tmp));
memcpy(&tmp, &v, sizeof(value_type));
__atomic_store_n(&v_, tmp, atomics::detail::convert_memory_order_to_gcc(order));
}
@@ -980,7 +982,8 @@ class base_atomic<T, void, 16, Sign>
value_type exchange(value_type const& v, memory_order order = memory_order_seq_cst) volatile BOOST_NOEXCEPT
{
- storage_type tmp = 0;
+ storage_type tmp;
+ memset(&tmp, 0, sizeof(tmp));
memcpy(&tmp, &v, sizeof(value_type));
tmp = __atomic_exchange_n(&v_, tmp, atomics::detail::convert_memory_order_to_gcc(order));
value_type res;
@@ -994,7 +997,9 @@ class base_atomic<T, void, 16, Sign>
memory_order success_order,
memory_order failure_order) volatile BOOST_NOEXCEPT
{
- storage_type expected_s = 0, desired_s = 0;
+ storage_type expected_s, desired_s;
+ memset(&expected_s, 0, sizeof(expected_s));
+ memset(&desired_s, 0, sizeof(desired_s));
memcpy(&expected_s, &expected, sizeof(value_type));
memcpy(&desired_s, &desired, sizeof(value_type));
const bool success = __atomic_compare_exchange_n(&v_, &expected_s, desired_s, false,
@@ -1010,7 +1015,9 @@ class base_atomic<T, void, 16, Sign>
memory_order success_order,
memory_order failure_order) volatile BOOST_NOEXCEPT
{
- storage_type expected_s = 0, desired_s = 0;
+ storage_type expected_s, desired_s;
+ memset(&expected_s, 0, sizeof(expected_s));
+ memset(&desired_s, 0, sizeof(desired_s));
memcpy(&expected_s, &expected, sizeof(value_type));
memcpy(&desired_s, &desired, sizeof(value_type));
const bool success = __atomic_compare_exchange_n(&v_, &expected_s, desired_s, true,

View File

@ -18,6 +18,10 @@ stdenv.mkDerivation rec {
patches = extraPatches;
patchPhase = ''
patch src/dbinc/atomic.h < ${./osx.patch}
'';
configureFlags = [
(if cxxSupport then "--enable-cxx" else "--disable-cxx")
(if compat185 then "--enable-compat185" else "--disable-compat185")

View File

@ -0,0 +1,20 @@
--- src/dbinc/atomic.h 2013-03-12 14:07:22.000000000 -0400
+++ src/dbinc/atomic.h.change 2013-03-12 14:06:35.000000000 -0400
@@ -144,7 +144,7 @@
#define atomic_inc(env, p) __atomic_inc(p)
#define atomic_dec(env, p) __atomic_dec(p)
#define atomic_compare_exchange(env, p, o, n) \
- __atomic_compare_exchange((p), (o), (n))
+ __atomic_compare_exchange_db((p), (o), (n))
static inline int __atomic_inc(db_atomic_t *p)
{
int temp;
@@ -176,7 +176,7 @@
* http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html
* which configure could be changed to use.
*/
-static inline int __atomic_compare_exchange(
+static inline int __atomic_compare_exchange_db(
db_atomic_t *p, atomic_value_t oldval, atomic_value_t newval)
{
atomic_value_t was;

View File

@ -16,10 +16,13 @@ stdenv.mkDerivation (rec {
# Build a "fat binary", with routines for several sub-architectures
# (x86), except on Solaris where some tests crash with "Memory fault".
# See <http://hydra.nixos.org/build/2760931>, for instance.
#
# no darwin because gmp uses ASM that clang doesn't like
optional (!stdenv.isSunOS) "--enable-fat"
++ (if cxx then [ "--enable-cxx" ]
else [ "--disable-cxx" ])
++ optional (cxx && stdenv.isDarwin) "CPPFLAGS=-fexceptions"
++ optional stdenv.isDarwin "ABI=64"
++ optional stdenv.is64bit "--with-pic"
;

View File

@ -26,6 +26,6 @@ in stdenv.mkDerivation rec {
description = "A new implementation of the C++ standard library, targeting C++11";
license = "BSD";
maintainers = [ stdenv.lib.maintainers.shlevy ];
platforms = stdenv.lib.platforms.linux;
platforms = stdenv.lib.platforms.unix;
};
}

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, libcxx, libunwind }:
{ stdenv, fetchurl, libcxx, libunwind, coreutils, gnused }:
let rev = "199626"; in
@ -12,20 +12,30 @@ stdenv.mkDerivation {
NIX_CFLAGS_LINK = "-L${libunwind}/lib -lunwind";
buildInputs = [ coreutils ];
postUnpack = ''
unpackFile ${libcxx.src}
export NIX_CFLAGS_COMPILE="-I${libunwind}/include -I$PWD/include -I$(readlink -f libcxx-*)/include"
'' + stdenv.lib.optionalString stdenv.isDarwin ''
export TRIPLE=x86_64-apple-darwin
'';
installPhase = ''
install -d -m 755 $out/include $out/lib
install -m 644 lib/libc++abi.so.1.0 $out/lib
install -m 644 include/cxxabi.h $out/include
ln -s libc++abi.so.1.0 $out/lib/libc++abi.so
ln -s libc++abi.so.1.0 $out/lib/libc++abi.so.1
'';
installPhase = if stdenv.isDarwin
then ''
install -d -m 755 $out/include $out/lib
install -m 644 lib/libc++abi.dylib $out/lib
install -m 644 include/cxxabi.h $out/include
''
else ''
install -d -m 755 $out/include $out/lib
install -m 644 lib/libc++abi.so.1.0 $out/lib
install -m 644 include/cxxabi.h $out/include
ln -s libc++abi.so.1.0 $out/lib/libc++abi.so
ln -s libc++abi.so.1.0 $out/lib/libc++abi.so.1
'';
patchPhase = "sed -e s,-lstdc++,, -i lib/buildit";
patchPhase = "${gnused}/bin/sed -e s,-lstdc++,, -i lib/buildit";
buildPhase = "(cd lib; ./buildit)";
@ -34,6 +44,6 @@ stdenv.mkDerivation {
description = "A new implementation of low level support for a standard C++ library";
license = "BSD";
maintainers = [ stdenv.lib.maintainers.shlevy ];
platforms = stdenv.lib.platforms.linux;
platforms = stdenv.lib.platforms.unix;
};
}

View File

@ -16,6 +16,15 @@ stdenv.mkDerivation rec {
configureFlags = [ "--enable-ILU" "--enable-ILUT" ];
preConfigure = ''
sed -i 's, -std=gnu99,,g' configure
sed -i 's,malloc.h,stdlib.h,g' src-ILU/ilur/ilur.c
'';
postConfigure = ''
sed -i '/RESTRICT_KEYWORD/d' include/IL/config.h
'';
patches =
[ ( fetchurl {
url = http://patch-tracker.debian.org/patch/series/dl/devil/1.7.8-6.1/03_CVE-2009-3994.diff;

View File

@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
NROFF = "${groff}/bin/nroff";
postInstall = ''
sed -i s/-lncurses/-lncursesw/g $out/lib/pkgconfig/libedit.pc
sed -i ${stdenv.lib.optionalString (stdenv.isDarwin && stdenv.gcc.nativeTools) "''"} s/-lncurses/-lncursesw/g $out/lib/pkgconfig/libedit.pc
'';
# taken from gentoo http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/libedit/files/

View File

@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
postInstall =
# Install headers in the right place.
'' ln -s${if stdenv.isFreeBSD then "" else "r"}v "$out/lib/"libffi*/include "$out/include"
'' ln -s${if stdenv.isBSD then "" else "r"}v "$out/lib/"libffi*/include "$out/include"
'';
meta = {

View File

@ -10,6 +10,8 @@ stdenv.mkDerivation (rec {
propagatedBuildInputs = [ libgpgerror ];
configureFlags = stdenv.lib.optional stdenv.isDarwin "--disable-asm";
doCheck = stdenv.system != "i686-linux"; # "basic" test fails after stdenv+glibc-2.18
# For some reason the tests don't find `libgpg-error.so'.

View File

@ -0,0 +1,14 @@
diff --git a/lib/stdint.in.h b/lib/stdint.in.h
index 997e406..e0827f5 100644
--- a/lib/stdint.in.h
+++ b/lib/stdint.in.h
@@ -53,7 +53,8 @@
in <inttypes.h> would reinclude us, skipping our contents because
_GL_STDINT_H is defined.
The include_next requires a split double-inclusion guard. */
-# @INCLUDE_NEXT@ @NEXT_STDINT_H@
+# include <inttypes.h>
+// # @INCLUDE_NEXT@ @NEXT_STDINT_H@
#endif
#if ! defined _GL_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H

View File

@ -8,6 +8,8 @@ stdenv.mkDerivation (rec {
sha256 = "18q620269xzpw39dwvr9zpilnl2dkw5z5kz3mxaadnpv4k3kw3b1";
};
patches = stdenv.lib.optional stdenv.isDarwin [ ./clang.patch ];
propagatedBuildInputs =
stdenv.lib.optional ((! (stdenv ? glibc))
|| (stdenv ? cross &&

View File

@ -0,0 +1,15 @@
{ stdenv }:
stdenv.mkDerivation {
name = "libunwind-native";
unpackPhase = ":";
dontBuild = true;
installPhase = ''
mkdir -p $out/lib
cat ${/usr/lib/system/libunwind.dylib} > $out/lib/libunwind.dylib
'';
meta.platforms = stdenv.lib.platforms.darwin;
}

View File

@ -1,4 +1,4 @@
{ stdenv, stdenvAdapters, gccApple, fetchurl, pkgconfig, intltool, flex, bison
{ stdenv, stdenvAdapters, fetchurl, pkgconfig, intltool, flex, bison
, python, libxml2Python, file, expat, makedepend, xorg, llvm, libffi, libvdpau
, enableTextureFloats ? false # Texture floats are patented, see docs/patents.txt
, enableExtraFeatures ? false # not maintained

View File

@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
buildInputs = [ gmp mpfr ];
CFLAGS = "-I${gmp}/include";
doCheck = true;
meta = {

View File

@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
buildInputs = [ gmp ];
CFLAGS = "-I${gmp}/include";
configureFlags =
/* Work around a FreeBSD bug that otherwise leads to segfaults in the test suite:
http://hydra.bordeaux.inria.fr/build/34862

View File

@ -0,0 +1,42 @@
diff -ruNp ncurses-5.8.orig/c++/cursesf.h ncurses-5.8/c++/cursesf.h
--- ncurses-5.8.orig/c++/cursesf.h 2005-08-13 21:08:24.000000000 +0300
+++ ncurses-5.8/c++/cursesf.h 2011-04-03 18:29:29.000000000 +0300
@@ -681,7 +681,7 @@ public:
const T* p_UserData = STATIC_CAST(T*)(0),
bool with_frame=FALSE,
bool autoDelete_Fields=FALSE)
- : NCursesForm (Fields, with_frame, autoDelete_Fields) {
+ : NCursesForm (&Fields, with_frame, autoDelete_Fields) {
if (form)
set_user (const_cast<void *>(p_UserData));
};
@@ -694,7 +694,7 @@ public:
const T* p_UserData = STATIC_CAST(T*)(0),
bool with_frame=FALSE,
bool autoDelete_Fields=FALSE)
- : NCursesForm (Fields, nlines, ncols, begin_y, begin_x,
+ : NCursesForm (&Fields, nlines, ncols, begin_y, begin_x,
with_frame, autoDelete_Fields) {
if (form)
set_user (const_cast<void *>(p_UserData));
diff -ruNp ncurses-5.8.orig/c++/cursesm.h ncurses-5.8/c++/cursesm.h
--- ncurses-5.8.orig/c++/cursesm.h 2005-08-13 21:10:36.000000000 +0300
+++ ncurses-5.8/c++/cursesm.h 2011-04-03 18:31:42.000000000 +0300
@@ -639,7 +639,7 @@ public:
const T* p_UserData = STATIC_CAST(T*)(0),
bool with_frame=FALSE,
bool autoDelete_Items=FALSE)
- : NCursesMenu (Items, with_frame, autoDelete_Items) {
+ : NCursesMenu (&Items, with_frame, autoDelete_Items) {
if (menu)
set_user (const_cast<void *>(p_UserData));
};
@@ -651,7 +651,7 @@ public:
int begin_x = 0,
const T* p_UserData = STATIC_CAST(T*)(0),
bool with_frame=FALSE)
- : NCursesMenu (Items, nlines, ncols, begin_y, begin_x, with_frame) {
+ : NCursesMenu (&Items, nlines, ncols, begin_y, begin_x, with_frame) {
if (menu)
set_user (const_cast<void *>(p_UserData));
};

View File

@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
sha256 = "0fsn7xis81za62afan0vvm38bvgzg5wfmv1m86flqcj0nj7jjilh";
};
patches = [ ./patch-ac ];
patches = [ ./patch-ac ./clang.patch ];
configureFlags = ''
--with-shared --without-debug --enable-pc-files --enable-symlinks
@ -35,8 +35,6 @@ stdenv.mkDerivation rec {
export configureFlags="$configureFlags --includedir=$out/include"
export PKG_CONFIG_LIBDIR="$out/lib/pkgconfig"
mkdir -p "$PKG_CONFIG_LIBDIR"
'' + lib.optionalString stdenv.isDarwin ''
substituteInPlace configure --replace -no-cpp-precomp ""
'';
selfNativeBuildInput = true;

View File

@ -78,8 +78,6 @@ stdenv.mkDerivation rec {
-translationdir $out/share/${name}/translations
"
'' + optionalString stdenv.isDarwin ''
export CXX=clang++
export CC=clang
sed -i 's/QMAKE_CC = gcc/QMAKE_CC = clang/' mkspecs/common/g++-base.conf
sed -i 's/QMAKE_CXX = g++/QMAKE_CXX = clang++/' mkspecs/common/g++-base.conf
'';

View File

@ -14,6 +14,7 @@ stdenv.mkDerivation (rec {
patches =
[ ./link-against-ncurses.patch
./no-arch_only.patch
./clang.patch
]
++
(let

View File

@ -0,0 +1,13 @@
diff --git a/support/shobj-conf b/support/shobj-conf
index 5a63e80..4b2a741 100644
--- support/shobj-conf
+++ support/shobj-conf
@@ -189,7 +189,7 @@ darwin*|macosx*)
darwin[789]*|darwin10*) SHOBJ_LDFLAGS=''
SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
;;
- *) SHOBJ_LDFLAGS='-dynamic'
+ *) SHOBJ_LDFLAGS='-dynamiclib'
SHLIB_XLDFLAGS='-arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
;;
esac

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, apr, scons, openssl, aprutil, zlib, krb5, pkgconfig }:
{ stdenv, fetchurl, apr, scons, openssl, aprutil, zlib, krb5, pkgconfig, gnused }:
stdenv.mkDerivation rec {
name = "serf-1.3.7";
@ -11,16 +11,20 @@ stdenv.mkDerivation rec {
buildInputs = [ apr scons openssl aprutil zlib krb5 pkgconfig ];
configurePhase = ''
sed -e '/^env[.]Append(BUILDERS/ienv.Append(ENV={"PATH":os.environ["PATH"]})' -i SConstruct
sed -e '/^env[.]Append(BUILDERS/ienv.Append(ENV={"NIX_CFLAGS_COMPILE":os.environ["NIX_CFLAGS_COMPILE"]})' -i SConstruct
sed -e '/^env[.]Append(BUILDERS/ienv.Append(ENV={"NIX_LDFLAGS":os.environ["NIX_LDFLAGS"]})' -i SConstruct
${gnused}/bin/sed -e '/^env[.]Append(BUILDERS/ienv.Append(ENV={"PATH":os.environ["PATH"]})' -i SConstruct
${gnused}/bin/sed -e '/^env[.]Append(BUILDERS/ienv.Append(ENV={"NIX_CFLAGS_COMPILE":os.environ["NIX_CFLAGS_COMPILE"]})' -i SConstruct
${gnused}/bin/sed -e '/^env[.]Append(BUILDERS/ienv.Append(ENV={"NIX_LDFLAGS":os.environ["NIX_LDFLAGS"]})' -i SConstruct
'';
buildPhase = ''
scons PREFIX="$out" OPENSSL="${openssl}" ZLIB="${zlib}" APR="$(echo "${apr}"/bin/*-config)" \
APU="$(echo "${aprutil}"/bin/*-config)" GSSAPI="${krb5}" CC="${stdenv.gcc}/bin/gcc"
APU="$(echo "${aprutil}"/bin/*-config)" GSSAPI="${krb5}" CC="${
if stdenv.isDarwin then "clang" else "${stdenv.gcc}/bin/gcc"
}"
'';
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-L/usr/lib";
installPhase = ''
scons install
'';

View File

@ -3,6 +3,10 @@
stdenv.mkDerivation {
name = "distcc-masq-${gccRaw.name}";
meta = {
platforms = stdenv.lib.platforms.linux;
};
phases = [ "installPhase" ];
installPhase = ''
mkdir -p $out/bin

View File

@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
configurePhase = ''
sed -i "makefile" -"es|PREFIX[[:blank:]]*=.*$|PREFIX = $out|g"
sed -i "makefile" -"es|gcc|$CC|g"
'';
doCheck = true;

View File

@ -105,7 +105,7 @@ stdenv.mkDerivation rec {
++ optional (elem stdenv.system (with platforms; linux ++ freebsd)) "--with-file-aio";
additionalFlags = optionalString stdenv.isDarwin "-Wno-error=deprecated-declarations";
additionalFlags = optionalString stdenv.isDarwin "-Wno-error=deprecated-declarations -Wno-error=conditional-uninitialized";
preConfigure = ''
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${libxml2}/include/libxml2 $additionalFlags"

View File

@ -69,12 +69,15 @@ in
};
libX11 = attrs: attrs // {
preConfigure = setMalloc0ReturnsNullCrossCompiling;
preConfigure = setMalloc0ReturnsNullCrossCompiling + ''
sed 's,^as_dummy.*,as_dummy="\$PATH",' -i configure
'';
postInstall =
''
# Remove useless DocBook XML files.
rm -rf $out/share/doc
'';
CPP = stdenv.lib.optionalString stdenv.isDarwin "clang -E -";
};
libXfont = attrs: attrs // {
@ -99,8 +102,11 @@ in
# Note: most of these are in Requires.private, so maybe builder.sh
# should propagate them automatically.
libXt = attrs: attrs // {
preConfigure = setMalloc0ReturnsNullCrossCompiling;
preConfigure = setMalloc0ReturnsNullCrossCompiling + ''
sed 's,^as_dummy.*,as_dummy="\$PATH",' -i configure
'';
propagatedBuildInputs = [ xorg.libSM ];
CPP = stdenv.lib.optionalString stdenv.isDarwin "clang -E -";
};
# See https://bugs.freedesktop.org/show_bug.cgi?id=47792

View File

@ -299,4 +299,9 @@ rec {
''; # */
in overrideGCC stdenv (stdenv.gcc.override { binutils = binutils'; });
dropCxx = drv: drv.override {
stdenv = if pkgs.stdenv.isDarwin
then pkgs.allStdenvs.stdenvDarwinNaked
else pkgs.stdenv;
};
}

View File

@ -0,0 +1,54 @@
{ stdenv, pkgs, config
, haveLibCxx ? true
, useClang33 ? false }:
import ../generic rec {
inherit config;
preHook =
''
export NIX_ENFORCE_PURITY=
export NIX_IGNORE_LD_THROUGH_GCC=1
export NIX_DONT_SET_RPATH=1
export NIX_NO_SELF_RPATH=1
dontFixLibtool=1
stripAllFlags=" " # the Darwin "strip" command doesn't know "-s"
xargsFlags=" "
export MACOSX_DEPLOYMENT_TARGET=10.6
export SDKROOT=$(/usr/bin/xcrun --show-sdk-path 2> /dev/null || true)
export NIX_CFLAGS_COMPILE+=" --sysroot=/var/empty -idirafter $SDKROOT/usr/include -F$SDKROOT/System/Library/Frameworks -Wno-multichar -Wno-deprecated-declarations"
export NIX_LDFLAGS_AFTER+=" -L$SDKROOT/usr/lib"
'';
initialPath = (import ../common-path.nix) {pkgs = pkgs;};
system = stdenv.system;
gcc = import ../../build-support/clang-wrapper {
nativeTools = false;
nativePrefix = stdenv.lib.optionalString stdenv.isSunOS "/usr";
nativeLibc = true;
inherit stdenv;
libcxx = if haveLibCxx then pkgs.libcxx.override {
libcxxabi = pkgs.libcxxabi.override {
libunwind = pkgs.libunwindNative;
};
} else null;
binutils = import ../../build-support/native-darwin-cctools-wrapper {inherit stdenv;};
clang = if useClang33 then pkgs.clang_33 else pkgs.clang;
coreutils = pkgs.coreutils;
shell = pkgs.bash + "/bin/sh";
};
shell = pkgs.bash + "/bin/sh";
fetchurlBoot = stdenv.fetchurlBoot;
overrides = pkgs_: {
inherit gcc;
inherit (gcc) binutils;
inherit (pkgs)
gzip bzip2 xz bash coreutils diffutils findutils gawk
gnumake gnused gnutar gnugrep gnupatch perl;
};
}

View File

@ -33,6 +33,26 @@ rec {
pkgs = stdenvNativePkgs;
};
stdenvDarwin = import ./darwin {
inherit config;
stdenv = stdenvNative;
pkgs = stdenvNativePkgs;
};
stdenvDarwinNaked = import ./darwin {
inherit config;
stdenv = stdenvNative;
pkgs = stdenvNativePkgs;
haveLibCxx = false;
};
stdenvDarwin33 = import ./darwin {
inherit config;
stdenv = stdenvNative;
pkgs = stdenvNativePkgs;
useClang33 = true;
};
# Linux standard environment.
stdenvLinux = (import ./linux { inherit system allPackages platform config lib; }).stdenvLinux;
@ -47,7 +67,7 @@ rec {
if system == "armv7l-linux" then stdenvLinux else
if system == "mips64el-linux" then stdenvLinux else
if system == "powerpc-linux" then /* stdenvLinux */ stdenvNative else
if system == "x86_64-darwin" then stdenvNix else
if system == "x86_64-darwin" then stdenvDarwin else
if system == "x86_64-solaris" then stdenvNix else
stdenvNative;
}

View File

@ -162,7 +162,8 @@ let
isBSD = system == "i686-freebsd"
|| system == "x86_64-freebsd"
|| system == "i686-openbsd"
|| system == "x86_64-openbsd";
|| system == "x86_64-openbsd"
|| system == "x86_64-darwin";
isi686 = system == "i686-linux"
|| system == "i686-gnu"
|| system == "i686-freebsd"

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, gettext }:
{ stdenv, fetchurl, gettext, coreutils }:
stdenv.mkDerivation rec {
name = "sharutils-4.11.1";
@ -12,11 +12,11 @@ stdenv.mkDerivation rec {
''
# Fix for building on Glibc 2.16. Won't be needed once the
# gnulib in sharutils is updated.
sed -i '/gets is a security hole/d' lib/stdio.in.h
sed -i ${stdenv.lib.optionalString (stdenv.isBSD && stdenv.gcc.nativeTools) "''"} '/gets is a security hole/d' lib/stdio.in.h
'';
# GNU Gettext is needed on non-GNU platforms.
buildInputs = [ gettext ];
buildInputs = [ gettext coreutils ];
doCheck = true;

View File

@ -26,6 +26,8 @@ stdenv.mkDerivation {
sharedLibrary =
!stdenv.isDarwin && !(stdenv ? isDietLibC) && !(stdenv ? isStatic) && stdenv.system != "i686-cygwin" && !linkStatic;
patchPhase = stdenv.lib.optionalString stdenv.isDarwin "substituteInPlace Makefile --replace 'CC=gcc' 'CC=clang'";
preConfigure = "substituteInPlace Makefile --replace '$(PREFIX)/man' '$(PREFIX)/share/man'";
makeFlags = if linkStatic then "LDFLAGS=-static" else "";

View File

@ -7,4 +7,7 @@ stdenv.mkDerivation {
url = http://tarballs.nixos.org/getopt-1.1.4.tar.gz;
md5 = "02188ca68da27c4175d6e9f3da732101";
};
preBuild = ''
export buildFlags=CC="$CC" # for darwin
'';
}

View File

@ -16,6 +16,6 @@ stdenv.mkDerivation rec {
license = [ "GPLv2+" ];
maintainers = with stdenv.lib.maintainers; [ the-kenny viric ];
platforms = stdenv.lib.platforms.linux;
platforms = stdenv.lib.platforms.unix;
};
}

View File

@ -66,14 +66,10 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
meta = {
description = "Powerful package manager that makes package management reliable and reproducible";
longDescription = ''
Nix is a powerful package manager for Linux and other Unix systems that
makes package management reliable and reproducible. It provides atomic
upgrades and rollbacks, side-by-side installation of multiple versions of
a package, multi-user package management and easy setup of build
environments.
'';
# due to builder args bug; see
# https://github.com/NixOS/nix/commit/b224ac15201c57b40ea855f5a98b1bd166c1c7f6
broken = stdenv.isDarwin;
description = "The Nix Deployment System";
homepage = http://nixos.org/;
license = stdenv.lib.licenses.lgpl2Plus;
maintainers = [ stdenv.lib.maintainers.eelco ];

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, perl, curl, bzip2, sqlite, openssl ? null
, pkgconfig, boehmgc, perlPackages
, pkgconfig, boehmgc, perlPackages, bash
, storeDir ? "/nix/store"
, stateDir ? "/nix/var"
}:
@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
postUnpack =
'' export CPATH="${bzip2}/include"
export LIBRARY_PATH="${bzip2}/lib"
export CXXFLAGS="-O3 -Wno-error=reserved-user-defined-literal"
'';
configureFlags =
@ -34,7 +35,7 @@ stdenv.mkDerivation rec {
--with-www-curl=${perlPackages.WWWCurl}/${perl.libPrefix}
--disable-init-state
--enable-gc
CFLAGS=-O3 CXXFLAGS=-O3
CFLAGS=-O3
'';
makeFlags = "profiledir=$(out)/etc/profile.d";

View File

@ -0,0 +1,13 @@
diff --git a/gl/stdint_.h b/gl/stdint_.h
index bc27595..303e81a 100644
--- a/gl/stdint_.h
+++ b/gl/stdint_.h
@@ -62,7 +62,7 @@
int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__.
<inttypes.h> also defines intptr_t and uintptr_t. */
# define _GL_JUST_INCLUDE_ABSOLUTE_INTTYPES_H
-# include <inttypes.h>
+// # include <inttypes.h>
# undef _GL_JUST_INCLUDE_ABSOLUTE_INTTYPES_H
#elif @HAVE_SYS_INTTYPES_H@
/* Solaris 7 <sys/inttypes.h> has the types except the *_fast*_t types, and

View File

@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
patchPhase = ''
find tests -type f | xargs sed -e 's@/bin/pwd@${coreutils}&@g' -i
find . -name pcsc-wrapper.c | xargs sed -i 's/typedef unsinged int pcsc_dword_t/typedef unsigned int pcsc_dword_t/'
patch gl/stdint_.h < ${./clang.patch}
'';
checkPhase="GNUPGHOME=`pwd` ./agent/gpg-agent --daemon make check";

View File

@ -37,6 +37,7 @@ stdenv.mkDerivation {
prefix=$out
MANDIR=$out/share/man/man1
${systemFlags}
CC="$CC"
)
'';

View File

@ -13,6 +13,10 @@ stdenv.mkDerivation {
docsrc/*.xml
'';
configureFlags = optional stdenv.isDarwin [
"--with-libintl-prefix=/usr"
"--with-libiconv-prefix=/usr"
];
setupHook = ./setup-hook.sh;

View File

@ -0,0 +1,13 @@
diff --git a/texk/ps2pkm/type1.c b/texk/ps2pkm/type1.c
index 027bf1f..4dcbad0 100644
--- a/texk/ps2pkm/type1.c
+++ b/texk/ps2pkm/type1.c
@@ -800,7 +800,7 @@ static void PSFakePush(Num)
static DOUBLE PSFakePop ()
{
if (PSFakeTop >= 0) return(PSFakeStack[PSFakeTop--]);
- else Error0("PSFakePop : Stack empty\n");
+ else { CC; IfTrace0(TRUE, "PSFakePop : Stack empty\n"); errflag = TRUE; return 0; }
/*NOTREACHED*/
}

View File

@ -20,7 +20,7 @@ stdenv.mkDerivation {
sed -i 57d texk/kpathsea/c-std.h
'';
patches = [ ./environment.patch ./getline.patch ];
patches = [ ./environment.patch ./getline.patch ./clang.patch ];
setupHook = ./setup-hook.sh;

View File

@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
cd src
for f in tex4ht t4ht htcmd ; do
# -DENVFILE="$out/share/texmf-nix/tex4ht/base/unix/tex4ht.env"
gcc -o $f $f.c -I${tetex}/include -L${tetex}/lib -DHAVE_DIRENT_H -DHAVE_DIRENT_H -DKPATHSEA -lkpathsea
$CC -o $f $f.c -I${tetex}/include -L${tetex}/lib -DHAVE_DIRENT_H -DHAVE_DIRENT_H -DKPATHSEA -lkpathsea
done
cd -
'';

View File

@ -22,7 +22,6 @@ rec {
setupHook = ./setup-hook.sh;
doMainBuild = fullDepEntry ( stdenv.lib.optionalString stdenv.isDarwin ''
export MACOSX_DEPLOYMENT_TARGET=10.9
export DYLD_LIBRARY_PATH="${poppler}/lib"
'' + ''
mkdir -p $out

View File

@ -231,8 +231,6 @@ let
else
defaultStdenv;
stdenvApple = stdenvAdapters.overrideGCC allStdenvs.stdenvNative gccApple;
forceNativeDrv = drv : if crossSystem == null then drv else
(drv // { crossDrv = drv.nativeDrv; });
@ -1825,7 +1823,11 @@ let
openssh_with_kerberos = pkgs.appendToName "with-kerberos" (openssh.override { withKerberos = true; });
opensp = callPackage ../tools/text/sgml/opensp { };
opensp = callPackage ../tools/text/sgml/opensp {
stdenv = if stdenv.isDarwin
then allStdenvs.stdenvDarwinNaked
else stdenv;
};
spCompat = callPackage ../tools/text/sgml/opensp/compat.nix { };
@ -2719,8 +2721,7 @@ let
};
clangUnwrapped = llvm: pkg: callPackage pkg {
stdenv = if stdenv.isDarwin then stdenvApple else stdenv;
inherit llvm;
inherit stdenv llvm;
};
clangSelf = clangWrapSelf llvmPackagesSelf.clang;
@ -2737,7 +2738,7 @@ let
};
#Use this instead of stdenv to build with clang
clangStdenv = lowPrio (stdenvAdapters.overrideGCC stdenv clang);
clangStdenv = if stdenv.isDarwin then stdenv else lowPrio (stdenvAdapters.overrideGCC stdenv clang);
libcxxStdenv = stdenvAdapters.overrideGCC stdenv (clangWrapSelf llvmPackages.clang);
clean = callPackage ../development/compilers/clean { };
@ -2941,16 +2942,6 @@ let
else null;
}));
gccApple =
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;
});
gfortran = gfortran48;
gfortran48 = wrapGCC (gcc48.gcc.override {
@ -3251,15 +3242,9 @@ let
llvm_34 = llvmPackages_34.llvm;
llvm_33 = llvm_v ../development/compilers/llvm/3.3/llvm.nix;
llvm_v = path: callPackage path {
stdenv = if stdenv.isDarwin then stdenvApple else stdenv;
};
llvm_v = path: callPackage path { };
llvmPackages = if !stdenv.isDarwin then llvmPackages_34 else llvmPackages_34 // {
# until someone solves build problems with _34
llvm = llvm_33;
clang = clang_33;
};
llvmPackages = llvmPackages_34;
llvmPackages_34 = recurseIntoAttrs (import ../development/compilers/llvm/3.4 {
inherit stdenv newScope fetchurl;
@ -4003,7 +3988,7 @@ let
bam = callPackage ../development/tools/build-managers/bam {};
binutils = if stdenv.isDarwin
then stdenv.gcc.binutils
then import ../build-support/native-darwin-cctools-wrapper {inherit stdenv;}
else callPackage ../development/tools/misc/binutils {
inherit noSysDirs;
};
@ -4144,10 +4129,12 @@ let
wrapGCC (distcc.links extraConfig)) {};
distccStdenv = lowPrio (overrideGCC stdenv distccWrapper);
distccMasquerade = callPackage ../development/tools/misc/distcc/masq.nix {
gccRaw = gcc.gcc;
binutils = binutils;
};
distccMasquerade = if stdenv.isDarwin
then null
else callPackage ../development/tools/misc/distcc/masq.nix {
gccRaw = gcc.gcc;
binutils = binutils;
};
docutils = builderDefsPackage (import ../development/tools/documentation/docutils) {
inherit python pil makeWrapper;
@ -4635,7 +4622,7 @@ let
coredumper = callPackage ../development/libraries/coredumper { };
ctl = callPackage ../development/libraries/ctl { };
ctl = dropCxx (callPackage ../development/libraries/ctl { });
cpp-netlib = callPackage ../development/libraries/cpp-netlib { };
@ -5146,7 +5133,7 @@ let
ilixi = callPackage ../development/libraries/ilixi { };
ilmbase = callPackage ../development/libraries/ilmbase { };
ilmbase = dropCxx (callPackage ../development/libraries/ilmbase { });
imlib = callPackage ../development/libraries/imlib {
libpng = libpng12;
@ -5320,7 +5307,7 @@ let
libdc1394avt = callPackage ../development/libraries/libdc1394avt { };
libdevil = callPackage ../development/libraries/libdevil { };
libdevil = dropCxx (callPackage ../development/libraries/libdevil { });
libdiscid = callPackage ../development/libraries/libdiscid { };
@ -5772,6 +5759,8 @@ let
libunwind = callPackage ../development/libraries/libunwind { };
libunwindNative = callPackage ../development/libraries/libunwind/native.nix {};
libuvVersions = callPackage ../development/libraries/libuv { };
libv4l = lowPrio (v4l_utils.override {
@ -6065,7 +6054,7 @@ let
# this ctl version is needed by openexr_viewers
openexr_ctl = callPackage ../development/libraries/openexr_ctl { };
openexr = callPackage ../development/libraries/openexr { };
openexr = dropCxx (callPackage ../development/libraries/openexr { });
openldap = callPackage ../development/libraries/openldap {
stdenv = if stdenv.isDarwin
@ -11566,6 +11555,7 @@ let
};
nixUnstable = callPackage ../tools/package-management/nix/unstable.nix {
stdenv = if stdenv.isDarwin then allStdenvs.stdenvDarwin33 else stdenv;
storeDir = config.nix.storeDir or "/nix/store";
stateDir = config.nix.stateDir or "/nix/var";
};

View File

@ -205,6 +205,8 @@
gmp = pkgs.gmp4;
});
ghc783Binary = lowPrio (callPackage ../development/compilers/ghc/7.8.3-binary.nix {});
ghc6101BinaryDarwin = if stdenv.isDarwin then ghc704Binary else ghc6101Binary;
ghc6121BinaryDarwin = if stdenv.isDarwin then ghc704Binary else ghc6121Binary;
@ -225,7 +227,7 @@
packages_ghc783 =
packages { ghcPath = ../development/compilers/ghc/7.8.3.nix;
ghcBinary = ghc742Binary;
ghcBinary = if stdenv.isDarwin then ghc783Binary else ghc742Binary;
prefFun = ghc783Prefs;
};