Mon Aug 12 03:31:58 1996  Ulrich Drepper  <drepper@cygnus.com>

	* nss/nsswitch.c (__nss_configure_lookup):  New function.
	Allows to specify services.
	* nss/XXX-lookup.h: Rename database variable and make global.
	* nss/databases.def: New file.  Real names of all databases.

	* nss/nss.h: New file.  Contains declaration useful for users
	and service developers.
	* nss/nsswitch.h: Move some declarations to nss/nss.h.
	* nss.h: New file.  Wrapper around nss/nss.h.

	* nss/Makefile (headers): Add nss.h.
	(distributes): Add databases.h.

Sun Aug 11 16:19:42 1996  Ulrich Drepper  <drepper@cygnus.com>

	Help the poor people with fast machines by making sure only
	one `ar' commands works on the library.
	* autolock.sh: New file.  Written by Tom Tromey.
	* Makerules (do-ar): Call autolock.sh shell script instead of
	directly using `ar'.
	* config.make.in: Make configuration variable AUTOLOCK which
	gets initialized by configure.
	* configure.in: Define variable AUTOLOCK to point to autolock.sh
	script and mark it to substitute.

	* string/Makefile: Add -fno-builtin for tst-strlen.c, too.

	* elf/dl-lookup.c (_dl_lookup_symbol): Allow self-referencing.
	Patch by David Mosberger-Tang.

Sun Aug 11 01:12:38 1996  Richard Henderson  <rth@tamu.edu>

	* sysdeps/alpha/dl-machine.h (elf_alpha_fix_plt): Optimize LD_BIND_NOW
	startup by moving Icache flush from here ...
	(ELF_MACHINE_RUNTIME_TRAMPOLINE): ... to here.
	(ELF_MACHINE_USER_ADDRESS_MASK): Delete; it is unused.

	* sysdeps/alpha/divrem.h: Update comment to reflect the actual
	calling conventions.  The code is already correct.

Sun Aug 11 01:06:42 1996  Richard Henderson  <rth@tamu.edu>

	* string/Makefile: Compile tester with -fno-builtin as we want to
	test our implementations, not gcc's.
This commit is contained in:
Ulrich Drepper 1996-08-12 01:42:37 +00:00
parent 267ca16a67
commit a3e59be8d1
14 changed files with 141 additions and 61 deletions

View file

@ -1,3 +1,50 @@
Mon Aug 12 03:31:58 1996 Ulrich Drepper <drepper@cygnus.com>
* nss/nsswitch.c (__nss_configure_lookup): New function.
Allows to specify services.
* nss/XXX-lookup.h: Rename database variable and make global.
* nss/databases.def: New file. Real names of all databases.
* nss/nss.h: New file. Contains declaration useful for users
and service developers.
* nss/nsswitch.h: Move some declarations to nss/nss.h.
* nss.h: New file. Wrapper around nss/nss.h.
* nss/Makefile (headers): Add nss.h.
(distributes): Add databases.h.
Sun Aug 11 16:19:42 1996 Ulrich Drepper <drepper@cygnus.com>
Help the poor people with fast machines by making sure only
one `ar' commands works on the library.
* autolock.sh: New file. Written by Tom Tromey.
* Makerules (do-ar): Call autolock.sh shell script instead of
directly using `ar'.
* config.make.in: Make configuration variable AUTOLOCK which
gets initialized by configure.
* configure.in: Define variable AUTOLOCK to point to autolock.sh
script and mark it to substitute.
* string/Makefile: Add -fno-builtin for tst-strlen.c, too.
* elf/dl-lookup.c (_dl_lookup_symbol): Allow self-referencing.
Patch by David Mosberger-Tang.
Sun Aug 11 01:12:38 1996 Richard Henderson <rth@tamu.edu>
* sysdeps/alpha/dl-machine.h (elf_alpha_fix_plt): Optimize LD_BIND_NOW
startup by moving Icache flush from here ...
(ELF_MACHINE_RUNTIME_TRAMPOLINE): ... to here.
(ELF_MACHINE_USER_ADDRESS_MASK): Delete; it is unused.
* sysdeps/alpha/divrem.h: Update comment to reflect the actual
calling conventions. The code is already correct.
Sun Aug 11 01:06:42 1996 Richard Henderson <rth@tamu.edu>
* string/Makefile: Compile tester with -fno-builtin as we want to
test our implementations, not gcc's.
Sat Aug 10 13:17:27 1996 David Mosberger-Tang <davidm@azstarnet.com>
* shadow.h: New file.

View file

