>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