Ensure module initialisation is exported globally

The generated module initialisation function fails to export because of
the "-fvisibility-hidden" resulting in an import failure on missing
symbol. Alter the visibility of the initialisation function to "default"
to ensure that it winds up as "global" in the module binary.

Signed-off-by: aneejit1 <aneejit1@gmail.com>
aneejit1 2 years ago
parent 76444639b2
commit b275737d3c

@ -2324,14 +2324,21 @@ static void generateModInitStart(moduleDef *mod, int gen_c, FILE *fp)
"#define SIP_MODULE_RETURN(r) return\n"
"#endif\n"
"\n"
"#if (defined(__GNUC__) && __GNUC__ >= 4) || defined(__clang__)\n"
"#pragma GCC visibility push(default)\n"
"#endif\n"
"#if defined(SIP_STATIC_MODULE)\n"
"%sSIP_MODULE_TYPE SIP_MODULE_ENTRY()\n"
"#else\n"
"PyMODINIT_FUNC SIP_MODULE_ENTRY()\n"
"#endif\n"
"{\n"
"#if (defined(__GNUC__) && __GNUC__ >= 4) || defined(__clang__)\n"
"#pragma GCC visibility pop\n"
"#endif\n"
, mod->name
, mod->name
, (gen_c ? "" : "extern \"C\" ")
, (gen_c ? "" : "extern \"C\" "));
}

Loading…
Cancel
Save