summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog17
-rw-r--r--winsup/cygwin/Makefile.in3
-rw-r--r--winsup/cygwin/autoload.cc12
-rw-r--r--winsup/cygwin/exceptions.cc4
-rw-r--r--winsup/cygwin/grp.cc16
-rw-r--r--winsup/cygwin/pwdgrp.h16
6 files changed, 44 insertions, 24 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index f13513b5c..0cfc97628 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,22 @@
2003-04-17 Thomas Pfaff <tpfaff@gmx.net>
+ * Makefile.in: Add finline-functions optimization to CXXFLAGS.
+ * autoload.cc (LoadDLLprime): Rename std_dll_init to
+ _std_dll_init.
+ (std_dll_init): Remove name mangling prototype. Add attributes
+ used and noinline.
+ (wsock_init): Ditto.
+ Change wsock_init to _wsock_init in wsock32 and ws2_32
+ LoadDLLprime.
+ * exceptions.cc (unused_sig_wrapper): Remove prototype. Add
+ attributes used and noinline.
+ * pwdgrp.h ((pwdgrp (passwd *&)): Remove inline code.
+ (pwdgrp (__group32 *&)): Ditto.
+ * grp.cc (pwdgrp (passwd *&)): Outline constructor.
+ (pwdgrp (__group32 *&)): Ditto.
+
+2003-04-17 Thomas Pfaff <tpfaff@gmx.net>
+
* thread.h (pthread::equal): New static method.
* thread.cc: Rename pthread_equal to pthread::equal throughout.
(pthread_equal): Use pthread::equal to compare threads ids.
diff --git a/winsup/cygwin/Makefile.in b/winsup/cygwin/Makefile.in
index 2695a73d7..2a29e454a 100644
--- a/winsup/cygwin/Makefile.in
+++ b/winsup/cygwin/Makefile.in
@@ -80,6 +80,9 @@ CFLAGS=@CFLAGS@
override CFLAGS+=-MMD ${$(*F)_CFLAGS}
CXX=@CXX@
CXXFLAGS=@CXXFLAGS@
+ifeq ($(CYGINLINE),1)
+override CXXFLAGS+=-finline-functions
+endif
AR:=@AR@
AR_FLAGS:=qv
diff --git a/winsup/cygwin/autoload.cc b/winsup/cygwin/autoload.cc
index 1ea024d63..aafa40418 100644
--- a/winsup/cygwin/autoload.cc
+++ b/winsup/cygwin/autoload.cc
@@ -58,7 +58,7 @@ details. */
#define LoadDLLprime(dllname, init_also) __asm__ (" \n\
.section ." #dllname "_info,\"w\" \n\
.linkonce \n\
- .long std_dll_init \n\
+ .long _std_dll_init \n\
.long 0 \n\
.long -1 \n\
.long " #init_also " \n\
@@ -201,8 +201,7 @@ union retchain
};
/* The standard DLL initialization routine. */
-static long long std_dll_init () __asm__ ("std_dll_init") __attribute__ ((unused));
-static long long
+__attribute__ ((used, noinline)) static long long
std_dll_init ()
{
HANDLE h;
@@ -241,9 +240,8 @@ std_dll_init ()
}
/* Initialization function for winsock stuff. */
-static long long wsock_init () __asm__ ("wsock_init") __attribute__ ((unused, regparm(1)));
bool NO_COPY wsock_started = 0;
-static long long
+__attribute__ ((used, noinline, regparm(1))) static long long
wsock_init ()
{
static LONG NO_COPY here = -1L;
@@ -304,8 +302,8 @@ wsock_init ()
return ret.ll;
}
-LoadDLLprime (wsock32, wsock_init)
-LoadDLLprime (ws2_32, wsock_init)
+LoadDLLprime (wsock32, _wsock_init)
+LoadDLLprime (ws2_32, _wsock_init)
LoadDLLfunc (AccessCheck, 32, advapi32)
LoadDLLfunc (AddAccessAllowedAce, 16, advapi32)
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc
index 742aa68b0..ec4b7f4c9 100644
--- a/winsup/cygwin/exceptions.cc
+++ b/winsup/cygwin/exceptions.cc
@@ -1203,12 +1203,10 @@ reset_signal_arrived ()
sigproc_printf ("reset signal_arrived");
}
-static void unused_sig_wrapper () __attribute__((const, unused));
-
#undef errno
#define errno ((DWORD volatile) _impure_ptr) + (((char *) &_impure_ptr->_errno) - ((char *) _impure_ptr))
-static void
+__attribute__((const, used, noinline)) static void
unused_sig_wrapper ()
{
/* Signal cleanup stuff. Cleans up stack (too bad that we didn't
diff --git a/winsup/cygwin/grp.cc b/winsup/cygwin/grp.cc
index a0d73ae26..73a2b89a5 100644
--- a/winsup/cygwin/grp.cc
+++ b/winsup/cygwin/grp.cc
@@ -108,6 +108,22 @@ pwdgrp::read_group ()
return;
}
+pwdgrp::pwdgrp (passwd *&pbuf) :
+ pwdgrp_buf_elem_size (sizeof (*pbuf)), passwd_buf (&pbuf)
+{
+ read = &pwdgrp::read_passwd;
+ parse = &pwdgrp::parse_passwd;
+ new_muto (pglock);
+}
+
+pwdgrp::pwdgrp (__group32 *&gbuf) :
+ pwdgrp_buf_elem_size (sizeof (*gbuf)), group_buf (&gbuf)
+{
+ read = &pwdgrp::read_group;
+ parse = &pwdgrp::parse_group;
+ new_muto (pglock);
+}
+
struct __group32 *
internal_getgrsid (cygpsid &sid)
{
diff --git a/winsup/cygwin/pwdgrp.h b/winsup/cygwin/pwdgrp.h
index 2b1e350a1..b9093d8fc 100644
--- a/winsup/cygwin/pwdgrp.h
+++ b/winsup/cygwin/pwdgrp.h
@@ -77,18 +77,6 @@ public:
pglock->release ();
}
- inline pwdgrp (passwd *&pbuf) :
- pwdgrp_buf_elem_size (sizeof (*pbuf)), passwd_buf (&pbuf)
- {
- read = &pwdgrp::read_passwd;
- parse = &pwdgrp::parse_passwd;
- new_muto (pglock);
- }
- inline pwdgrp (__group32 *&gbuf) :
- pwdgrp_buf_elem_size (sizeof (*gbuf)), group_buf (&gbuf)
- {
- read = &pwdgrp::read_group;
- parse = &pwdgrp::parse_group;
- new_muto (pglock);
- }
+ pwdgrp (passwd *&pbuf);
+ pwdgrp (__group32 *&gbuf);
};