summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraneejit1 <aneejit1@gmail.com>2022-05-07 16:15:00 +0000
committerSlávek Banko <slavek.banko@axis.cz>2022-05-11 00:35:29 +0200
commit1eb067b439c19d9336c44e438721decdbd1ea20e (patch)
tree748032ba71a76ca1508df7a6437be12c275ea3c7
parentac6e37dd9ea81fe4f514dc2ca64ed867ca20b33b (diff)
downloadsip4-tqt-1eb067b439c19d9336c44e438721decdbd1ea20e.tar.gz
sip4-tqt-1eb067b439c19d9336c44e438721decdbd1ea20e.zip
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> (cherry picked from commit b9448655a28d8357dbed7d2a4f3171440703c0bf)
-rw-r--r--sipgen/gencode.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sipgen/gencode.c b/sipgen/gencode.c
index f7d239e..35e3784 100644
--- a/sipgen/gencode.c
+++ b/sipgen/gencode.c
@@ -2324,12 +2324,18 @@ 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\" "));