aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2000-06-01 05:41:21 +0000
committerChristopher Faylor <me@cgf.cx>2000-06-01 05:41:21 +0000
commitb55cc8426622fef0cb86fe3240e4f132890ddeab (patch)
tree47696bdbb0362345fd34db10db3237dfe3041743
parentfcc4976d2636d385aa2eeeb7c026035c19d6d1d7 (diff)
downloadnewlib-b55cc8426622fef0cb86fe3240e4f132890ddeab.zip
newlib-b55cc8426622fef0cb86fe3240e4f132890ddeab.tar.gz
newlib-b55cc8426622fef0cb86fe3240e4f132890ddeab.tar.bz2
* autoload.h: Put each info block in its own dummy static function.
-rw-r--r--winsup/cygwin/ChangeLog4
-rw-r--r--winsup/cygwin/autoload.h8
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");