erlang: patch all versions to work with clang 4
This commit is contained in:
parent
0cf93fda07
commit
5a81c66906
@ -27,6 +27,11 @@ stdenv.mkDerivation rec {
|
|||||||
++ optional odbcSupport unixODBC
|
++ optional odbcSupport unixODBC
|
||||||
++ optionals stdenv.isDarwin [ Carbon Cocoa ];
|
++ optionals stdenv.isDarwin [ Carbon Cocoa ];
|
||||||
|
|
||||||
|
# Clang 4 (rightfully) thinks signed comparisons of pointers with NULL are nonsense
|
||||||
|
prePatch = ''
|
||||||
|
substituteInPlace lib/wx/c_src/wxe_impl.cpp --replace 'temp > NULL' 'temp != NULL'
|
||||||
|
'';
|
||||||
|
|
||||||
patchPhase = '' sed -i "s@/bin/rm@rm@" lib/odbc/configure erts/configure '';
|
patchPhase = '' sed -i "s@/bin/rm@rm@" lib/odbc/configure erts/configure '';
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
, gnused, gawk, makeWrapper
|
, gnused, gawk, makeWrapper
|
||||||
, odbcSupport ? false, unixODBC ? null
|
, odbcSupport ? false, unixODBC ? null
|
||||||
, wxSupport ? false, mesa ? null, wxGTK ? null, xorg ? null
|
, wxSupport ? false, mesa ? null, wxGTK ? null, xorg ? null
|
||||||
, enableDebugInfo ? false
|
, enableDebugInfo ? false
|
||||||
, Carbon ? null, Cocoa ? null }:
|
, Carbon ? null, Cocoa ? null }:
|
||||||
|
|
||||||
assert wxSupport -> mesa != null && wxGTK != null && xorg != null;
|
assert wxSupport -> mesa != null && wxGTK != null && xorg != null;
|
||||||
@ -24,11 +24,16 @@ stdenv.mkDerivation rec {
|
|||||||
debugInfo = enableDebugInfo;
|
debugInfo = enableDebugInfo;
|
||||||
|
|
||||||
buildInputs =
|
buildInputs =
|
||||||
[ perl gnum4 ncurses openssl makeWrapper autoconf264 gcc
|
[ perl gnum4 ncurses openssl makeWrapper autoconf264 gcc
|
||||||
] ++ optional wxSupport [ mesa wxGTK xorg.libX11 ]
|
] ++ optional wxSupport [ mesa wxGTK xorg.libX11 ]
|
||||||
++ optional odbcSupport [ unixODBC ]
|
++ optional odbcSupport [ unixODBC ]
|
||||||
++ optionals stdenv.isDarwin [ Carbon Cocoa ];
|
++ optionals stdenv.isDarwin [ Carbon Cocoa ];
|
||||||
|
|
||||||
|
# Clang 4 (rightfully) thinks signed comparisons of pointers with NULL are nonsense
|
||||||
|
prePatch = ''
|
||||||
|
substituteInPlace lib/wx/c_src/wxe_impl.cpp --replace 'temp > NULL' 'temp != NULL'
|
||||||
|
'';
|
||||||
|
|
||||||
patchPhase = '' sed -i "s@/bin/rm@rm@" lib/odbc/configure.in erts/configure.in '';
|
patchPhase = '' sed -i "s@/bin/rm@rm@" lib/odbc/configure.in erts/configure.in '';
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
@ -36,22 +41,22 @@ stdenv.mkDerivation rec {
|
|||||||
export LANG=C
|
export LANG=C
|
||||||
export ERL_TOP=$(pwd)
|
export ERL_TOP=$(pwd)
|
||||||
sed -e s@/bin/pwd@pwd@g -i otp_build
|
sed -e s@/bin/pwd@pwd@g -i otp_build
|
||||||
sed -e s@"/usr/bin/env escript"@${erlang}/bin/escript@g -i lib/diameter/bin/diameterc
|
sed -e s@"/usr/bin/env escript"@${erlang}/bin/escript@g -i lib/diameter/bin/diameterc
|
||||||
'';
|
'';
|
||||||
|
|
||||||
configureFlags= [
|
configureFlags= [
|
||||||
"--with-ssl=${openssl.dev}"
|
"--with-ssl=${openssl.dev}"
|
||||||
"--enable-smp-support"
|
"--enable-smp-support"
|
||||||
"--enable-threads"
|
"--enable-threads"
|
||||||
"--enable-kernel-poll"
|
"--enable-kernel-poll"
|
||||||
"--disable-hipe"
|
"--disable-hipe"
|
||||||
"${optionalString odbcSupport "--with-odbc=${unixODBC}"}"
|
"${optionalString odbcSupport "--with-odbc=${unixODBC}"}"
|
||||||
"${optionalString stdenv.isDarwin "--enable-darwin-64bit"}"
|
"${optionalString stdenv.isDarwin "--enable-darwin-64bit"}"
|
||||||
"${optionalString stdenv.isLinux "--enable-m64-build"}"
|
"${optionalString stdenv.isLinux "--enable-m64-build"}"
|
||||||
];
|
];
|
||||||
|
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
./otp_build autoconf
|
./otp_build autoconf
|
||||||
./otp_build setup -a --prefix=$out $configureFlags
|
./otp_build setup -a --prefix=$out $configureFlags
|
||||||
'';
|
'';
|
||||||
|
|
||||||
@ -89,7 +94,7 @@ stdenv.mkDerivation rec {
|
|||||||
telephony and instant messaging. Erlang's runtime system has
|
telephony and instant messaging. Erlang's runtime system has
|
||||||
built-in support for concurrency, distribution and fault
|
built-in support for concurrency, distribution and fault
|
||||||
tolerance.
|
tolerance.
|
||||||
This version of Erlang is Basho's version, forked from Ericsson's
|
This version of Erlang is Basho's version, forked from Ericsson's
|
||||||
repository.
|
repository.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -35,7 +35,12 @@ stdenv.mkDerivation rec {
|
|||||||
++ optional javacSupport openjdk
|
++ optional javacSupport openjdk
|
||||||
++ stdenv.lib.optionals stdenv.isDarwin [ Carbon Cocoa ];
|
++ stdenv.lib.optionals stdenv.isDarwin [ Carbon Cocoa ];
|
||||||
|
|
||||||
patchPhase = '' sed -i "s@/bin/rm@rm@" lib/odbc/configure erts/configure '';
|
patchPhase = ''
|
||||||
|
# Clang 4 (rightfully) thinks signed comparisons of pointers with NULL are nonsense
|
||||||
|
substituteInPlace lib/wx/c_src/wxe_impl.cpp --replace 'temp > NULL' 'temp != NULL'
|
||||||
|
|
||||||
|
sed -i "s@/bin/rm@rm@" lib/odbc/configure erts/configure
|
||||||
|
'';
|
||||||
|
|
||||||
debugInfo = enableDebugInfo;
|
debugInfo = enableDebugInfo;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, fetchurl, fetchFromGitHub, perl, gnum4, ncurses, openssl
|
{ stdenv, fetchurl, fetchpatch, fetchFromGitHub, perl, gnum4, ncurses, openssl
|
||||||
, gnused, gawk, autoconf, libxslt, libxml2, makeWrapper
|
, gnused, gawk, autoconf, libxslt, libxml2, makeWrapper
|
||||||
, Carbon, Cocoa
|
, Carbon, Cocoa
|
||||||
, odbcSupport ? false, unixODBC ? null
|
, odbcSupport ? false, unixODBC ? null
|
||||||
@ -53,6 +53,11 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "10h5348p6g279b4q01i5jdqlljww5chcvrx5b4b0dv79pk0p0m9f";
|
sha256 = "10h5348p6g279b4q01i5jdqlljww5chcvrx5b4b0dv79pk0p0m9f";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Clang 4 (rightfully) thinks signed comparisons of pointers with NULL are nonsense
|
||||||
|
prePatch = ''
|
||||||
|
substituteInPlace lib/wx/c_src/wxe_impl.cpp --replace 'temp > NULL' 'temp != NULL'
|
||||||
|
'';
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
rmAndPwdPatch
|
rmAndPwdPatch
|
||||||
envAndCpPatch
|
envAndCpPatch
|
||||||
|
@ -46,6 +46,9 @@ stdenv.mkDerivation rec {
|
|||||||
prePatch = ''
|
prePatch = ''
|
||||||
substituteInPlace configure.in \
|
substituteInPlace configure.in \
|
||||||
--replace '`sw_vers -productVersion`' '10.10'
|
--replace '`sw_vers -productVersion`' '10.10'
|
||||||
|
|
||||||
|
# Clang 4 (rightfully) thinks signed comparisons of pointers with NULL are nonsense
|
||||||
|
substituteInPlace lib/wx/c_src/wxe_impl.cpp --replace 'temp > NULL' 'temp != NULL'
|
||||||
'';
|
'';
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
|
Loading…
x
Reference in New Issue
Block a user