diff options
author | obadz <obadz-git@obadz.com> | 2016-10-02 16:43:06 +0100 |
---|---|---|
committer | obadz <obadz-git@obadz.com> | 2016-10-15 12:15:35 +0100 |
commit | 540e3e8935b6c13ee17cb38173de6d302305750f (patch) | |
tree | c773b39845f1977b48cd22bdaa5e1ab25d1c632f /pkgs/development/compilers/coreclr | |
parent | 24c551a99d9dac60072893285549634af82b5a1d (diff) |
coreclr: 8c70800 -> 1.0.4
Diffstat (limited to 'pkgs/development/compilers/coreclr')
-rw-r--r-- | pkgs/development/compilers/coreclr/default.nix | 74 |
1 files changed, 55 insertions, 19 deletions
diff --git a/pkgs/development/compilers/coreclr/default.nix b/pkgs/development/compilers/coreclr/default.nix index cf2833c5c6cb7..7799cab76a649 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"; |