summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorobadz <obadz-git@obadz.com>2016-10-02 16:43:06 +0100
committerobadz <obadz-git@obadz.com>2016-10-15 12:15:35 +0100
commit540e3e8935b6c13ee17cb38173de6d302305750f (patch)
treec773b39845f1977b48cd22bdaa5e1ab25d1c632f /pkgs
parent24c551a99d9dac60072893285549634af82b5a1d (diff)
downloadnixlib-540e3e8935b6c13ee17cb38173de6d302305750f.tar
nixlib-540e3e8935b6c13ee17cb38173de6d302305750f.tar.gz
nixlib-540e3e8935b6c13ee17cb38173de6d302305750f.tar.bz2
nixlib-540e3e8935b6c13ee17cb38173de6d302305750f.tar.lz
nixlib-540e3e8935b6c13ee17cb38173de6d302305750f.tar.xz
nixlib-540e3e8935b6c13ee17cb38173de6d302305750f.tar.zst
nixlib-540e3e8935b6c13ee17cb38173de6d302305750f.zip
coreclr: 8c70800 -> 1.0.4
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/development/compilers/coreclr/default.nix74
1 files changed, 55 insertions, 19 deletions
diff --git a/pkgs/development/compilers/coreclr/default.nix b/pkgs/development/compilers/coreclr/default.nix
index cf2833c5c6cb..7799cab76a64 100644
--- a/pkgs/development/compilers/coreclr/default.nix
+++ b/pkgs/development/compilers/coreclr/default.nix
@@ -7,18 +7,24 @@
 , libunwind
 , gettext
 , openssl
+, python2
+, icu
+, lttng-ust
+, liburcu
+, libuuid
+, ed
+, debug ? false
 }:
 
 stdenv.mkDerivation rec {
   name = "coreclr-${version}";
-  version = "git-" + (builtins.substring 0 10 rev);
-  rev = "8c70800b5e8dc5535c379dec4a6fb32f7ab5e878";
+  version = "1.0.4";
 
   src = fetchFromGitHub {
-    owner = "dotnet";
-    repo = "coreclr";
-    inherit rev;
-    sha256 = "1galskbnr9kdjjxpx5qywh49400swchhq5f54i16kxyr9k4mvq1f";
+    owner  = "dotnet";
+    repo   = "coreclr";
+    rev    = "v${version}";
+    sha256 = "1wpig71q0kh2yrq162d32x00zlwrrs1wymkgijh49cqkn4cwkh91";
   };
 
   buildInputs = [
@@ -30,33 +36,63 @@ stdenv.mkDerivation rec {
     libunwind
     gettext
     openssl
+    python2
+    icu
+    lttng-ust
+    liburcu
+    libuuid
+    ed
   ];
 
   configurePhase = ''
     # Prevent clang-3.5 (rather than just clang) from being selected as the compiler as that's
     # not wrapped
-    substituteInPlace src/pal/tools/gen-buildsys-clang.sh --replace "which \"clang-" "which \"clang-DoNotFindThisOne"
-
-    # Prevent the -nostdinc++ flag to be passed to clang, which causes a compilation error
-    substituteInPlace src/CMakeLists.txt --replace "if(NOT CLR_CMAKE_PLATFORM_DARWIN)" "if(FALSE)"
+    substituteInPlace src/pal/tools/gen-buildsys-clang.sh --replace "which \"clang-\$" "which \"clang-DoNotFindThisOne\$"
 
     patchShebangs build.sh
     patchShebangs src/pal/tools/gen-buildsys-clang.sh
+
+    # See https://github.com/dotnet/coreclr/issues/7573#issuecomment-253081323
+    ed -v ./src/pal/src/include/pal/palinternal.h << EOF
+    /^#undef memcpy
+    -1
+    d
+    +1
+    d
+    w
+    EOF
   '';
 
-  buildPhase = "./build.sh";
+  BuildArch = if stdenv.is64bit then "x64" else "x86";
+  BuildType = if debug then "Debug" else "Release";
 
-  installPhase = ''
-    pushd bin/Product/Linux.x64.Debug/
-    mkdir -v -p $out/bin
-    cp -v coreconsole corerun crossgen $out/bin
-    cp -rv lib $out
-    cp -v *.so $out/lib
-    cp -rv inc $out/include
-    cp -rv gcinfo $out/include
+  hardeningDisable = [ "strictoverflow" "format" ];
+  NIX_CFLAGS_COMPILE = [ "-Wno-error=unused-result" ];
+
+  buildPhase = ''
+    ./build.sh $BuildArch $BuildType
+
+    # Try to make some sensible hierarchy out of the output
+    pushd bin/Product/Linux.$BuildArch.$BuildType
+    mkdir lib2
+    mv *.so *.so.dbg lib2
+    mv bin lib3
+    mkdir lib4
+    mv Loader lib4
+    mv inc include
+    mv gcinfo include
+    mkdir bin
+    mkdir -p share/doc
+    mv sosdocsunix.txt share/doc
+    for f in * ; do test -f $f && mv -v $f bin; done
     popd
   '';
 
+  installPhase = ''
+    mkdir -p $out
+    cp -rv bin/Product/Linux.$BuildArch.$BuildType/* $out
+  '';
+
   meta = {
     homepage = http://dotnet.github.io/core/;
     description = ".NET is a general purpose development platform";