...when generating Python/deepfreeze/deepfreeze.c during the build of
ExternalProject_python3 after 50524481b3 "Python:
upgrade to 3.11.11 (master only)",
> Objects/dictobject.c:1500:40: runtime error: load of misaligned address 0x555853494d81 for type 'PyDictUnicodeEntry *', which requires 8 byte alignment
> 0x555853494d81: note: pointer points here
> 00 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> ^
> #0 in dictresize at workdir/UnpackedTarball/python3/Objects/dictobject.c:1500:21
> #1 in dict_merge at workdir/UnpackedTarball/python3/Objects/dictobject.c:2880:17
> #2 in _PyDict_MergeEx at workdir/UnpackedTarball/python3/Objects/dictobject.c:3003:12
> #3 in _PyEval_EvalFrameDefault at workdir/UnpackedTarball/python3/Python/ceval.c:3432:17
> #4 in _PyEval_EvalFrame at workdir/UnpackedTarball/python3/./Include/internal/pycore_ceval.h:73:16
> #5 in _PyEval_Vector at workdir/UnpackedTarball/python3/Python/ceval.c:6434:24
> #6 in _PyFunction_Vectorcall at workdir/UnpackedTarball/python3/Objects/call.c:393:16
> #7 in _PyObject_FastCallDictTstate at workdir/UnpackedTarball/python3/Objects/call.c:141:15
> #8 in _PyObject_Call_Prepend at workdir/UnpackedTarball/python3/Objects/call.c:482:24
> #9 in slot_tp_init at workdir/UnpackedTarball/python3/Objects/typeobject.c:7855:15
> #10 in type_call at workdir/UnpackedTarball/python3/Objects/typeobject.c:1103:19
> #11 in _PyObject_MakeTpCall at workdir/UnpackedTarball/python3/Objects/call.c:214:18
> #12 in _PyObject_VectorcallTstate at workdir/UnpackedTarball/python3/./Include/internal/pycore_call.h:90:16
> #13 in PyObject_Vectorcall at workdir/UnpackedTarball/python3/Objects/call.c:299:12
> #14 in _PyEval_EvalFrameDefault at workdir/UnpackedTarball/python3/Python/ceval.c:4769:23
> #15 in _PyEval_EvalFrame at workdir/UnpackedTarball/python3/./Include/internal/pycore_ceval.h:73:16
> #16 in _PyEval_Vector at workdir/UnpackedTarball/python3/Python/ceval.c:6434:24
> #17 in PyEval_EvalCode at workdir/UnpackedTarball/python3/Python/ceval.c:1148:21
> #18 in run_eval_code_obj at workdir/UnpackedTarball/python3/Python/pythonrun.c:1741:9
> #19 in run_mod at workdir/UnpackedTarball/python3/Python/pythonrun.c:1762:19
> #20 in pyrun_file at workdir/UnpackedTarball/python3/Python/pythonrun.c:1657:15
> #21 in _PyRun_SimpleFileObject at workdir/UnpackedTarball/python3/Python/pythonrun.c:440:13
> #22 in _PyRun_AnyFileObject at workdir/UnpackedTarball/python3/Python/pythonrun.c:79:15
> #23 in pymain_run_file_obj at workdir/UnpackedTarball/python3/Modules/main.c:360:15
> #24 in pymain_run_file at workdir/UnpackedTarball/python3/Modules/main.c:379:15
> #25 in pymain_run_python at workdir/UnpackedTarball/python3/Modules/main.c:605:21
> #26 in Py_RunMain at workdir/UnpackedTarball/python3/Modules/main.c:684:5
> #27 in main at workdir/UnpackedTarball/python3/Programs/_bootstrap_python.c:109:12
Change-Id: I0bacef11b5874bca6104516a206076a0505528ed
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180037
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
55 lines
2.1 KiB
Plaintext
55 lines
2.1 KiB
Plaintext
--- Modules/_ctypes/libffi_osx/x86/x86-ffi64.c
|
|
+++ Modules/_ctypes/libffi_osx/x86/x86-ffi64.c
|
|
@@ -599,9 +599,15 @@
|
|
tramp = (volatile unsigned short*)&closure->tramp[0];
|
|
|
|
tramp[0] = 0xbb49; /* mov <code>, %r11 */
|
|
- *(void* volatile*)&tramp[1] = ffi_closure_unix64;
|
|
+ tramp[1] = (unsigned short) ffi_closure_unix64;
|
|
+ tramp[2] = (unsigned short) (((unsigned long)ffi_closure_unix64) >> 16);
|
|
+ tramp[3] = (unsigned short) (((unsigned long)ffi_closure_unix64) >> 32);
|
|
+ tramp[4] = (unsigned short) (((unsigned long)ffi_closure_unix64) >> 48);
|
|
tramp[5] = 0xba49; /* mov <data>, %r10 */
|
|
- *(void* volatile*)&tramp[6] = closure;
|
|
+ tramp[6] = (unsigned short) closure;
|
|
+ tramp[7] = (unsigned short) (((unsigned long)closure) >> 16);
|
|
+ tramp[8] = (unsigned short) (((unsigned long)closure) >> 32);
|
|
+ tramp[9] = (unsigned short) (((unsigned long)closure) >> 48);
|
|
|
|
/* Set the carry bit if the function uses any sse registers.
|
|
This is clc or stc, together with the first byte of the jmp. */
|
|
--- Modules/posixmodule.c
|
|
+++ Modules/posixmodule.c
|
|
@@ -13998,6 +13998,9 @@
|
|
};
|
|
|
|
static int
|
|
+#if defined __clang__
|
|
+__attribute__((no_sanitize("shift-base"))) // MFD_HUGE_16GB in /usr/include/linux/memfd.h
|
|
+#endif
|
|
all_ins(PyObject *m)
|
|
{
|
|
#ifdef F_OK
|
|
--- Objects/dictobject.c
|
|
+++ Objects/dictobject.c
|
|
@@ -1497,7 +1497,7 @@
|
|
if (unicode) { // combined unicode -> combined unicode
|
|
PyDictUnicodeEntry *newentries = DK_UNICODE_ENTRIES(mp->ma_keys);
|
|
if (oldkeys->dk_nentries == numentries && mp->ma_keys->dk_kind == DICT_KEYS_UNICODE) {
|
|
- memcpy(newentries, oldentries, numentries * sizeof(PyDictUnicodeEntry));
|
|
+ memcpy(newentries, (void *) oldentries, numentries * sizeof(PyDictUnicodeEntry));
|
|
}
|
|
else {
|
|
PyDictUnicodeEntry *ep = oldentries;
|
|
--- Objects/listobject.c
|
|
+++ Objects/listobject.c
|
|
@@ -554,7 +554,7 @@
|
|
dest[i] = v;
|
|
}
|
|
src = b->ob_item;
|
|
- dest = np->ob_item + Py_SIZE(a);
|
|
+ dest = Py_SIZE(a) == 0 ? np->ob_item : np->ob_item + Py_SIZE(a);
|
|
for (i = 0; i < Py_SIZE(b); i++) {
|
|
PyObject *v = src[i];
|
|
Py_INCREF(v);
|