diff options
author | aneejit1 <aneejit1@gmail.com> | 2022-05-07 16:15:00 +0000 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2022-05-11 00:35:29 +0200 |
commit | 1eb067b439c19d9336c44e438721decdbd1ea20e (patch) | |
tree | 748032ba71a76ca1508df7a6437be12c275ea3c7 | |
parent | ac6e37dd9ea81fe4f514dc2ca64ed867ca20b33b (diff) | |
download | sip4-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.c | 6 |
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\" ")); |