Update.
authorUlrich Drepper <drepper@redhat.com>
Sun, 7 Apr 2002 19:46:16 +0000 (19:46 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sun, 7 Apr 2002 19:46:16 +0000 (19:46 +0000)
* nss/getXXbyYY_r.c: If NSS_attribute_hidden is defined use it with the
DB_LOOKUP_FCT prototype.
* nss/getXXent_r.c: Likewise.
* inet/getaliasent_r.c: Define NSS_attribute_hidden.
* inet/getaliasname_r.c: Likewise.
* inet/getnetbyad_r.c: Likewise.
* inet/getnetbynm_r.c: Likewise.
* inet/getnetent_r.c: Likewise.
* inet/getproto_r.c: Likewise.
* inet/getprtent_r.c: Likewise.
* inet/getprtname_r.c: Likewise.
* inet/getrpcbyname_r.c: Likewise.
* inet/getrpcbynumber_r.c: Likewise.
* inet/getrpcent_r.c: Likewise.
* inet/getservent_r.c: Likewise.
* inet/getsrvbynm_r.c: Likewise.
* inet/getsrvbypt_r.c: Likewise.
* shadow/getspent_r.c: Likewise.
* shadow/getspnam_r.c: Likewise.

* malloc/thread-m.h: Define __libc_tsd_MALLOC_data as static.

* sysdeps/i386/elf/bsd-setjmp.S: Use GOTOFF for __sigjmp_save access.
Use i686-friendly PIC code.
* sysdeps/i386/elf/setjmp.S: Likewise.

* sysdeps/unix/sysv/linux/i386/sysdep.h: Use i686-friendly PIC code.

23 files changed:
ChangeLog
inet/getaliasent_r.c
inet/getaliasname_r.c
inet/getnetbyad_r.c
inet/getnetbynm_r.c
inet/getnetent_r.c
inet/getproto_r.c
inet/getprtent_r.c
inet/getprtname_r.c
inet/getrpcbyname_r.c
inet/getrpcbynumber_r.c
inet/getrpcent_r.c
inet/getservent_r.c
inet/getsrvbynm_r.c
inet/getsrvbypt_r.c
malloc/thread-m.h
nss/getXXbyYY_r.c
nss/getXXent_r.c
shadow/getspent_r.c
shadow/getspnam_r.c
sysdeps/i386/elf/bsd-setjmp.S
sysdeps/i386/elf/setjmp.S
sysdeps/unix/sysv/linux/i386/sysdep.h

index 6746a8c..e333046 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,33 @@
 2002-04-07  Ulrich Drepper  <drepper@redhat.com>
 
+       * nss/getXXbyYY_r.c: If NSS_attribute_hidden is defined use it with the
+       DB_LOOKUP_FCT prototype.
+       * nss/getXXent_r.c: Likewise.
+       * inet/getaliasent_r.c: Define NSS_attribute_hidden.
+       * inet/getaliasname_r.c: Likewise.
+       * inet/getnetbyad_r.c: Likewise.
+       * inet/getnetbynm_r.c: Likewise.
+       * inet/getnetent_r.c: Likewise.
+       * inet/getproto_r.c: Likewise.
+       * inet/getprtent_r.c: Likewise.
+       * inet/getprtname_r.c: Likewise.
+       * inet/getrpcbyname_r.c: Likewise.
+       * inet/getrpcbynumber_r.c: Likewise.
+       * inet/getrpcent_r.c: Likewise.
+       * inet/getservent_r.c: Likewise.
+       * inet/getsrvbynm_r.c: Likewise.
+       * inet/getsrvbypt_r.c: Likewise.
+       * shadow/getspent_r.c: Likewise.
+       * shadow/getspnam_r.c: Likewise.
+
+       * malloc/thread-m.h: Define __libc_tsd_MALLOC_data as static.
+
+       * sysdeps/i386/elf/bsd-setjmp.S: Use GOTOFF for __sigjmp_save access.
+       Use i686-friendly PIC code.
+       * sysdeps/i386/elf/setjmp.S: Likewise.
+
+       * sysdeps/unix/sysv/linux/i386/sysdep.h: Use i686-friendly PIC code.
+
        * sysdeps/mach/hurd/Versions: Add _dl_init_first to libc and ld export
        list.
        * elf/Versions: Remove it here.
index 0361244..6bb0e15 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
 #include <aliases.h>
 
 
-#define LOOKUP_TYPE    struct aliasent
-#define SETFUNC_NAME   setaliasent
-#define        GETFUNC_NAME    getaliasent
-#define        ENDFUNC_NAME    endaliasent
-#define DATABASE_NAME  aliases
+#define LOOKUP_TYPE            struct aliasent
+#define SETFUNC_NAME           setaliasent
+#define        GETFUNC_NAME            getaliasent
+#define        ENDFUNC_NAME            endaliasent
+#define DATABASE_NAME          aliases
+#define NSS_attribute_hidden   attribute_hidden
 
 #include "../nss/getXXent_r.c"
index c10e4ef..73078fa 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
 #include <aliases.h>
 
 
-#define LOOKUP_TYPE    struct aliasent
-#define FUNCTION_NAME  getaliasbyname
-#define DATABASE_NAME  aliases
-#define ADD_PARAMS     const char *name
-#define ADD_VARIABLES  name
+#define LOOKUP_TYPE            struct aliasent
+#define FUNCTION_NAME          getaliasbyname
+#define DATABASE_NAME          aliases
+#define ADD_PARAMS             const char *name
+#define ADD_VARIABLES          name
+#define NSS_attribute_hidden   attribute_hidden
 
 #include "../nss/getXXbyYY_r.c"
index b81481c..4d41786 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 2000, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
 #include <stdint.h>
 
 
-#define LOOKUP_TYPE    struct netent
-#define FUNCTION_NAME  getnetbyaddr
-#define DATABASE_NAME  networks
-#define ADD_PARAMS     uint32_t net, int type
-#define ADD_VARIABLES  net, type
-#define NEED__RES      1
-#define NEED_H_ERRNO   1
+#define LOOKUP_TYPE            struct netent
+#define FUNCTION_NAME          getnetbyaddr
+#define DATABASE_NAME          networks
+#define ADD_PARAMS             uint32_t net, int type
+#define ADD_VARIABLES          net, type
+#define NEED__RES              1
+#define NEED_H_ERRNO           1
+#define NSS_attribute_hidden   attribute_hidden
 
 #include "../nss/getXXbyYY_r.c"
index 7685e95..0b7f273 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
 #include <netdb.h>
 
 
-#define LOOKUP_TYPE    struct netent
-#define FUNCTION_NAME  getnetbyname
-#define DATABASE_NAME  networks
-#define ADD_PARAMS     const char *name
-#define ADD_VARIABLES  name
-#define NEED__RES      1
-#define NEED_H_ERRNO   1
+#define LOOKUP_TYPE            struct netent
+#define FUNCTION_NAME          getnetbyname
+#define DATABASE_NAME          networks
+#define ADD_PARAMS             const char *name
+#define ADD_VARIABLES          name
+#define NEED__RES              1
+#define NEED_H_ERRNO           1
+#define NSS_attribute_hidden   attribute_hidden
 
 #include "../nss/getXXbyYY_r.c"
index 7cdede2..7657d51 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
 #include <netdb.h>
 
 
-#define LOOKUP_TYPE    struct netent
-#define SETFUNC_NAME   setnetent
-#define        GETFUNC_NAME    getnetent
-#define        ENDFUNC_NAME    endnetent
-#define DATABASE_NAME  networks
-#define STAYOPEN       int stayopen
-#define STAYOPEN_VAR   stayopen
-#define NEED__RES      1
-#define NEED_H_ERRNO   1
+#define LOOKUP_TYPE            struct netent
+#define SETFUNC_NAME           setnetent
+#define        GETFUNC_NAME            getnetent
+#define        ENDFUNC_NAME            endnetent
+#define DATABASE_NAME          networks
+#define STAYOPEN               int stayopen
+#define STAYOPEN_VAR           stayopen
+#define NEED__RES              1
+#define NEED_H_ERRNO           1
+#define NSS_attribute_hidden   attribute_hidden
 
 #include "../nss/getXXent_r.c"
index ec57a14..66432a7 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
 #include <netdb.h>
 
 
-#define LOOKUP_TYPE    struct protoent
-#define FUNCTION_NAME  getprotobynumber
-#define DATABASE_NAME  protocols
-#define ADD_PARAMS     int proto
-#define ADD_VARIABLES  proto
+#define LOOKUP_TYPE            struct protoent
+#define FUNCTION_NAME          getprotobynumber
+#define DATABASE_NAME          protocols
+#define ADD_PARAMS             int proto
+#define ADD_VARIABLES          proto
+#define NSS_attribute_hidden   attribute_hidden
 
 #include "../nss/getXXbyYY_r.c"
index 2350c25..ce502bb 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
 #include <netdb.h>
 
 
-#define LOOKUP_TYPE    struct protoent
-#define SETFUNC_NAME   setprotoent
-#define        GETFUNC_NAME    getprotoent
-#define        ENDFUNC_NAME    endprotoent
-#define DATABASE_NAME  protocols
-#define STAYOPEN       int stayopen
-#define STAYOPEN_VAR   stayopen
+#define LOOKUP_TYPE            struct protoent
+#define SETFUNC_NAME           setprotoent
+#define        GETFUNC_NAME            getprotoent
+#define        ENDFUNC_NAME            endprotoent
+#define DATABASE_NAME          protocols
+#define STAYOPEN               int stayopen
+#define STAYOPEN_VAR           stayopen
+#define NSS_attribute_hidden   attribute_hidden
 
 #include "../nss/getXXent_r.c"
index cac6607..579f255 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
 #include <netdb.h>
 
 
-#define LOOKUP_TYPE    struct protoent
-#define FUNCTION_NAME  getprotobyname
-#define DATABASE_NAME  protocols
-#define ADD_PARAMS     const char *name
-#define ADD_VARIABLES  name
+#define LOOKUP_TYPE            struct protoent
+#define FUNCTION_NAME          getprotobyname
+#define DATABASE_NAME          protocols
+#define ADD_PARAMS             const char *name
+#define ADD_VARIABLES          name
+#define NSS_attribute_hidden   attribute_hidden
 
 #include "../nss/getXXbyYY_r.c"
index e7328c7..e28e59e 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
 #include <rpc/netdb.h>
 
 
-#define LOOKUP_TYPE    struct rpcent
-#define FUNCTION_NAME  getrpcbyname
-#define DATABASE_NAME  rpc
-#define ADD_PARAMS     const char *name
-#define ADD_VARIABLES  name
+#define LOOKUP_TYPE            struct rpcent
+#define FUNCTION_NAME          getrpcbyname
+#define DATABASE_NAME          rpc
+#define ADD_PARAMS             const char *name
+#define ADD_VARIABLES          name
+#define NSS_attribute_hidden   attribute_hidden
 
 #include "../nss/getXXbyYY_r.c"
index a30a839..73e6c50 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
 #include <rpc/netdb.h>
 
 
-#define LOOKUP_TYPE    struct rpcent
-#define FUNCTION_NAME  getrpcbynumber
-#define DATABASE_NAME  rpc
-#define ADD_PARAMS     int number
-#define ADD_VARIABLES  number
+#define LOOKUP_TYPE            struct rpcent
+#define FUNCTION_NAME          getrpcbynumber
+#define DATABASE_NAME          rpc
+#define ADD_PARAMS             int number
+#define ADD_VARIABLES          number
+#define NSS_attribute_hidden   attribute_hidden
 
 #include "../nss/getXXbyYY_r.c"
index 7f8d55e..aa0817d 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
 #include <netdb.h>
 
 
-#define LOOKUP_TYPE    struct rpcent
-#define SETFUNC_NAME   setrpcent
-#define        GETFUNC_NAME    getrpcent
-#define        ENDFUNC_NAME    endrpcent
-#define DATABASE_NAME  rpc
-#define STAYOPEN       int stayopen
-#define STAYOPEN_VAR   stayopen
+#define LOOKUP_TYPE            struct rpcent
+#define SETFUNC_NAME           setrpcent
+#define        GETFUNC_NAME            getrpcent
+#define        ENDFUNC_NAME            endrpcent
+#define DATABASE_NAME          rpc
+#define STAYOPEN               int stayopen
+#define STAYOPEN_VAR           stayopen
+#define NSS_attribute_hidden   attribute_hidden
 
 #include "../nss/getXXent_r.c"
index b762421..25cbf32 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
 #include <netdb.h>
 
 
-#define LOOKUP_TYPE    struct servent
-#define SETFUNC_NAME   setservent
-#define        GETFUNC_NAME    getservent
-#define        ENDFUNC_NAME    endservent
-#define DATABASE_NAME  services
-#define STAYOPEN       int stayopen
-#define STAYOPEN_VAR   stayopen
+#define LOOKUP_TYPE            struct servent
+#define SETFUNC_NAME           setservent
+#define        GETFUNC_NAME            getservent
+#define        ENDFUNC_NAME            endservent
+#define DATABASE_NAME          services
+#define STAYOPEN               int stayopen
+#define STAYOPEN_VAR           stayopen
+#define NSS_attribute_hidden   attribute_hidden
 
 #include "../nss/getXXent_r.c"
index b36dd4c..cb716eb 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
 #include <netdb.h>
 
 
-#define LOOKUP_TYPE    struct servent
-#define FUNCTION_NAME  getservbyname
-#define DATABASE_NAME  services
-#define ADD_PARAMS     const char *name, const char *proto
-#define ADD_VARIABLES  name, proto
+#define LOOKUP_TYPE            struct servent
+#define FUNCTION_NAME          getservbyname
+#define DATABASE_NAME          services
+#define ADD_PARAMS             const char *name, const char *proto
+#define ADD_VARIABLES          name, proto
+#define NSS_attribute_hidden   attribute_hidden
 
 #include "../nss/getXXbyYY_r.c"
index d86a70b..bbba6b0 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
 #include <netdb.h>
 
 
-#define LOOKUP_TYPE    struct servent
-#define FUNCTION_NAME  getservbyport
-#define DATABASE_NAME  services
-#define ADD_PARAMS     int port, const char *proto
-#define ADD_VARIABLES  port, proto
+#define LOOKUP_TYPE            struct servent
+#define FUNCTION_NAME          getservbyport
+#define DATABASE_NAME          services
+#define ADD_PARAMS             int port, const char *proto
+#define ADD_VARIABLES          port, proto
+#define NSS_attribute_hidden   attribute_hidden
 
 #include "../nss/getXXbyYY_r.c"
index 9cbfb49..3fec10a 100644 (file)
@@ -1,6 +1,6 @@
 /* Basic platform-independent macro definitions for mutexes and
    thread-specific data.
-   Copyright (C) 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1996,1997,1998,2000,2001,2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Wolfram Gloger <wg@malloc.de>, 2001.
 
@@ -103,7 +103,7 @@ typedef pthread_mutex_t     mutex_t;
 #include <bits/libc-tsd.h>
 
 typedef int tsd_key_t[1];      /* no key data structure, libc magic does it */
-__libc_tsd_define (, MALLOC)   /* declaration/common definition */
+__libc_tsd_define (static, MALLOC)     /* declaration/common definition */
 #define tsd_key_create(key, destr)     ((void) (key))
 #define tsd_setspecific(key, data)     __libc_tsd_set (MALLOC, (data))
 #define tsd_getspecific(key, vptr)     ((vptr) = __libc_tsd_get (MALLOC))
index ecd28ad..12d3cd6 100644 (file)
 # define AF_VAR_P NULL
 #endif
 
+#ifndef NSS_attribute_hidden
+# define NSS_attribute_hidden
+#endif
+
 /* Type of the lookup function we need here.  */
 typedef enum nss_status (*lookup_function) (ADD_PARAMS, LOOKUP_TYPE *, char *,
                                            size_t, int * H_ERRNO_PARM);
 
 /* The lookup function for the first entry of this service.  */
 extern int DB_LOOKUP_FCT (service_user **nip, const char *name, void **fctp)
-     internal_function;
+     internal_function NSS_attribute_hidden;
 
 /* Interval in which we transfer retry to contact the NSCD.  */
 #define NSS_NSCD_RETRY 100
index e1a2236..c2ea5b5 100644 (file)
 # define NEED__RES 0
 #endif
 
+#ifndef NSS_attribute_hidden
+# define NSS_attribute_hidden
+#endif
+
 /* This handle for the NSS data base is shared between all
    set/get/endXXXent functions.  */
 static service_user *nip;
@@ -112,7 +116,7 @@ __libc_lock_define_initialized (static, lock)
 
 /* The lookup function for the first entry of this service.  */
 extern int DB_LOOKUP_FCT (service_user **nip, const char *name, void **fctp)
-     internal_function;
+     internal_function NSS_attribute_hidden;
 \f
 void
 SETFUNC_NAME (STAYOPEN)
index ad1bd03..074b5cd 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
 #include <shadow.h>
 
 
-#define LOOKUP_TYPE    struct spwd
-#define SETFUNC_NAME   setspent
-#define        GETFUNC_NAME    getspent
-#define        ENDFUNC_NAME    endspent
-#define DATABASE_NAME  shadow
-#define BUFLEN         1024
+#define LOOKUP_TYPE            struct spwd
+#define SETFUNC_NAME           setspent
+#define        GETFUNC_NAME            getspent
+#define        ENDFUNC_NAME            endspent
+#define DATABASE_NAME          shadow
+#define BUFLEN                 1024
+#define NSS_attribute_hidden   attribute_hidden
 
 #include "../nss/getXXent_r.c"
index bb7fcfa..fe1428d 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
 #include <shadow.h>
 
 
-#define LOOKUP_TYPE    struct spwd
-#define FUNCTION_NAME  getspnam
-#define DATABASE_NAME  shadow
-#define ADD_PARAMS     const char *name
-#define ADD_VARIABLES  name
-#define BUFLEN         1024
+#define LOOKUP_TYPE            struct spwd
+#define FUNCTION_NAME          getspnam
+#define DATABASE_NAME          shadow
+#define ADD_PARAMS             const char *name
+#define ADD_VARIABLES          name
+#define BUFLEN                 1024
+#define NSS_attribute_hidden   attribute_hidden
 
 #include "../nss/getXXbyYY_r.c"
index 690dcb1..c1a833a 100644 (file)
@@ -1,5 +1,5 @@
 /* BSD `setjmp' entry point to `sigsetjmp (..., 1)'.  i386 version.
-   Copyright (C) 1995, 1996, 1997, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1995,1996,1997,2000,2001,2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -56,10 +56,9 @@ ENTRY (BP_SYM (setjmp))
            we can't save and restore our caller's value.  Instead, we do an
            indirect jump through the GOT, using for the temporary register
            %ecx, which is call-clobbered.  */
-       call here2
-here2: popl %ecx
-       addl $_GLOBAL_OFFSET_TABLE_+[.-here2], %ecx
-       movl C_SYMBOL_NAME (BP_SYM (__sigjmp_save)@GOT)(%ecx), %ecx
+       call 1f
+       addl $_GLOBAL_OFFSET_TABLE_, %ecx
+       leal C_SYMBOL_NAME (BP_SYM (__sigjmp_save)@GOTOFF)(%ecx), %ecx
        call *%ecx
 #else
        call BP_SYM (__sigjmp_save)
@@ -67,4 +66,8 @@ here2:        popl %ecx
        popl %ecx
        popl %edx
        ret
+#ifdef PIC
+1:     movl (%esp), %ecx
+       ret
+#endif
 END (BP_SYM (setjmp))
index 6e1df17..3f52195 100644 (file)
@@ -1,5 +1,5 @@
 /* setjmp for i386, ELF version.
-   Copyright (C) 1995, 1996, 1997, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1995,1996,1997,2000,2001,2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -51,12 +51,12 @@ ENTRY (BP_SYM (__sigsetjmp))
            we can't save and restore our caller's value.  Instead, we do an
            indirect jump through the GOT, using for the temporary register
            %ecx, which is call-clobbered.  */
-       call L(here)
-L(here):
-       popl %ecx
-       addl $_GLOBAL_OFFSET_TABLE_+[.-L(here)], %ecx
-       movl C_SYMBOL_NAME (BP_SYM (__sigjmp_save)@GOT)(%ecx), %ecx
+       call 1f
+       addl $_GLOBAL_OFFSET_TABLE_, %ecx
+       leal C_SYMBOL_NAME (BP_SYM (__sigjmp_save)@GOTOFF)(%ecx), %ecx
        jmp *%ecx
+1:     movl (%esp), %ecx
+       ret
 #else
        jmp BP_SYM (__sigjmp_save)
 #endif
index 884dbd5..2cc39d6 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 93, 95, 96, 97, 98, 99, 00 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1993, 1995-2000, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper, <drepper@gnu.org>, August 1995.
 
 #define SYSCALL_ERROR_HANDLER                                                \
 0:pushl %ebx;                                                                \
   call 1f;                                                                   \
-1:popl %ebx;                                                                 \
+  .subsection 1;                                                             \
+1:movl (%esp), %ebx;                                                         \
+  ret;                                                                       \
+  .previous;                                                                 \
+  addl $_GLOBAL_OFFSET_TABLE_, %ebx;                                         \
   xorl %edx, %edx;                                                           \
-  addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx;                                  \
   subl %eax, %edx;                                                           \
   pushl %edx;                                                                \
   PUSH_ERRNO_LOCATION_RETURN;                                                \
 #else
 #define SYSCALL_ERROR_HANDLER                                                \
 0:call 1f;                                                                   \
-1:popl %ecx;                                                                 \
+  .subsection 1;                                                             \
+1:movl (%esp), %ecx;                                                         \
+  ret;                                                                       \
+  .previous;                                                                 \
+  addl $_GLOBAL_OFFSET_TABLE_, %ecx;                                         \
   xorl %edx, %edx;                                                           \
-  addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ecx;                                  \
   subl %eax, %edx;                                                           \
   movl errno@GOT(%ecx), %ecx;                                                \
   movl %edx, (%ecx);                                                         \