https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93384
--- Comment #12 from Victor Stinner <vstinner at redhat dot com> --- Created attachment 47726 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47726&action=edit preprocessed object.c (gcc -E), bzip2 compressed Here is the gcc -E output of Objects/object.c. Truncated extract (function body replaced with "..."): # 446 "../Include/cpython/object.h" __attribute__ ((visibility ("default"))) void _PyObject_AssertFailed( PyObject *obj, const char *expr, const char *msg, const char *file, int line, const char *function); void _PyObject_AssertFailed(PyObject *obj, const char *expr, const char *msg, const char *file, int line, const char *function) { ... Py_FatalError("_PyObject_AssertFailed"); } I modified the command which creates Objects/object.o to get the preprocessor output, but it's not directly related to the libpython3.9.so linking command (which uses object.o and not object.c).