File 0001-Only-export-necessary-symbols.-Fixes-105.patch of Package emacs-jinx
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Bidar?= <bjorn.bidar@thaodan.de>
Date: Fri, 29 Sep 2023 20:48:06 +0300
Subject: [PATCH] Only export necessary symbols. Fixes #105
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
As recommended in:
https://gcc.gnu.org/wiki/Visibility
Signed-off-by: Björn Bidar <bjorn.bidar@thaodan.de>
---
jinx-mod.c | 19 +++++++++++++++++--
jinx.el | 2 +-
2 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/jinx-mod.c b/jinx-mod.c
index 33e080d34bc0f53a2e7bc5ff0c3d9ee5bb70eb39..476b8c105985514d2f2870fb50b9bcfe3923abba 100644
--- a/jinx-mod.c
+++ b/jinx-mod.c
@@ -20,10 +20,25 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */
#include <stdlib.h>
#include <string.h>
+
+#if defined _WIN32 || defined __CYGWIN__
+ #ifdef __GNUC__
+ #define JINX_EXPORT __attribute__ ((dllexport))
+ #else
+ #define JINX_EXPORT __declspec(dllexport)
+ #endif
+#else
+ #if __GNUC__ >= 4
+ #define JINX_EXPORT __attribute__ ((visibility ("default")))
+ #else
+ #define JINX_EXPORT
+ #endif
+#endif
+
#define jinx_unused(var) _##var __attribute__((unused))
#define jinx_autofree __attribute__((cleanup(jinx_autofree_cleanup)))
-int plugin_is_GPL_compatible;
+JINX_EXPORT int plugin_is_GPL_compatible;
static EnchantBroker* broker = 0;
static emacs_value Qt, Qnil, Qcons;
@@ -173,7 +188,7 @@ static emacs_value jinx_suggest(emacs_env* env, ptrdiff_t jinx_unused(nargs),
return list;
}
-int emacs_module_init(struct emacs_runtime *runtime) {
+int JINX_EXPORT emacs_module_init(struct emacs_runtime *runtime) {
// Require Emacs binary compatibility
if ((size_t)runtime->size < sizeof (*runtime))
return 1;
diff --git a/jinx.el b/jinx.el
index 5561f3996a1a2fe5eeb85532ac1c89621f7ea1da..3beec38a32ea830d33d28d03b342ee2e944b399b 100644
--- a/jinx.el
+++ b/jinx.el
@@ -269,7 +269,7 @@ (easy-menu-define jinx-mode-menu jinx-mode-map
;;;; Internal variables
(defvar jinx--compile-flags
- '("-I." "-O2" "-Wall" "-Wextra" "-fPIC" "-shared")
+ '("-I." "-O2" "-Wall" "-Wextra" "-fPIC" "-shared -fvisibility=hidden")
"List of compile flags passed to the C compiler.")
(defvar jinx--reschedule-hooks