diff options
author | Christopher Faylor <me@cgf.cx> | 2000-06-01 05:41:21 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2000-06-01 05:41:21 +0000 |
commit | b55cc8426622fef0cb86fe3240e4f132890ddeab (patch) | |
tree | 47696bdbb0362345fd34db10db3237dfe3041743 /winsup | |
parent | fcc4976d2636d385aa2eeeb7c026035c19d6d1d7 (diff) | |
download | newlib-b55cc8426622fef0cb86fe3240e4f132890ddeab.zip newlib-b55cc8426622fef0cb86fe3240e4f132890ddeab.tar.gz newlib-b55cc8426622fef0cb86fe3240e4f132890ddeab.tar.bz2 |
* autoload.h: Put each info block in its own dummy static function.
Diffstat (limited to 'winsup')
-rw-r--r-- | winsup/cygwin/ChangeLog | 4 | ||||
-rw-r--r-- | winsup/cygwin/autoload.h | 8 |
2 files changed, 11 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 1c30b77..51aa704 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,7 @@ +Thu Jun 1 01:40:20 2000 Christopher Faylor <cgf@cygnus.com> + + * autoload.h: Put each info block in its own dummy static function. + 2000-05-31 DJ Delorie <dj@cygnus.com> * include/cygwin/version.h: use decimal, NOT octal diff --git a/winsup/cygwin/autoload.h b/winsup/cygwin/autoload.h index be5aa16..9220e24 100644 --- a/winsup/cygwin/autoload.h +++ b/winsup/cygwin/autoload.h @@ -65,6 +65,10 @@ static int dllname ## _init () #define LoadDLLmangle(name, n) #name "@" #n #define LoadDLLfunc(name, n, dllname) LoadDLLfuncEx (name, n, dllname, 0) #define LoadDLLfuncEx(name, n, dllname, notimp) \ +extern "C" { \ +static void name##_dummy () __attribute__ ((noreturn)) __attribute__ ((unused)) __attribute__ ((stdcall)); \ +static void name##_dummy () \ +{ \ __asm__ (".section .data_cygwin_nocopy,\"w\""); \ __asm__ (".global _" LoadDLLmangle (name, n)); \ __asm__ (".global _win32_" LoadDLLmangle (name, n)); \ @@ -77,6 +81,8 @@ __asm__ (#name "jump: .long " #dllname "_init_holder"); \ __asm__ (" .long _" #dllname "_handle"); \ __asm__ (" .long " #n "+" #notimp); \ __asm__ (".asciz \"" #name "\""); \ -__asm__ (".text"); +__asm__ (".text"); \ +} \ +} extern "C" void cygwin_dll_func_load () __asm__ ("cygwin_dll_func_load"); |