From bdc00a0d8500ee9a3d528188e766a8a38e66a1df Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Mon, 16 May 2011 15:12:35 +0000 Subject: [PATCH] * cygtls.h (struct _local_storage): Remove unused members rarg and _localtime_buf. Remove username in favor of a global buffer. Reorder slightly to keep the net.cc stuff together. * globals.cc (__getlogin_username): New global char buffer. * tlsoffsets.h: Regenerate. * uinfo.cc (getlogin): Copy username into __getlogin_username. --- winsup/cygwin/ChangeLog | 9 +++++ winsup/cygwin/cygtls.h | 12 ++---- winsup/cygwin/globals.cc | 3 ++ winsup/cygwin/tlsoffsets.h | 82 +++++++++++++++++++------------------- winsup/cygwin/uinfo.cc | 2 +- 5 files changed, 57 insertions(+), 51 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 28188c204..a75f54caa 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,12 @@ +2011-05-16 Corinna Vinschen + + * cygtls.h (struct _local_storage): Remove unused members rarg and + _localtime_buf. Remove username in favor of a global buffer. Reorder + slightly to keep the net.cc stuff together. + * globals.cc (__getlogin_username): New global char buffer. + * tlsoffsets.h: Regenerate. + * uinfo.cc (getlogin): Copy username into __getlogin_username. + 2011-05-16 Corinna Vinschen * heap.cc (heap_init): Rewrite initial heap allocation to use addresses diff --git a/winsup/cygwin/cygtls.h b/winsup/cygwin/cygtls.h index 4715d37b4..4d4306b33 100644 --- a/winsup/cygwin/cygtls.h +++ b/winsup/cygwin/cygtls.h @@ -1,6 +1,6 @@ /* cygtls.h - Copyright 2003, 2004, 2005, 2008, 2009, 2010 Red Hat, Inc. + Copyright 2003, 2004, 2005, 2008, 2009, 2010, 2011 Red Hat, Inc. This software is a copyrighted work licensed under the terms of the Cygwin license. Please consult the file "CYGWIN_LICENSE" for @@ -82,9 +82,6 @@ struct _local_storage char *namearray[2]; int grp_pos; - /* console.cc */ - unsigned rarg; - /* dlfcn.cc */ int dl_error; char dl_buffer[256]; @@ -116,15 +113,12 @@ struct _local_storage /* times.cc */ char timezone_buf[20]; - struct tm _localtime_buf; - /* uinfo.cc */ - char username[UNLEN + 1]; + /* strsig.cc */ + char signamebuf[sizeof ("Unknown signal 4294967295 ")]; /* net.cc */ char *ntoa_buf; // note: malloced - char signamebuf[sizeof ("Unknown signal 4294967295 ")]; - unionent *hostent_buf; // note: malloced unionent *protoent_buf; // note: malloced unionent *servent_buf; // note: malloced diff --git a/winsup/cygwin/globals.cc b/winsup/cygwin/globals.cc index f27429c6b..68bd5519c 100644 --- a/winsup/cygwin/globals.cc +++ b/winsup/cygwin/globals.cc @@ -56,6 +56,9 @@ bool display_title; bool strip_title_path; bool allow_glob = true; +/* Static getlogin buffer. */ +char __getlogin_username[UNLEN + 1]; + bool NO_COPY in_forkee; int __argc_safe; diff --git a/winsup/cygwin/tlsoffsets.h b/winsup/cygwin/tlsoffsets.h index 72d4dca9e..4e459dfdb 100644 --- a/winsup/cygwin/tlsoffsets.h +++ b/winsup/cygwin/tlsoffsets.h @@ -1,6 +1,6 @@ //;# autogenerated: Do not edit. -//; $tls::sizeof__cygtls = 4288; +//; $tls::sizeof__cygtls = 3984; //; $tls::func = -12700; //; $tls::pfunc = 0; //; $tls::saved_errno = -12696; @@ -37,26 +37,26 @@ //; $tls::p__dontuse = 412; //; $tls::locals = -11200; //; $tls::plocals = 1500; -//; $tls::_ctinfo = -9496; -//; $tls::p_ctinfo = 3204; -//; $tls::andreas = -9492; -//; $tls::pandreas = 3208; -//; $tls::wq = -9488; -//; $tls::pwq = 3212; -//; $tls::sig = -9460; -//; $tls::psig = 3240; -//; $tls::incyg = -9456; -//; $tls::pincyg = 3244; -//; $tls::spinning = -9452; -//; $tls::pspinning = 3248; -//; $tls::stacklock = -9448; -//; $tls::pstacklock = 3252; -//; $tls::stackptr = -9444; -//; $tls::pstackptr = 3256; -//; $tls::stack = -9440; -//; $tls::pstack = 3260; -//; $tls::initialized = -8416; -//; $tls::pinitialized = 4284; +//; $tls::_ctinfo = -9800; +//; $tls::p_ctinfo = 2900; +//; $tls::andreas = -9796; +//; $tls::pandreas = 2904; +//; $tls::wq = -9792; +//; $tls::pwq = 2908; +//; $tls::sig = -9764; +//; $tls::psig = 2936; +//; $tls::incyg = -9760; +//; $tls::pincyg = 2940; +//; $tls::spinning = -9756; +//; $tls::pspinning = 2944; +//; $tls::stacklock = -9752; +//; $tls::pstacklock = 2948; +//; $tls::stackptr = -9748; +//; $tls::pstackptr = 2952; +//; $tls::stack = -9744; +//; $tls::pstack = 2956; +//; $tls::initialized = -8720; +//; $tls::pinitialized = 3980; //; __DATA__ #define tls_func (-12700) @@ -95,23 +95,23 @@ #define tls_p__dontuse (412) #define tls_locals (-11200) #define tls_plocals (1500) -#define tls__ctinfo (-9496) -#define tls_p_ctinfo (3204) -#define tls_andreas (-9492) -#define tls_pandreas (3208) -#define tls_wq (-9488) -#define tls_pwq (3212) -#define tls_sig (-9460) -#define tls_psig (3240) -#define tls_incyg (-9456) -#define tls_pincyg (3244) -#define tls_spinning (-9452) -#define tls_pspinning (3248) -#define tls_stacklock (-9448) -#define tls_pstacklock (3252) -#define tls_stackptr (-9444) -#define tls_pstackptr (3256) -#define tls_stack (-9440) -#define tls_pstack (3260) -#define tls_initialized (-8416) -#define tls_pinitialized (4284) +#define tls__ctinfo (-9800) +#define tls_p_ctinfo (2900) +#define tls_andreas (-9796) +#define tls_pandreas (2904) +#define tls_wq (-9792) +#define tls_pwq (2908) +#define tls_sig (-9764) +#define tls_psig (2936) +#define tls_incyg (-9760) +#define tls_pincyg (2940) +#define tls_spinning (-9756) +#define tls_pspinning (2944) +#define tls_stacklock (-9752) +#define tls_pstacklock (2948) +#define tls_stackptr (-9748) +#define tls_pstackptr (2952) +#define tls_stack (-9744) +#define tls_pstack (2956) +#define tls_initialized (-8720) +#define tls_pinitialized (3980) diff --git a/winsup/cygwin/uinfo.cc b/winsup/cygwin/uinfo.cc index dd87bd5f0..ff96fcc7f 100644 --- a/winsup/cygwin/uinfo.cc +++ b/winsup/cygwin/uinfo.cc @@ -201,7 +201,7 @@ getlogin_r (char *name, size_t namesize) extern "C" char * getlogin (void) { - return strcpy (_my_tls.locals.username, cygheap->user.name ()); + return strcpy (__getlogin_username, cygheap->user.name ()); } extern "C" __uid32_t