Upgrade cctools port to 862, and fix the cross version so it evaluates
This commit is contained in:
parent
c4253520fe
commit
e32950d11a
@ -1,122 +0,0 @@
|
|||||||
From b6001ddb935351b4d150546ddab6d25eae05afaa Mon Sep 17 00:00:00 2001
|
|
||||||
From: Daniel Peebles <pumpkin@me.com>
|
|
||||||
Date: Sun, 12 Oct 2014 12:23:51 -0400
|
|
||||||
Subject: [PATCH] work
|
|
||||||
|
|
||||||
---
|
|
||||||
cctools/Makefile.am | 2 +-
|
|
||||||
cctools/configure.ac | 2 --
|
|
||||||
cctools/ld64/src/3rd/helper.c | 2 ++
|
|
||||||
cctools/ld64/src/3rd/strlcat.c | 2 ++
|
|
||||||
cctools/ld64/src/3rd/strlcpy.c | 3 ++-
|
|
||||||
cctools/ld64/src/ld/Options.cpp | 2 ++
|
|
||||||
tools/find_lto_header.sh | 2 +-
|
|
||||||
7 files changed, 10 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/cctools/Makefile.am b/cctools/Makefile.am
|
|
||||||
index 44084ad..34a670c 100644
|
|
||||||
--- a/cctools/Makefile.am
|
|
||||||
+++ b/cctools/Makefile.am
|
|
||||||
@@ -1,2 +1,2 @@
|
|
||||||
-SUBDIRS=libstuff ar as misc libobjc2 otool ld64 $(LD_CLASSIC)
|
|
||||||
+SUBDIRS=libstuff ar as misc ld64 $(LD_CLASSIC)
|
|
||||||
ACLOCAL_AMFLAGS = -I m4
|
|
||||||
diff --git a/cctools/configure.ac b/cctools/configure.ac
|
|
||||||
index c4f6c47..b641925 100644
|
|
||||||
--- a/cctools/configure.ac
|
|
||||||
+++ b/cctools/configure.ac
|
|
||||||
@@ -278,8 +278,6 @@ AC_CONFIG_FILES([as/ppc/Makefile])
|
|
||||||
AC_CONFIG_FILES([as/ppc64/Makefile])
|
|
||||||
#AC_CONFIG_FILES([man/Makefile])
|
|
||||||
AC_CONFIG_FILES([misc/Makefile])
|
|
||||||
-AC_CONFIG_FILES([otool/Makefile])
|
|
||||||
-AC_CONFIG_FILES([libobjc2/Makefile])
|
|
||||||
AC_CONFIG_FILES([ld/Makefile])
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/cctools/ld64/src/3rd/helper.c b/cctools/ld64/src/3rd/helper.c
|
|
||||||
index 19f4be7..bec6869 100644
|
|
||||||
--- a/cctools/ld64/src/3rd/helper.c
|
|
||||||
+++ b/cctools/ld64/src/3rd/helper.c
|
|
||||||
@@ -23,6 +23,7 @@
|
|
||||||
const char ldVersionString[] = "236.3\n";
|
|
||||||
|
|
||||||
|
|
||||||
+#if 0
|
|
||||||
void __assert_rtn(const char *func, const char *file, int line, const char *msg)
|
|
||||||
{
|
|
||||||
#ifdef __FreeBSD__
|
|
||||||
@@ -33,6 +34,7 @@ void __assert_rtn(const char *func, const char *file, int line, const char *msg)
|
|
||||||
__assert(msg, file, line);
|
|
||||||
#endif /* __FreeBSD__ */
|
|
||||||
}
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
int _NSGetExecutablePath(char *path, unsigned int *size)
|
|
||||||
{
|
|
||||||
diff --git a/cctools/ld64/src/3rd/strlcat.c b/cctools/ld64/src/3rd/strlcat.c
|
|
||||||
index 500d038..dadf269 100644
|
|
||||||
--- a/cctools/ld64/src/3rd/strlcat.c
|
|
||||||
+++ b/cctools/ld64/src/3rd/strlcat.c
|
|
||||||
@@ -23,6 +23,7 @@
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
+#if 0
|
|
||||||
size_t
|
|
||||||
strlcat(char * restrict dst, const char * restrict src, size_t maxlen) {
|
|
||||||
const size_t srclen = strlen(src);
|
|
||||||
@@ -36,3 +37,4 @@ strlcat(char * restrict dst, const char * restrict src, size_t maxlen) {
|
|
||||||
}
|
|
||||||
return dstlen + srclen;
|
|
||||||
}
|
|
||||||
+#endif
|
|
||||||
\ No newline at end of file
|
|
||||||
diff --git a/cctools/ld64/src/3rd/strlcpy.c b/cctools/ld64/src/3rd/strlcpy.c
|
|
||||||
index c69f107..34a399b 100644
|
|
||||||
--- a/cctools/ld64/src/3rd/strlcpy.c
|
|
||||||
+++ b/cctools/ld64/src/3rd/strlcpy.c
|
|
||||||
@@ -23,6 +23,7 @@
|
|
||||||
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
+#if 0
|
|
||||||
size_t
|
|
||||||
strlcpy(char * restrict dst, const char * restrict src, size_t maxlen) {
|
|
||||||
const size_t srclen = strlen(src);
|
|
||||||
@@ -34,4 +35,4 @@ strlcpy(char * restrict dst, const char * restrict src, size_t maxlen) {
|
|
||||||
}
|
|
||||||
return srclen;
|
|
||||||
}
|
|
||||||
-
|
|
||||||
+#endif
|
|
||||||
\ No newline at end of file
|
|
||||||
diff --git a/cctools/ld64/src/ld/Options.cpp b/cctools/ld64/src/ld/Options.cpp
|
|
||||||
index 3a78df8..0ecf9f2 100644
|
|
||||||
--- a/cctools/ld64/src/ld/Options.cpp
|
|
||||||
+++ b/cctools/ld64/src/ld/Options.cpp
|
|
||||||
@@ -49,6 +49,8 @@ namespace lto {
|
|
||||||
extern const char* version();
|
|
||||||
}
|
|
||||||
|
|
||||||
+#define __MAC_OS_X_VERSION_MIN_REQUIRED 1060
|
|
||||||
+
|
|
||||||
// magic to place command line in crash reports
|
|
||||||
const int crashreporterBufferSize = 2000;
|
|
||||||
static char crashreporterBuffer[crashreporterBufferSize];
|
|
||||||
diff --git a/tools/find_lto_header.sh b/tools/find_lto_header.sh
|
|
||||||
index aee3a4a..4733981 100755
|
|
||||||
--- a/tools/find_lto_header.sh
|
|
||||||
+++ b/tools/find_lto_header.sh
|
|
||||||
@@ -14,7 +14,7 @@ function try()
|
|
||||||
# Adding the include directory with -I causes the build to fail.
|
|
||||||
ln -sf "$LLVM_INC_DIR/llvm-c/lto.h" "include/llvm-c/lto.h"
|
|
||||||
mkdir -p tmp
|
|
||||||
- echo -n "-Wl,-rpath,$LLVM_LIB_DIR,--enable-new-dtags -L$LLVM_LIB_DIR -lLTO " > tmp/ldflags
|
|
||||||
+ echo -n "-Wl,-rpath,$LLVM_LIB_DIR -L$LLVM_LIB_DIR -lLTO " > tmp/ldflags
|
|
||||||
echo -n "-DLTO_SUPPORT=1 " > tmp/cflags
|
|
||||||
echo -n "-DLTO_SUPPORT=1 " > tmp/cxxflags
|
|
||||||
echo -n "$LLVM_LIB_DIR" > tmp/ldpath
|
|
||||||
--
|
|
||||||
1.9.3 (Apple Git-50)
|
|
||||||
|
|
@ -1,31 +1,47 @@
|
|||||||
{ stdenv, fetchurl, autoconf, automake, libtool
|
{ stdenv, fetchurl, autoconf, automake, libtool
|
||||||
, llvm, libcxx, clang, openssl, libuuid
|
, llvm, libcxx, libcxxabi, clang, openssl, libuuid
|
||||||
|
, libobjc ? null
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
baseParams = rec {
|
baseParams = rec {
|
||||||
name = "cctools-port-${version}";
|
name = "cctools-port-${version}";
|
||||||
version = "855";
|
version = "862";
|
||||||
|
|
||||||
src = let
|
src = let
|
||||||
# Should be fetchFromGitHub but it was whining so this will do for now
|
# Should be fetchFromGitHub but it was whining so this will do for now
|
||||||
owner = "tpoechtrager";
|
owner = "tpoechtrager";
|
||||||
repo = "cctools-port";
|
repo = "cctools-port";
|
||||||
rev = "7083dddbb0f106d791d313829ea7dc45db90e375";
|
rev = "59d21d2c793c51d205c8b4ab14b9b28e63c72445";
|
||||||
in fetchurl {
|
in fetchurl {
|
||||||
url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz";
|
url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz";
|
||||||
sha256 = "017gxlcwgi7xhayjzj9w3fac175p2rm4vjzf9cycq9683m9pmyzj";
|
sha256 = "01f31ijpnplbiyp7ldwzy8vbkn3j3m56n5blsvsav5nlp4lp2g71";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [ autoconf automake libtool openssl libuuid ] ++
|
||||||
autoconf automake libtool llvm clang openssl libuuid libcxx
|
# Only need llvm and clang if the stdenv isn't already clang-based (TODO: just make a stdenv.cc.isClang)
|
||||||
];
|
stdenv.lib.optionals (!stdenv.isDarwin) [ llvm clang ] ++
|
||||||
|
stdenv.lib.optionals stdenv.isDarwin [ libcxxabi libobjc ];
|
||||||
|
|
||||||
patches = [ ./ld-rpath-nonfinal.patch ./ld-ignore-rpath-link.patch ];
|
patches = [
|
||||||
|
./ld-rpath-nonfinal.patch ./ld-ignore-rpath-link.patch
|
||||||
|
];
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
configureFlags = stdenv.lib.optionals (!stdenv.isDarwin) [ "CXXFLAGS=-I${libcxx}/include/c++/v1" ];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
sed -i -e 's/addStandardLibraryDirectories = true/addStandardLibraryDirectories = false/' cctools/ld64/src/ld/Options.cpp
|
||||||
|
|
||||||
|
# FIXME: there are far more absolute path references that I don't want to fix right now
|
||||||
|
substituteInPlace cctools/configure.ac \
|
||||||
|
--replace "-isystem /usr/local/include -isystem /usr/pkg/include" "" \
|
||||||
|
--replace "-L/usr/local/lib" "" \
|
||||||
|
|
||||||
|
substituteInPlace cctools/include/Makefile \
|
||||||
|
--replace "/bin/" ""
|
||||||
|
|
||||||
patchShebangs tools
|
patchShebangs tools
|
||||||
sed -i -e 's/which/type -P/' tools/*.sh
|
sed -i -e 's/which/type -P/' tools/*.sh
|
||||||
|
|
||||||
@ -39,6 +55,8 @@ let
|
|||||||
# include_next "unistd.h"
|
# include_next "unistd.h"
|
||||||
#endif
|
#endif
|
||||||
EOF
|
EOF
|
||||||
|
'' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
|
||||||
|
sed -i -e 's|clang++|& -I${libcxx}/include/c++/v1|' cctools/autogen.sh
|
||||||
'';
|
'';
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
@ -46,6 +64,12 @@ let
|
|||||||
sh autogen.sh
|
sh autogen.sh
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
preInstall = ''
|
||||||
|
pushd include
|
||||||
|
make DSTROOT=$out/include RC_OS=common install
|
||||||
|
popd
|
||||||
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://www.opensource.apple.com/source/cctools/";
|
homepage = "http://www.opensource.apple.com/source/cctools/";
|
||||||
description = "Mac OS X Compiler Tools (cross-platform port)";
|
description = "Mac OS X Compiler Tools (cross-platform port)";
|
||||||
@ -53,15 +77,13 @@ let
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
# Hacks that for the darwin stdenv (sad that we need write workarounds for what started as a darwin package)
|
|
||||||
native = stdenv.mkDerivation (baseParams // {
|
native = stdenv.mkDerivation (baseParams // {
|
||||||
patches = baseParams.patches ++ [ ./darwin.patch ];
|
# A hack for now...
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
cd $out/bin
|
cat >$out/bin/dsymutil << EOF
|
||||||
for tool in dwarfdump dsymutil; do
|
#!${stdenv.shell}
|
||||||
ln -s /usr/bin/$tool
|
EOF
|
||||||
done
|
chmod +x $out/bin/dsymutil
|
||||||
'';
|
'';
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -8402,11 +8402,11 @@ let
|
|||||||
cmdline = callPackage ../os-specific/darwin/command-line-tools {};
|
cmdline = callPackage ../os-specific/darwin/command-line-tools {};
|
||||||
in rec {
|
in rec {
|
||||||
|
|
||||||
cctools = forceNativeDrv (callPackage ../os-specific/darwin/cctools/port.nix {
|
cctools = callPackage (forceNativeDrv (callPackage ../os-specific/darwin/cctools/port.nix {}).cross) {
|
||||||
cross = assert crossSystem != null; crossSystem;
|
cross = assert crossSystem != null; crossSystem;
|
||||||
inherit maloader;
|
inherit maloader;
|
||||||
xctoolchain = xcode.toolchain;
|
xctoolchain = xcode.toolchain;
|
||||||
});
|
};
|
||||||
|
|
||||||
cctools_native = (callPackage ../os-specific/darwin/cctools/port.nix {}).native;
|
cctools_native = (callPackage ../os-specific/darwin/cctools/port.nix {}).native;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user