mysql55: fix build under clang 6 (and newer)

This commit is contained in:
Andrew Childs 2019-06-09 23:13:46 +09:00
parent 7bf37e1f8b
commit 70db1185b7

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, cmake, bison, ncurses, openssl, readline, zlib, perl { stdenv, fetchpatch, fetchurl, cmake, bison, ncurses, openssl
, cctools, CoreServices }: , readline, zlib, perl, cctools, CoreServices }:
# Note: zlib is not required; MySQL can use an internal zlib. # Note: zlib is not required; MySQL can use an internal zlib.
@ -13,10 +13,17 @@ self = stdenv.mkDerivation rec {
sha256 = "1mwrzwk9ap09s430fpdkyhvx5j2syd3xj2hyfzvanjphq4xqbrxi"; sha256 = "1mwrzwk9ap09s430fpdkyhvx5j2syd3xj2hyfzvanjphq4xqbrxi";
}; };
patches = if stdenv.isCygwin then [ patches =
./5.5.17-cygwin.patch # Minor type error that is a build failure as of clang 6.
./5.5.17-export-symbols.patch stdenv.lib.optional stdenv.cc.isClang (fetchpatch {
] else null; url = "https://svn.freebsd.org/ports/head/databases/mysql55-server/files/patch-sql_sql_partition.cc?rev=469888";
extraPrefix = "";
sha256 = "09sya27z3ir3xy5mrv3x68hm274594y381n0i6r5s627x71jyszf";
}) ++
stdenv.lib.optionals stdenv.isCygwin [
./5.5.17-cygwin.patch
./5.5.17-export-symbols.patch
];
preConfigure = stdenv.lib.optional stdenv.isDarwin '' preConfigure = stdenv.lib.optional stdenv.isDarwin ''
ln -s /bin/ps $TMPDIR/ps ln -s /bin/ps $TMPDIR/ps
@ -51,7 +58,10 @@ self = stdenv.mkDerivation rec {
"-DINSTALL_SQLBENCHDIR=" "-DINSTALL_SQLBENCHDIR="
]; ];
NIX_CFLAGS_COMPILE = [ "-fpermissive" ]; # since gcc-7 NIX_CFLAGS_COMPILE =
stdenv.lib.optionals stdenv.cc.isGNU [ "-fpermissive" ] # since gcc-7
++ stdenv.lib.optionals stdenv.cc.isClang [ "-Wno-c++11-narrowing" ]; # since clang 6
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s"; NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
prePatch = '' prePatch = ''
@ -78,6 +88,6 @@ self = stdenv.mkDerivation rec {
artistic1 bsd0 bsd2 bsd3 bsdOriginal artistic1 bsd0 bsd2 bsd3 bsdOriginal
gpl2 lgpl2 lgpl21 mit publicDomain licenses.zlib gpl2 lgpl2 lgpl21 mit publicDomain licenses.zlib
]; ];
broken = stdenv.isAarch64 && stdenv.isDarwin; broken = stdenv.isAarch64;
}; };
}; in self }; in self