From: Peter Rosin Date: Mon, 20 Sep 2010 07:11:43 +0000 (+0200) Subject: libltdl: Make sure preloaded symbols are declared extern "C". X-Git-Tag: v2.4~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=48c28ce65b53af7ad6c1cb84026e47be9ce2d68b;p=thirdparty%2Flibtool.git 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 --- diff --git a/ChangeLog b/ChangeLog index 3c72890a7..8ed47f77f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2010-09-20 Peter Rosin + Ralf Wildenhues + + 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 tests: __declspec (dll{ex,im}port) in tests/exceptions.at diff --git a/libltdl/ltdl.h b/libltdl/ltdl.h index 5154da1aa..749a54d68 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)