* 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.
This commit is contained in:
Ulrich Drepper 2002-04-07 19:46:16 +00:00
parent af5fac2f3b
commit b44e30163d
23 changed files with 193 additions and 132 deletions

View File

@ -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.

View 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.
@ -20,10 +20,11 @@
#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"

View 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.
@ -20,10 +20,11 @@
#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"

View 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.
@ -21,12 +21,13 @@
#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"

View 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.
@ -20,12 +20,13 @@
#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"

View 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
@ -19,14 +19,15 @@
#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"

View 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.
@ -20,10 +20,11 @@
#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"

View 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
@ -19,12 +19,13 @@
#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"

View 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.
@ -20,10 +20,11 @@
#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"

View 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.
@ -20,10 +20,11 @@
#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"

View 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.
@ -20,10 +20,11 @@
#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"

View 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
@ -19,12 +19,13 @@
#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"

View 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
@ -19,12 +19,13 @@
#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"

View 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.
@ -20,10 +20,11 @@
#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"

View 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.
@ -20,10 +20,11 @@
#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"

View 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))

View File

@ -107,13 +107,17 @@
# 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

View File

@ -92,6 +92,10 @@
# 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;
void
SETFUNC_NAME (STAYOPEN)

View 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.
@ -20,11 +20,12 @@
#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"

View 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.
@ -20,11 +20,12 @@
#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"

View 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))

View 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

View 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.
@ -79,9 +79,12 @@
#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; \
@ -97,9 +100,12 @@
#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); \