@ -77,6 +77,8 @@ contact <bug-glibc@prep.ai.mit.edu>
Usenix Winter '92, pp. 419--428
or just ask. Currently mostly i?86 optimized versions exist.
Alpha versions are on their way, so please ask before working
on this.
[ 8] Write nftw() function. Perhaps it might be good to reimplement the
@ -102,14 +104,10 @@ contact <bug-glibc@prep.ai.mit.edu>
implementation
c) will be extended with the current hooks and additional functions
Please contact bug-glibc@prep.ai.mit.edu before starting to avoid
duplicated work.
[12] Implement shadow password handling. There exist some but I don't
know of any falling under LGPL and where the author is willing to
contribute it to the FSF.
[13] Write access function for shadow, netmasks, bootparams, netgroup,
publickey, automount, aliases databases for nss_files and nss_db
module.
[12] Write access function for netmasks, bootparams, netgroup, publickey,
automount, aliases databases for nss_files and nss_db module.
The functions should be embedded in the nss scheme. This is not
hard and not all services must be supported at once.

17
configure vendored
View file

@ -1273,6 +1273,8 @@ else
fi
fi
AUTOLOCK="`(cd $srcdir; pwd)`/autolock.sh"
echo $ac_n "checking for signed size_t type""... $ac_c" 1>&6
if eval "test \"`echo '$''{'libc_cv_signed_size_t'+set}'`\" = set"; then
@ -1302,7 +1304,7 @@ if eval "test \"`echo '$''{'libc_cv_friendly_stddef'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1306 "configure"
#line 1308 "configure"
#include "confdefs.h"
#define __need_size_t
#define __need_wchar_t
@ -1318,7 +1320,7 @@ size_t size; wchar_t wchar;
if (&size == NULL || &wchar == NULL) abort ();
; return 0; }
EOF
if { (eval echo configure:1322: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:1324: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libc_cv_friendly_stddef=yes
else
@ -1425,7 +1427,7 @@ if eval "test \"`echo '$''{'libc_cv_have_initfini'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1429 "configure"
#line 1431 "configure"
#include "confdefs.h"
int main() { return 0; }
@ -1435,7 +1437,7 @@ asm (".section .init");
asm (".text");
; return 0; }
EOF
if { (eval echo configure:1439: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:1441: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libc_cv_have_initfini=yes
else
@ -1463,7 +1465,7 @@ if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1467 "configure"
#line 1469 "configure"
#include "confdefs.h"
asm ("_glibc_foobar:");
int main() { return 0; }
@ -1471,7 +1473,7 @@ int t() {
glibc_foobar ();
; return 0; }
EOF
if { (eval echo configure:1475: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
if { (eval echo configure:1477: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
rm -rf conftest*
libc_cv_asm_underscores=yes
else
@ -1563,7 +1565,7 @@ _start () {}
EOF
if { ac_try='${CC-cc} $CFLAGS
-nostdlib -nostartfiles -Wl,--no-whole-archive
-o conftest conftest.c'; { (eval echo configure:1567: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
-o conftest conftest.c'; { (eval echo configure:1569: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_ld_no_whole_archive=yes
else
libc_cv_ld_no_whole_archive=no
@ -1837,6 +1839,7 @@ s%@BUILD_CC@%$BUILD_CC%g
s%@CPP@%$CPP%g
s%@AR@%$AR%g
s%@RANLIB@%$RANLIB%g
s%@AUTOLOCK@%$AUTOLOCK%g
s%@libc_cv_have_initfini@%$libc_cv_have_initfini%g
s%@libc_cv_ld_no_whole_archive@%$libc_cv_ld_no_whole_archive%g
s%@uname_sysname@%$uname_sysname%g

View file

@ -333,6 +333,12 @@ extern int execvp __P ((__const char *__file, char *__const __argv[]));
extern int execlp __P ((__const char *__file, ...));
#ifdef __USE_MISC
/* Add INC to priority of the current process. */
extern int nice __P ((int __inc));
#endif
/* Terminate program execution with the low-order 8 bits of STATUS. */
extern void _exit __P ((int __status)) __attribute__ ((__noreturn__));

1
shadow.h Normal file
View file

@ -0,0 +1 @@
#include <shadow/shadow.h>

View file

@ -45,9 +45,11 @@ struct osockaddr
/* This is the type we use for generic socket address arguments.
With GCC 2.7 and later, the funky union causes redeclarations or uses with
any of the listed types to be allowed without complaint. */
#if (!defined (__GNUC__) || __GNUC__ < 2 || \
With GCC 2.7 and later, the funky union causes redeclarations or
uses with any of the listed types to be allowed without complaint.
G++ 2.7 does not support transparent unions so there we want the
old-style declaration, too. */
#if (!defined (__GNUC__) || __GNUC__ < 2 || defined(__cplusplus) || \
(__GNUC__ == 2 && __GNUC_MINOR__ < 7))
#define __SOCKADDR_ARG struct sockaddr *
#define __CONST_SOCKADDR_ARG __const struct sockaddr *

View file

@ -20,9 +20,11 @@ Cambridge, MA 02139, USA. */
#include <sysdep.h>
.text
.globl __start
.globl _start /* what ELF wants */
.globl __start /* for backwards (ECOFF) comatibility */
.align 3
.ent __start, 0
_start:
__start:
.frame fp, 0, zero
mov zero, fp

View file

@ -44,6 +44,9 @@ DEFUN(ttyname, (fd), int fd)
struct dirent *d;
int save = errno;
if (!__isatty (fd))
return NULL;
if (fstat (fd, &st) < 0)
return NULL;
mydev = st.st_dev;

View file

@ -54,6 +54,9 @@ __ttyname_r (fd, buf, buflen)
return -1;
}
if (!__isatty (fd))
return -1;
if (fstat (fd, &st) < 0)
return -1;
mydev = st.st_dev;

View file

@ -34,25 +34,21 @@ getlogin (void)
char tty_pathname[2 + 2 * NAME_MAX];
char *real_tty_path = tty_pathname;
char *result = NULL;
static struct utmp_data utmp_data = { ut_fd: -1 };
struct utmp_data utmp_data = { ut_fd: -1 };
static char name[UT_NAMESIZE + 1];
struct utmp *ut, line;
{
int err = 0;
int d = __open ("/dev/tty", 0);
if (d < 0)
return NULL;
if (__ttyname_r (d, real_tty_path, sizeof (tty_pathname)) < 0)
err = errno;
(void) close (d);
if (err != 0)
{
errno = err;
return NULL;
}
}
/* Get name of tty connected to fd 0. Return NULL if not a tty or
if fd 0 isn't open. Note that a lot of documentation says that
getlogin() is based on the controlling terminal---what they
really mean is "the terminal connected to standard input". The
getlogin() implementation of DEC Unix, SunOS, Solaris, HP-UX all
return NULL if fd 0 has been closed, so this is the compatible
thing to do. Note that ttyname(open("/dev/tty")) on those
systems returns /dev/tty, so that is not a possible solution for
getlogin(). */
if (__ttyname_r (0, real_tty_path, sizeof (tty_pathname)) < 0)
return NULL;
real_tty_path += 5; /* Remove "/dev/". */
@ -66,7 +62,11 @@ getlogin (void)
result = NULL;
}
else
result = ut->ut_line;
{
strncpy (name, ut->ut_user, UT_NAMESIZE);
name[UT_NAMESIZE] = '\0';
result = name;
}
__endutent_r (&utmp_data);

View file

@ -3,7 +3,7 @@ sysdep_routines += sysctl clone
sysdep_headers += sys/mount.h sys/sysinfo.h sys/acct.h sys/sysctl.h \
sys/module.h sys/io.h sys/klog.h sys/kdaemon.h \
sys/user.h syscall-list.h sys/sysmacros.h
sys/user.h syscall-list.h sys/sysmacros.h sys/procfs.h
# Generate the list of SYS_* macros for the system calls (__NR_* macros).
$(objpfx)syscall-%.h $(objpfx)syscall-%.d: ../sysdeps/unix/sysv/linux/syscall.h

View file

@ -59,14 +59,16 @@ I/O address space that's 512MB large!). */
* so the following defines apply to LCA as well.
*/
#define APECS_IO_BASE (0xfffffc01c0000000UL)
#define APECS_SPARSE_MEM (0xfffffc0200000000UL)
#define APECS_DENSE_MEM (0xfffffc0300000000UL)
#define ALCOR_IO_BASE (0xfffffc8580000000UL)
#define ALCOR_DENSE_MEM (0xfffffc8600000000UL)
#define CIA_IO_BASE (0xfffffc8580000000UL)
#define CIA_SPARSE_MEM (0xfffffc8000000000UL)
#define CIA_DENSE_MEM (0xfffffc8600000000UL)
enum {
IOSYS_JENSEN = 0, IOSYS_APECS = 1, IOSYS_ALCOR = 2
IOSYS_JENSEN = 0, IOSYS_APECS = 1, IOSYS_CIA = 2
} iosys_t;
struct ioswtch {
@ -83,18 +85,19 @@ static struct platform {
const char *name;
int io_sys;
unsigned long bus_memory_base;
unsigned long sparse_bus_memory_base;
} platform[] = {
{"Alcor", IOSYS_ALCOR, ALCOR_DENSE_MEM},
{"Avanti", IOSYS_APECS, APECS_DENSE_MEM},
{"Cabriolet", IOSYS_APECS, APECS_DENSE_MEM},
{"EB164", IOSYS_ALCOR, ALCOR_DENSE_MEM},
{"EB64+", IOSYS_APECS, APECS_DENSE_MEM},
{"EB66", IOSYS_APECS, APECS_DENSE_MEM}, /* LCA same as APECS */
{"EB66P", IOSYS_APECS, APECS_DENSE_MEM}, /* LCA same as APECS */
{"Jensen", IOSYS_JENSEN, JENSEN_MEM},
{"Mikasa", IOSYS_APECS, APECS_DENSE_MEM},
{"Mustang", IOSYS_APECS, APECS_DENSE_MEM},
{"Noname", IOSYS_APECS, APECS_DENSE_MEM}, /* LCA same as APECS */
{"Alcor", IOSYS_CIA, CIA_DENSE_MEM, CIA_SPARSE_MEM},
{"Avanti", IOSYS_APECS, APECS_DENSE_MEM, APECS_SPARSE_MEM},
{"Cabriolet", IOSYS_APECS, APECS_DENSE_MEM, APECS_SPARSE_MEM},
{"EB164", IOSYS_CIA, CIA_DENSE_MEM, CIA_SPARSE_MEM},
{"EB64+", IOSYS_APECS, APECS_DENSE_MEM, APECS_SPARSE_MEM},
{"EB66", IOSYS_APECS, APECS_DENSE_MEM, APECS_SPARSE_MEM},
{"EB66P", IOSYS_APECS, APECS_DENSE_MEM, APECS_SPARSE_MEM},
{"Jensen", IOSYS_JENSEN, JENSEN_MEM, JENSEN_MEM},
{"Mikasa", IOSYS_APECS, APECS_DENSE_MEM, APECS_SPARSE_MEM},
{"Mustang", IOSYS_APECS, APECS_DENSE_MEM, APECS_SPARSE_MEM},
{"Noname", IOSYS_APECS, APECS_DENSE_MEM, APECS_SPARSE_MEM},
};
@ -109,6 +112,7 @@ static struct {
} io;
static unsigned long bus_memory_base = -1;
static unsigned long sparse_bus_memory_base = -1;
extern void __sethae (unsigned long); /* we can't use asm/io.h */
@ -256,7 +260,7 @@ DCL_IN(jensen, inb, JENSEN)
DCL_IN(jensen, inw, JENSEN)
DCL_IN(jensen, inl, JENSEN)
/* The APECS functions are also used for ALCOR since they are
/* The APECS functions are also used for CIA since they are
identical. */
DCL_SETHAE(apecs, APECS)
@ -332,6 +336,7 @@ init_iosys (void)
if (strcmp (platform[i].name, systype) == 0)
{
bus_memory_base = platform[i].bus_memory_base;
sparse_bus_memory_base = platform[i].sparse_bus_memory_base;
io.sys = platform[i].io_sys;
if (io.sys == IOSYS_JENSEN)
io.swp = &ioswtch[0];
@ -382,7 +387,7 @@ _ioperm (unsigned long from, unsigned long num, int turn_on)
{
case IOSYS_JENSEN: base = JENSEN_IO_BASE; break;
case IOSYS_APECS: base = APECS_IO_BASE; break;
case IOSYS_ALCOR: base = ALCOR_IO_BASE; break;
case IOSYS_CIA: base = CIA_IO_BASE; break;
default:
errno = ENODEV;
return -1;
@ -498,6 +503,14 @@ _bus_base(void)
return bus_memory_base;
}
unsigned long
_bus_base_sparse(void)
{
if (!io.swp && init_iosys () < 0)
return -1;
return sparse_bus_memory_base;
}
weak_alias (_sethae, sethae);
weak_alias (_ioperm, ioperm);
weak_alias (_iopl, iopl);
@ -508,3 +521,4 @@ weak_alias (_outb, outb);
weak_alias (_outw, outw);
weak_alias (_outl, outl);
weak_alias (_bus_base, bus_base);
weak_alias (_bus_base_sparse, bus_base_sparse);

View file

@ -81,6 +81,8 @@ struct ip_opts
char ip_opts[40]; /* Actually variable in size. */
};
__BEGIN_DECLS
/* Functions to convert between host and network byte order. */
extern unsigned long int ntohl __P ((unsigned long int));
@ -88,6 +90,11 @@ extern unsigned short int ntohs __P ((unsigned short int));
extern unsigned long int htonl __P ((unsigned long int));
extern unsigned short int htons __P ((unsigned short int));
/* Bind socket FD to a privileged IP address SIN. */
extern int bindresvport __P ((int __fd, struct sockaddr_in * __sin));
__END_DECLS
#include <endian.h>
#if __BYTE_ORDER == __BIG_ENDIAN
@ -103,11 +110,4 @@ extern unsigned short int htons __P ((unsigned short int));
#define htons(x) (x)
#endif
__BEGIN_DECLS
/* Bind socket FD to a privileged IP address SIN. */
extern int bindresvport __P((int __fd, struct sockaddr_in * __sin));
__END_DECLS
#endif /* netinet/in.h */

View file

@ -0,0 +1 @@
#include <linux/elfcore.h>