>From 48c28ce65b53af7ad6c1cb84026e47be9ce2d68b Mon Sep 17 00:00:00 2001
From: Peter Rosin <p...@lysator.liu.se>
Date: Mon, 20 Sep 2010 09:11:43 +0200
Subject: [PATCH 2/2] libltdl: Make sure preloaded symbols are declared extern 
"C".

* libltdl/ltdl.h (LTDL_SET_PRELOADED_SYMBOLS): Move the
declaration of lt__PROGRAM__LTX_preloaded_symbols to global
scope and make sure it has "C" linkage.  Makes exceptions.at
succeed on MSVC.

Signed-off-by: Peter Rosin <p...@lysator.liu.se>
---
 ChangeLog      |    9 +++++++++
 libltdl/ltdl.h |    9 +++++----
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 3c72890..8ed47f7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,13 @@
 2010-09-20  Peter Rosin  <p...@lysator.liu.se>
+           Ralf Wildenhues  <ralf.wildenh...@gmx.de>
+
+       libltdl: Make sure preloaded symbols are declared extern "C".
+       * libltdl/ltdl.h (LTDL_SET_PRELOADED_SYMBOLS): Move the
+       declaration of lt__PROGRAM__LTX_preloaded_symbols to global
+       scope and make sure it has "C" linkage.  Makes exceptions.at
+       succeed on MSVC.
+
+2010-09-20  Peter Rosin  <p...@lysator.liu.se>
 
        tests: __declspec (dll{ex,im}port) in tests/exceptions.at
        * tests/exceptions.at (common.h, module.h, lib.h) [w32]: Use
diff --git a/libltdl/ltdl.h b/libltdl/ltdl.h
index 5154da1..749a54d 100644
--- a/libltdl/ltdl.h
+++ b/libltdl/ltdl.h
@@ -102,10 +102,11 @@ LT_SCOPE int      lt_dlpreload_open    (const char 
*originator,
                                      lt_dlpreload_callback_func *func);
 
 #define lt_preloaded_symbols   lt__PROGRAM__LTX_preloaded_symbols
-#define LTDL_SET_PRELOADED_SYMBOLS()                   LT_STMT_START{  \
-       extern LT_DLSYM_CONST lt_dlsymlist lt_preloaded_symbols[];      \
-       lt_dlpreload_default(lt_preloaded_symbols);                     \
-                                                       }LT_STMT_END
+/* Ensure C linkage.  */
+extern LT_DLSYM_CONST lt_dlsymlist lt__PROGRAM__LTX_preloaded_symbols[];
+
+#define LTDL_SET_PRELOADED_SYMBOLS() \
+       lt_dlpreload_default(lt_preloaded_symbols)
 
 
 
-- 
1.7.1



Reply via email to