diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index f13513b5c..0cfc97628 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,20 @@ +2003-04-17 Thomas Pfaff + + * 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 * thread.h (pthread::equal): New static method. 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); };