Merge pull request #266358 from reckenrode/python2-fix
python2: fix build with clang 16 on x86_64-darwin
This commit is contained in:
commit
d96b3a86e5
|
@ -133,6 +133,11 @@ let
|
|||
|
||||
] ++ lib.optionals (x11Support && stdenv.isDarwin) [
|
||||
./use-correct-tcl-tk-on-darwin.patch
|
||||
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
# Fix darwin build https://bugs.python.org/issue34027
|
||||
../3.7/darwin-libutil.patch
|
||||
|
||||
] ++ lib.optionals stdenv.isLinux [
|
||||
|
||||
# Disable the use of ldconfig in ctypes.util.find_library (since
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
diff -ur a/decoder.c b/decoder.c
|
||||
--- a/decoder.c 1980-01-02 00:00:00.000000000 -0500
|
||||
+++ b/decoder.c 2023-11-08 17:42:43.981838074 -0500
|
||||
@@ -94,7 +94,7 @@
|
||||
return PlaceObject(ctx, PyBool_FromLong((long)(value)));
|
||||
}
|
||||
|
||||
-static int handle_number(void *ctx, const char *value, unsigned int length)
|
||||
+static int handle_number(void *ctx, const char *value, size_t length)
|
||||
{
|
||||
//fprintf(stderr, "handle_number: ");
|
||||
//fwrite(value, length, 1, stderr);
|
||||
@@ -127,7 +127,7 @@
|
||||
return status;
|
||||
}
|
||||
|
||||
-static int handle_string(void *ctx, const unsigned char *value, unsigned int length)
|
||||
+static int handle_string(void *ctx, const unsigned char *value, size_t length)
|
||||
{
|
||||
return PlaceObject(ctx, PyString_FromStringAndSize((char *)value, length));
|
||||
}
|
||||
@@ -142,7 +142,7 @@
|
||||
return success;
|
||||
}
|
||||
|
||||
-static int handle_dict_key(void *ctx, const unsigned char *value, unsigned int length)
|
||||
+static int handle_dict_key(void *ctx, const unsigned char *value, size_t length)
|
||||
{
|
||||
PyObject *object = PyString_FromStringAndSize((const char *) value, length);
|
||||
|
||||
diff -ur a/yajl.c b/yajl.c
|
||||
--- a/yajl.c 1980-01-02 00:00:00.000000000 -0500
|
||||
+++ b/yajl.c 2023-11-08 17:41:18.781350335 -0500
|
||||
@@ -161,7 +161,7 @@
|
||||
}
|
||||
|
||||
static struct PyMethodDef yajl_methods[] = {
|
||||
- {"dumps", (PyCFunctionWithKeywords)(py_dumps), METH_VARARGS | METH_KEYWORDS,
|
||||
+ {"dumps", (PyCFunction)(py_dumps), METH_VARARGS | METH_KEYWORDS,
|
||||
"yajl.dumps(obj [, indent=None])\n\n\
|
||||
Returns an encoded JSON string of the specified `obj`\n\
|
||||
\n\
|
|
@ -42,6 +42,10 @@ rec {
|
|||
hash = "sha256-H3GKN0Pq1VFD5+SWxm8CXUVO7zAyj/ngKVmDaG/aRT4=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
patches = [
|
||||
# Fixes several incompatible function pointer conversions, which are errors in clang 16.
|
||||
./0014-clang_incompatible_function_pointer_conversions.patch
|
||||
];
|
||||
# just for submodule IIRC
|
||||
nativeBuildInputs = [ git ];
|
||||
};
|
||||
|
|
|
@ -35,6 +35,8 @@ stdenv.mkDerivation rec {
|
|||
|
||||
# Disable a failing test.
|
||||
rm -rf ../../tests/style.d
|
||||
'' + lib.optionalString stdenv.cc.isClang ''
|
||||
export NIX_CFLAGS_COMPILE+=' -Wno-error=strict-prototypes -Wno-error=int-conversion'
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
|
|
|
@ -18,6 +18,11 @@ stdenv.mkDerivation rec {
|
|||
|
||||
hardeningDisable = lib.optional stdenv.isDarwin "format";
|
||||
|
||||
env = lib.optionalAttrs stdenv.isDarwin {
|
||||
# Required to build with clang 16 or `configure` will fail to detect several standard functions.
|
||||
NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration";
|
||||
};
|
||||
|
||||
configureFlags = [
|
||||
"--with-openssl"
|
||||
"--with-readline=${readline.dev}"
|
||||
|
|
Loading…
Reference in New Issue
Block a user