update from main archive 961203

Tue Dec  3 08:38:15 1996  Richard Henderson  <rth@tamu.edu>

	* sysdeps/unix/alpha/sysdep.S: Remove definition of __errno_location.
	Reformat copyright.

	* elf/rtld.c (_dl_start): Don't dereference the value returned by
	elf_machine_got to get _DYNAMIC, instead call new function
	elf_machine_dynamic.
	* sysdeps/alpha/dl-machine.h: Permute elf_machine_got to
	elf_machine_dynamic.  Reformat copyright.
	* sysdeps/i386/dl-machine.h: Likewise.
	* sysdeps/m68k/dl-machine.h: Likewise.
	* sysdeps/mips/dl-machine.h: Likewise.
	* sysdeps/sparc/dl-machine.h: Likewise.
	* sysdeps/stub/dl-machine.h: Likewise.

Tue Oct 15 23:46:00 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* MakeTAGS (sysdep_dirs): Include add-on sysdep directories.

Tue Dec  3 02:06:18 1996  Ulrich Drepper  <drepper@cygnus.com>

	* Makerules ($(libdir)/libc.so): Make first line of generated
	link script contain `/* GNU ld script'.  This will be used in
	ldconfig to check for linker scripts.
	* sysdeps/mach/hurd/libc-ldscript: Likewise.
	* sysdeps/mach/hurd/libc_p-ldscript: Likewise.

	* stdlib/getsubopt.c: Update copyright.  Correct typo in comment.
This commit is contained in:
Ulrich Drepper 1996-12-04 01:41:39 +00:00
parent d88554f033
commit 4770745624
48 changed files with 1134 additions and 602 deletions

View File

@ -1,3 +1,33 @@
Tue Dec 3 08:38:15 1996 Richard Henderson <rth@tamu.edu>
* sysdeps/unix/alpha/sysdep.S: Remove definition of __errno_location.
Reformat copyright.
* elf/rtld.c (_dl_start): Don't dereference the value returned by
elf_machine_got to get _DYNAMIC, instead call new function
elf_machine_dynamic.
* sysdeps/alpha/dl-machine.h: Permute elf_machine_got to
elf_machine_dynamic. Reformat copyright.
* sysdeps/i386/dl-machine.h: Likewise.
* sysdeps/m68k/dl-machine.h: Likewise.
* sysdeps/mips/dl-machine.h: Likewise.
* sysdeps/sparc/dl-machine.h: Likewise.
* sysdeps/stub/dl-machine.h: Likewise.
Tue Oct 15 23:46:00 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* MakeTAGS (sysdep_dirs): Include add-on sysdep directories.
Tue Dec 3 02:06:18 1996 Ulrich Drepper <drepper@cygnus.com>
* Makerules ($(libdir)/libc.so): Make first line of generated
link script contain `/* GNU ld script'. This will be used in
ldconfig to check for linker scripts.
* sysdeps/mach/hurd/libc-ldscript: Likewise.
* sysdeps/mach/hurd/libc_p-ldscript: Likewise.
* stdlib/getsubopt.c: Update copyright. Correct typo in comment.
Mon Dec 2 15:32:15 1996 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-lookup.c (_dl_lookup_symbol_skip): Remove unused variable

12
FAQ
View File

@ -68,6 +68,9 @@ please let me know.
`setsockopt', `getsockname', `getpeername', `send',
`sendto', and `recvfrom' are different in GNU libc than
on any other system I saw. This is a bug, isn't it?''
[Q19] ``My XXX kernel emulates a floating-point coprocessor for me.
Should I enable --with-fp?''
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
[Q1] ``What systems does the GNU C Library run on?''
@ -570,6 +573,15 @@ This change is critical for system which have
like the Alpha.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
[Q19] ``My XXX kernel emulates a floating-point coprocessor for me.
Should I enable --with-fp?''
[A19] {UD} As `configure --help' shows the default value is `yes' and
this should not be changed unless the FPU instructions would be
invalid. I.e., an emulated FPU is for the libc as good as a real one.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
Answers were given by:

View File

@ -14,9 +14,9 @@
# Library General Public License for more details.
# You should have received a copy of the GNU Library General Public
# License along with the GNU C Library; see the file COPYING.LIB. If
# not, write to the Free Software Foundation, Inc., 675 Mass Ave,
# Cambridge, MA 02139, USA.
# License along with the GNU C Library; see the file COPYING.LIB. If not,
# write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
# Make this the default goal.
TAGS:
@ -43,8 +43,10 @@ sysdep-dirs := $(full-config-sysdirs)
ifndef sysdep_dirs
# Find all sysdep directories.
sysdep_dirs := $(shell find $(..)sysdeps -type d \
! -name RCS ! -name CVS -print)
sysdep_dirs := $(shell find $(..)sysdeps \
$(wildcard \
$(patsubst %,$(..)%/sysdeps,$(add-ons))) \
-type d ! -name RCS ! -name CVS -print)
endif
# Find all sysdep dirs there are, but putting the ones
@ -145,7 +147,8 @@ else
$(extract)
endif
$P/siglist.pot: $(common-objpfx)stdio-common/siglist.c; $(extract)
#$P/siglist.pot: $(common-objpfx)stdio-common/siglist.c; $(extract)
$P/siglist.pot: siglist.c; $(extract)
# Extract all strings from this file; its strings are not marked.
# Their surroundings are also not interesting.

View File

@ -330,6 +330,7 @@ default-rpath = $(libdir)
endif
# This is how to find at build-time things that will be installed there.
rpath-link = $(common-objdir):$(elfobjdir):$(nssobjdir)
elfobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)elf)
nssobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)nss)
else
link-libc = $(common-objpfx)libc.a $(gnulib) $(common-objpfx)libc.a

View File

@ -347,7 +347,6 @@ LDFLAGS-c.so = -nostdlib -nostartfiles
# Give libc.so an entry point and make it directly runnable itself.
LDFLAGS-c.so += -e __libc_main
# Use our own special initializer and finalizer files for libc.so.
elfobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)elf)
$(common-objpfx)libc.so: $(elfobjdir)/soinit.so \
$(common-objpfx)libc_pic.a \
$(elfobjdir)/sofini.so $(elfobjdir)/ld.so
@ -638,7 +637,8 @@ install: $(libdir)/libc.so
$(libdir)/libc.so: $(common-objpfx)libc.so$(libc.so-version) \
$(elfobjdir)/$(rtld-installed-name) \
$(libdir)/lib$(libc-name).a
(echo '/* Use the shared library, but some functions are only in';\
(echo '/* GNU ld script';\
echo ' Use the shared library, but some functions are only in';\
echo ' the static library, so try that secondarily.'; \
echo ' The dynamic linker defines some functions used by $(<F),';\
echo ' but ld uses definitions from libc.a before examining the';\

View File

@ -1,20 +1,20 @@
/* Copyright (C) 1994, 1995 Free Software Foundation, Inc.
This file is part of the GNU C Library.
/* Copyright (C) 1994, 1995, 1996 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
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <assert.h>
#include <stdio.h>
@ -38,6 +38,7 @@ __assert_perror_fail (int errnum,
const char *file, unsigned int line,
const char *function)
{
char errbuf[1024];
#ifdef FATAL_PREPARE
FATAL_PREPARE;
#endif
@ -48,7 +49,7 @@ __assert_perror_fail (int errnum,
__assert_program_name ? ": " : "",
file, line,
function ? function : "", function ? ": " : "",
strerror (errnum));
__strerror_r (errnum, errbuf, sizeof errbuf));
(void) fflush (stderr);
abort ();

View File

@ -1,29 +1,28 @@
/* Copyright (C) 1991, 1994, 1995 Free Software Foundation, Inc.
This file is part of the GNU C Library.
/* Copyright (C) 1991, 1994, 1995, 1996 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
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <ansidecl.h>
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <sysdep.h>
CONST char *__assert_program_name;
const char *__assert_program_name;
/* This function, when passed a string containing an asserted
expression, a filename, and a line number, prints a message
@ -36,9 +35,8 @@ CONST char *__assert_program_name;
#endif
void
DEFUN(__assert_fail, (assertion, file, line, function),
CONST char *assertion AND
CONST char *file AND unsigned int line AND CONST char *function)
__assert_fail (const char *assertion, const char *file, unsigned int line,
const char *function)
{
#ifdef FATAL_PREPARE
FATAL_PREPARE;
@ -61,8 +59,7 @@ DEFUN(__assert_fail, (assertion, file, line, function),
#include <string.h>
static void
DEFUN(set_progname, (argc, argv, envp),
int argc AND char **argv AND char **envp)
set_progname (int argc, char **argv, char **envp)
{
char *p;

View File

@ -119,6 +119,8 @@ extern struct dirent *readdir __P ((DIR *__dirp));
#ifdef __USE_REENTRANT
/* Reentrant versio of `readdir'. Return in RESULT a pointer to the
next entry. */
extern int __readdir_r __P ((DIR *__dirp, struct dirent *entry,
struct dirent **result));
extern int readdir_r __P ((DIR *__dirp, struct dirent *entry,
struct dirent **result));
#endif

View File

@ -1,20 +1,20 @@
/* Copyright (C) 1992, 1993, 1994, 1995, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <dirent.h>
#include <stdlib.h>
@ -31,7 +31,7 @@ scandir (dir, namelist, select, cmp)
DIR *dp = opendir (dir);
struct dirent **v = NULL;
size_t vsize = 0, i;
struct dirent *d;
struct dirent dirbuf, *d;
int save;
if (dp == NULL)
@ -41,7 +41,7 @@ scandir (dir, namelist, select, cmp)
__set_errno (0);
i = 0;
while ((d = readdir (dp)) != NULL)
while (__readdir_r (dp, &dirbuf, &d) >= 0)
if (select == NULL || (*select) (d))
{
size_t dsize;

View File

@ -187,7 +187,6 @@ _dl_lookup_symbol_skip (const char *undef_name, const ElfW(Sym) **ref,
struct link_map *skip_map,
int flags)
{
int found_entry = 0;
const unsigned long int hash = _dl_elf_hash (undef_name);
struct sym_val current_value = { 0, NULL };
struct link_map **scope;

View File

@ -83,10 +83,8 @@ _dl_start (void *arg)
/* Figure out the run-time load address of the dynamic linker itself. */
bootstrap_map.l_addr = elf_machine_load_address ();
/* Read our own dynamic section and fill in the info array.
Conveniently, the first element of the GOT contains the
offset of _DYNAMIC relative to the run-time load address. */
bootstrap_map.l_ld = (void *) bootstrap_map.l_addr + *elf_machine_got ();
/* Read our own dynamic section and fill in the info array. */
bootstrap_map.l_ld = (void *) bootstrap_map.l_addr + elf_machine_dynamic ();
elf_get_dynamic_info (bootstrap_map.l_ld, bootstrap_map.l_info);
#ifdef ELF_MACHINE_BEFORE_RTLD_RELOC

View File

@ -102,8 +102,7 @@ rcmd(ahost, rport, locuser, remuser, cmd, fd2p)
(void)fprintf(stderr,
_("rcmd: socket: All ports in use\n"));
else
(void)fprintf(stderr, "rcmd: socket: %s\n",
strerror(errno));
(void)fprintf(stderr, "rcmd: socket: %m\n");
sigsetmask(oldmask);
return (-1);
}
@ -138,7 +137,7 @@ rcmd(ahost, rport, locuser, remuser, cmd, fd2p)
inet_ntoa(sin.sin_addr));
continue;
}
(void)fprintf(stderr, "%s: %s\n", hp->h_name, strerror(errno));
(void)fprintf(stderr, "%s: %m\n", hp->h_name);
sigsetmask(oldmask);
return (-1);
}
@ -157,8 +156,7 @@ rcmd(ahost, rport, locuser, remuser, cmd, fd2p)
(void)snprintf(num, sizeof(num), "%d", lport);
if (write(s, num, strlen(num)+1) != strlen(num)+1) {
(void)fprintf(stderr,
_("rcmd: write (setting up stderr): %s\n"),
strerror(errno));
_("rcmd: write (setting up stderr): %m\n"));
(void)close(s2);
goto bad;
}
@ -170,8 +168,7 @@ rcmd(ahost, rport, locuser, remuser, cmd, fd2p)
!FD_ISSET(s2, &reads)) {
if (errno != 0)
(void)fprintf(stderr,
_("rcmd: select (setting up stderr): %s\n"),
strerror(errno));
_("rcmd: select (setting up stderr): %m\n"));
else
(void)fprintf(stderr,
_("select: protocol failure in circuit setup\n"));
@ -182,7 +179,7 @@ rcmd(ahost, rport, locuser, remuser, cmd, fd2p)
(void)close(s2);
if (s3 < 0) {
(void)fprintf(stderr,
"rcmd: accept: %s\n", strerror(errno));
"rcmd: accept: %m\n");
lport = 0;
goto bad;
}
@ -201,7 +198,7 @@ rcmd(ahost, rport, locuser, remuser, cmd, fd2p)
(void)write(s, cmd, strlen(cmd)+1);
if (read(s, &c, 1) != 1) {
(void)fprintf(stderr,
"rcmd: %s: %s\n", *ahost, strerror(errno));
"rcmd: %s: %m\n", *ahost);
goto bad2;
}
if (c != 0) {

View File

@ -201,8 +201,8 @@ _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
+ ((mask & XPG_NORM_CODESET) != 0
? strlen (normalized_codeset) + 1 : 0)
+ (((mask & XPG_MODIFIER) != 0
|| (mask & CEN_AUDIENCE) != 0) ?
strlen (modifier) + 1 : 0)
|| (mask & CEN_AUDIENCE) != 0)
? strlen (modifier) + 1 : 0)
+ ((mask & CEN_SPECIAL) != 0
? strlen (special) + 1 : 0)
+ ((mask & (CEN_SPONSOR | CEN_REVISION) != 0)

View File

@ -570,7 +570,7 @@ fts_build(sp, type)
register FTS *sp;
int type;
{
register struct dirent *dp;
register struct dirent dirbuf, *dp;
register FTSENT *p, *head;
register int nitems;
FTSENT *cur, *tail;
@ -660,7 +660,8 @@ fts_build(sp, type)
/* Read the directory, attaching each entry to the `link' pointer. */
adjaddr = NULL;
for (head = tail = NULL, nitems = 0; dp = readdir(dirp);) {
for (head = tail = NULL, nitems = 0;
__readdir_r (dirp, &dirbuf, &dp) >= 0;) {
int namlen;
if (!ISSET(FTS_SEEDOT) && ISDOT(dp->d_name))

View File

@ -1,23 +1,22 @@
/* Copyright (C) 1992, 1995, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ian Lance Taylor (ian@airs.com).
This file is part of the GNU C Library.
Contributed by Ian Lance Taylor (ian@airs.com).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <ansidecl.h>
#include <errno.h>
#include <limits.h>
#include <stdlib.h>
@ -36,20 +35,17 @@ Cambridge, MA 02139, USA. */
/* Traverse one level of a directory tree. */
static int
DEFUN (ftw_dir, (dirs, level, descriptors, dir, len, func),
DIR **dirs AND int level AND int descriptors AND
char *dir AND size_t len AND
int EXFUN((*func), (CONST char *file, struct stat *status,
int flag)))
ftw_dir (DIR **dirs, int level, int descriptors, char *dir, size_t len,
int (*func) (const char *file, struct stat *status, int flag))
{
int got;
struct dirent *entry;
struct dirent dirbuf, *entry;
got = 0;
__set_errno (0);
while ((entry = readdir (dirs[level])) != NULL)
while (__readdir_r (dirs[level], &dirbuf, &entry) >= 0)
{
struct stat s;
int flag, retval, newlev;
@ -78,7 +74,7 @@ DEFUN (ftw_dir, (dirs, level, descriptors, dir, len, func),
}
dir[len] = '/';
memcpy ((PTR) (dir + len + 1), (PTR) entry->d_name,
memcpy ((void *) (dir + len + 1), (void *) entry->d_name,
namlen + 1);
if (stat (dir, &s) < 0)
@ -140,7 +136,7 @@ DEFUN (ftw_dir, (dirs, level, descriptors, dir, len, func),
while (skip-- != 0)
{
__set_errno (0);
if (readdir (dirs[level]) == NULL)
if (__readdir_r (dirs[level], &dirbuf, &entry) < 0)
return errno == 0 ? 0 : -1;
}
}
@ -154,11 +150,9 @@ DEFUN (ftw_dir, (dirs, level, descriptors, dir, len, func),
/* Call a function on every element in a directory tree. */
int
DEFUN(ftw, (dir, func, descriptors),
CONST char *dir AND
int EXFUN((*func), (CONST char *file, struct stat *status,
int flag)) AND
int descriptors)
ftw (const char *dir,
int (*func) (const char *file, struct stat *status, int flag),
int descriptors)
{
DIR **dirs;
size_t len;
@ -197,7 +191,7 @@ DEFUN(ftw, (dir, func, descriptors),
flag = FTW_F;
len = strlen (dir);
memcpy ((PTR) buf, (PTR) dir, len + 1);
memcpy ((void *) buf, (void *) dir, len + 1);
retval = (*func) (buf, &s, flag);

View File

@ -1,20 +1,20 @@
/* Copyright (C) 1991, 1992, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <errno.h>
#include <limits.h>
@ -43,7 +43,11 @@ getwd (buf)
if (getcwd (fetchbuf, PATH_MAX) == NULL)
{
#if defined HAVE_STRERROR_R || defined _LIBC
__strerror_r (errno, buf, PATH_MAX);
#else
strncpy (buf, strerror (errno), PATH_MAX);
#endif
return NULL;
}

View File

@ -64,7 +64,7 @@ $(objpfx)localedef: $(localedef-modules:%=$(objpfx)%.o)
$(objpfx)locale: $(locale-modules:%=$(objpfx)%.o)
$(objpfx)localedef $(objpfx)locale: $(lib-modules:%=$(objpfx)%.o)
localepath = "$(localeddir)"
localepath = "$(localedir):$(i18ndir)"
CPPFLAGS := -DLOCALE_PATH='$(localepath)' \
-DLOCALEDIR='"$(localedir)"' \

View File

@ -1,21 +1,21 @@
/* err.c --- 4.4BSD utility functions for error messages.
Copyright (C) 1995 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Copyright (C) 1995, 1996 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
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <stdarg.h>
#include <err.h>
@ -56,7 +56,7 @@ vwarn (const char *format, __gnuc_va_list ap)
vfprintf (stderr, format, ap);
fputs (": ", stderr);
}
fprintf (stderr, "%s\n", strerror (error));
fprintf (stderr, "%m\n");
}

View File

@ -77,11 +77,12 @@ unsigned int error_message_count;
name of the executing program. */
extern char *program_name;
#if HAVE_STRERROR
# ifndef strerror /* On some systems, strerror is a macro */
#ifndef HAVE_STRERROR_R
# if HAVE_STRERROR
# ifndef strerror /* On some systems, strerror is a macro */
char *strerror ();
# endif
#else
# endif
# else
static char *
private_strerror (errnum)
int errnum;
@ -93,8 +94,9 @@ private_strerror (errnum)
return _(sys_errlist[errnum]);
return _("Unknown system error");
}
#define strerror private_strerror
#endif /* HAVE_STRERROR */
# define strerror private_strerror
# endif /* HAVE_STRERROR */
#endif /* HAVE_STRERROR_R */
#endif /* _LIBC */
/* Print the program name and error message MESSAGE, which is a printf-style
@ -140,7 +142,14 @@ error (status, errnum, message, va_alist)
++error_message_count;
if (errnum)
fprintf (stderr, ": %s", strerror (errnum));
{
#if defined HAVE_STRERROR_R || defined _LIBC
char errbuf[1024];
fprintf (stderr, ": %s", __strerror_r (errnum, errbuf, sizeof errbuf));
#else
fprintf (stderr, ": %s", strerror (errnum));
#endif
}
putc ('\n', stderr);
fflush (stderr);
if (status)
@ -208,7 +217,14 @@ error_at_line (status, errnum, file_name, line_number, message, va_alist)
++error_message_count;
if (errnum)
fprintf (stderr, ": %s", strerror (errnum));
{
#if defined HAVE_STRERROR_R || defined _LIBC
char errbuf[1024];
fprintf (stderr, ": %s", __strerror_r (errnum, errbuf, sizeof errbuf));
#else
fprintf (stderr, ": %s", strerror (errnum));
#endif
}
putc ('\n', stderr);
fflush (stderr);
if (status)

View File

@ -36,6 +36,7 @@ static char sccsid[] = "@(#)ttyslot.c 8.1 (Berkeley) 6/4/93";
#endif /* LIBC_SCCS and not lint */
#include <ttyent.h>
#include <alloca.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
@ -47,12 +48,19 @@ ttyslot()
register int slot;
register char *p;
int cnt;
size_t buflen = __sysconf (_SC_TTY_NAME_MAX) + 1;
char *name;
if (buflen == 0)
/* This should be enough if no fixed value is given. */
buflen = 32;
name = __alloca (buflen);
setttyent();
for (cnt = 0; cnt < 3; ++cnt)
if (name = ttyname(cnt)) {
if (p = rindex(name, '/'))
for (cnt = 0; cnt < 3; ++cnt)
if (__ttyname_r (cnt, name, buflen) >= 0) {
if (p = rindex(name, '/'))
++p;
else
p = name;

View File

@ -40,6 +40,7 @@
#define DATAFILE "/etc/" DATABASE
#ifdef NEED_H_ERRNO
# include <netdb.h>
# define H_ERRNO_PROTO , int *herrnop
# define H_ERRNO_ARG , herrnop
# define H_ERRNO_SET(val) (*herrnop = (val))
@ -149,7 +150,7 @@ internal_getent (struct STRUCTURE *result,
if (buflen < (int) sizeof *data + 1)
{
__set_errno (ERANGE);
HERRNO_SET (NETDB_INTERNAL);
H_ERRNO_SET (NETDB_INTERNAL);
return NSS_STATUS_TRYAGAIN;
}

View File

@ -5,8 +5,8 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: libc 1.96\n"
"POT-Creation-Date: 1996-10-17 03:22+0200\n"
"Project-Id-Version: libc 1.98\n"
"POT-Creation-Date: 1996-12-03 13:50+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+DIST\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -63,17 +63,17 @@ msgstr ""
msgid "%s in ruleless zone"
msgstr ""
#: assert/assert.c:48
#: assert/assert.c:46
#, c-format
msgid "%s%s%s:%u: %s%sAssertion `%s' failed.\n"
msgstr ""
#: assert/assert-perr.c:46
#: assert/assert-perr.c:47
#, c-format
msgid "%s%s%s:%u: %s%sUnexpected error: %s.\n"
msgstr ""
#: stdio-common/psignal.c:48
#: stdio-common/psignal.c:47
#, c-format
msgid "%s%sUnknown signal %d\n"
msgstr ""
@ -268,19 +268,19 @@ msgstr ""
msgid ".lib section in a.out corrupted"
msgstr ""
#: inet/rcmd.c:328
#: inet/rcmd.c:358
msgid ".rhosts fstat failed"
msgstr ""
#: inet/rcmd.c:324
#: inet/rcmd.c:354
msgid ".rhosts lstat failed"
msgstr ""
#: inet/rcmd.c:326
#: inet/rcmd.c:356
msgid ".rhosts not regular file"
msgstr ""
#: inet/rcmd.c:332
#: inet/rcmd.c:362
msgid ".rhosts writeable by other than owner"
msgstr ""
@ -325,7 +325,7 @@ msgstr ""
msgid "Address family not supported by protocol"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:714
#: stdio-common/../sysdeps/gnu/errlist.c:730
msgid "Advertise error"
msgstr ""
@ -366,10 +366,14 @@ msgstr ""
msgid "Bad file descriptor"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:682
#: stdio-common/../sysdeps/gnu/errlist.c:718
msgid "Bad font file format"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:610
msgid "Bad message"
msgstr ""
#. TRANS A file that isn't a block special file was given in a situation that
#. TRANS requires one. For example, trying to mount an ordinary file as a file
#. TRANS system in Unix gives this error.
@ -400,6 +404,22 @@ msgstr ""
msgid "Can not access a needed shared library"
msgstr ""
#: nis/ypclnt.c:637
msgid "Can't bind to server which serves this domain"
msgstr ""
#: nis/ypclnt.c:649
msgid "Can't communicate with portmapper"
msgstr ""
#: nis/ypclnt.c:651
msgid "Can't communicate with ypbind"
msgstr ""
#: nis/ypclnt.c:653
msgid "Can't communicate with ypserv"
msgstr ""
#. TRANS No memory available. The system cannot allocate more virtual memory
#. TRANS because its capacity is full.
#: stdio-common/../sysdeps/gnu/errlist.c:91
@ -442,7 +462,7 @@ msgstr ""
msgid "Cannot set socket option SO_BROADCAST"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:622
#: stdio-common/../sysdeps/gnu/errlist.c:658
msgid "Channel number out of range"
msgstr ""
@ -453,7 +473,7 @@ msgstr ""
msgid "Client credential too weak"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:722
#: stdio-common/../sysdeps/gnu/errlist.c:738
msgid "Communication error on send"
msgstr ""
@ -501,6 +521,10 @@ msgid ""
"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
msgstr ""
#: nis/ypclnt.c:663
msgid "Database is busy"
msgstr ""
#. TRANS No default destination address was set for the socket. You get this
#. TRANS error when you try to transmit data over a connectionless socket,
#. TRANS without first specifying a destination for the data with @code{connect}.
@ -508,7 +532,7 @@ msgstr ""
msgid "Destination address required"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:686
#: stdio-common/../sysdeps/gnu/errlist.c:638
msgid "Device not a stream"
msgstr ""
@ -539,12 +563,16 @@ msgstr ""
msgid "Disc quota exceeded"
msgstr ""
#: nis/ypclnt.c:709
msgid "Domain not bound"
msgstr ""
#: sunrpc/clnt_perr.c:254
#, c-format
msgid "Error %d"
msgstr ""
#: string/../sysdeps/mach/_strerror.c:43
#: string/../sysdeps/mach/_strerror.c:52
msgid "Error in unknown error system: "
msgstr ""
@ -552,7 +580,7 @@ msgstr ""
msgid "Error: .netrc file is readable by others."
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:662
#: stdio-common/../sysdeps/gnu/errlist.c:698
msgid "Exchange full"
msgstr ""
@ -580,7 +608,7 @@ msgstr ""
msgid "File exists"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:678
#: stdio-common/../sysdeps/gnu/errlist.c:714
msgid "File locking deadlock error"
msgstr ""
@ -632,7 +660,7 @@ msgstr ""
msgid "IOT trap"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:618
#: stdio-common/../sysdeps/gnu/errlist.c:614
msgid "Identifier removed"
msgstr ""
@ -674,6 +702,14 @@ msgstr ""
msgid "Input/output error"
msgstr ""
#: nis/ypclnt.c:643
msgid "Internal NIS error"
msgstr ""
#: nis/ypclnt.c:707
msgid "Internal ypbind error"
msgstr ""
msgid "Interrupt"
msgstr ""
@ -688,7 +724,7 @@ msgstr ""
msgid "Interrupted system call"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:610
#: stdio-common/../sysdeps/gnu/errlist.c:654
msgid "Interrupted system call should be restarted"
msgstr ""
@ -729,7 +765,7 @@ msgstr ""
msgid "Invalid cross-device link"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:654
#: stdio-common/../sysdeps/gnu/errlist.c:690
msgid "Invalid exchange"
msgstr ""
@ -751,11 +787,11 @@ msgstr ""
msgid "Invalid regular expression"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:670
#: stdio-common/../sysdeps/gnu/errlist.c:706
msgid "Invalid request code"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:658
#: stdio-common/../sysdeps/gnu/errlist.c:694
msgid "Invalid request descriptor"
msgstr ""
@ -763,7 +799,7 @@ msgstr ""
msgid "Invalid server verifier"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:674
#: stdio-common/../sysdeps/gnu/errlist.c:710
msgid "Invalid slot"
msgstr ""
@ -780,31 +816,39 @@ msgstr ""
msgid "Killed"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:650
#: stdio-common/../sysdeps/gnu/errlist.c:686
msgid "Level 2 halted"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:626
#: stdio-common/../sysdeps/gnu/errlist.c:662
msgid "Level 2 not synchronized"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:630
#: stdio-common/../sysdeps/gnu/errlist.c:666
msgid "Level 3 halted"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:634
#: stdio-common/../sysdeps/gnu/errlist.c:670
msgid "Level 3 reset"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:710
#: stdio-common/../sysdeps/gnu/errlist.c:626
msgid "Link has been severed"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:638
#: stdio-common/../sysdeps/gnu/errlist.c:674
msgid "Link number out of range"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:702
#: nis/ypclnt.c:655
msgid "Local domain name not set"
msgstr ""
#: nis/ypclnt.c:645
msgid "Local resource allocation failure"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:722
msgid "Machine is not on the network"
msgstr ""
@ -818,10 +862,18 @@ msgstr ""
msgid "Message too long"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:730
#: stdio-common/../sysdeps/gnu/errlist.c:618
msgid "Multihop attempted"
msgstr ""
#: nis/ypclnt.c:659
msgid "NIS client/server version mismatch - can't supply service"
msgstr ""
#: nis/ypclnt.c:657
msgid "NIS map data base is bad"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:746
msgid "Name not unique on network"
msgstr ""
@ -847,7 +899,7 @@ msgstr ""
msgid "Network is unreachable"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:646
#: stdio-common/../sysdeps/gnu/errlist.c:682
msgid "No CSI structure available"
msgstr ""
@ -859,7 +911,7 @@ msgstr ""
msgid "No address associated with name"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:666
#: stdio-common/../sysdeps/gnu/errlist.c:702
msgid "No anode"
msgstr ""
@ -877,7 +929,7 @@ msgstr ""
msgid "No child processes"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:690
#: stdio-common/../sysdeps/gnu/errlist.c:622
msgid "No data available"
msgstr ""
@ -893,10 +945,14 @@ msgstr ""
msgid "No match"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:614
#: stdio-common/../sysdeps/gnu/errlist.c:630
msgid "No message of desired type"
msgstr ""
#: nis/ypclnt.c:647
msgid "No more records in map database"
msgstr ""
#: posix/regex.c:5204
msgid "No previous regular expression"
msgstr ""
@ -923,6 +979,14 @@ msgstr ""
msgid "No such file or directory"
msgstr ""
#: nis/ypclnt.c:641
msgid "No such key in map"
msgstr ""
#: nis/ypclnt.c:639
msgid "No such map in server's domain"
msgstr ""
#. TRANS No process matches the specified process ID.
#: stdio-common/../sysdeps/gnu/errlist.c:24
msgid "No such process"
@ -932,10 +996,6 @@ msgstr ""
msgid "Not a XENIX named type file"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:738
msgid "Not a data message"
msgstr ""
#. TRANS A file that isn't a directory was specified when a directory is required.
#: stdio-common/../sysdeps/gnu/errlist.c:140
msgid "Not a directory"
@ -1014,16 +1074,16 @@ msgstr ""
msgid "Operation would block"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:698
#: stdio-common/../sysdeps/gnu/errlist.c:634
msgid "Out of streams resources"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:706
#: stdio-common/../sysdeps/gnu/errlist.c:726
msgid "Package not installed"
msgstr ""
#. TRANS Permission denied; the file permissions do not allow the attempted operation.
#: stdio-common/../sysdeps/gnu/errlist.c:96
#: nis/ypclnt.c:661 stdio-common/../sysdeps/gnu/errlist.c:96
msgid "Permission denied"
msgstr ""
@ -1037,11 +1097,11 @@ msgstr ""
msgid "Profiling timer expired"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:642
#: stdio-common/../sysdeps/gnu/errlist.c:678
msgid "Protocol driver not attached"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:726
#: stdio-common/../sysdeps/gnu/errlist.c:646
msgid "Protocol error"
msgstr ""
@ -1071,7 +1131,7 @@ msgstr ""
msgid "Quit"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:734
#: stdio-common/../sysdeps/gnu/errlist.c:742
msgid "RFS specific error"
msgstr ""
@ -1080,6 +1140,10 @@ msgstr ""
msgid "RPC bad procedure for program"
msgstr ""
#: nis/ypclnt.c:635
msgid "RPC failure on NIS operation"
msgstr ""
#. TRANS ???
#: stdio-common/../sysdeps/gnu/errlist.c:517
msgid "RPC program not available"
@ -1176,6 +1240,10 @@ msgstr ""
msgid "RPC: Unknown protocol"
msgstr ""
#: elf/dlsym.c:49
msgid "RTLD_NEXT used in code not dynamically loaded"
msgstr ""
#. TRANS An attempt was made to modify something on a read-only file system.
#: stdio-common/../sysdeps/gnu/errlist.c:206
msgid "Read-only file system"
@ -1202,11 +1270,15 @@ msgstr ""
msgid "Report bugs to <bug-glibc@prep.ai.mit.edu>.\n"
msgstr ""
#: nis/ypclnt.c:633
msgid "Request arguments bad"
msgstr ""
#: resolv/herror.c:73
msgid "Resolver Error 0 (no error)"
msgstr ""
#: resolv/herror.c:115
#: resolv/herror.c:117
msgid "Resolver internal error"
msgstr ""
@ -1277,7 +1349,7 @@ msgstr ""
msgid "Software caused connection abort"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:718
#: stdio-common/../sysdeps/gnu/errlist.c:734
msgid "Srmount error"
msgstr ""
@ -1309,10 +1381,15 @@ msgstr ""
msgid "Structure needs cleaning"
msgstr ""
#: posix/regex.c:940 stdio-common/../sysdeps/gnu/errlist.c:7
#: nis/ypclnt.c:631 nis/ypclnt.c:705 posix/regex.c:940
#: stdio-common/../sysdeps/gnu/errlist.c:7
msgid "Success"
msgstr ""
#: nis/ypclnt.c:711
msgid "System resource allocation failure"
msgstr ""
msgid "Terminated"
msgstr ""
@ -1325,7 +1402,7 @@ msgstr ""
msgid "Text file busy"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:694
#: stdio-common/../sysdeps/gnu/errlist.c:650
msgid "Timer expired"
msgstr ""
@ -1412,7 +1489,7 @@ msgstr ""
msgid "Try `%s --help' for more information.\n"
msgstr ""
#: inet/rcmd.c:121
#: inet/rcmd.c:136
#, c-format
msgid "Trying %s...\n"
msgstr ""
@ -1422,8 +1499,12 @@ msgstr ""
msgid "Unknown .netrc keyword %s"
msgstr ""
#: string/../sysdeps/generic/_strerror.c:36
#: string/../sysdeps/mach/_strerror.c:58
#: nis/ypclnt.c:665
msgid "Unknown NIS error code"
msgstr ""
#: string/../sysdeps/generic/_strerror.c:44
#: string/../sysdeps/mach/_strerror.c:67
msgid "Unknown error "
msgstr ""
@ -1431,7 +1512,7 @@ msgstr ""
msgid "Unknown host"
msgstr ""
#: resolv/herror.c:118
#: resolv/herror.c:120
msgid "Unknown resolver error"
msgstr ""
@ -1439,15 +1520,19 @@ msgstr ""
msgid "Unknown server error"
msgstr ""
#: string/strsignal.c:40
#: string/strsignal.c:41
#, c-format
msgid "Unknown signal %d"
msgstr ""
#: misc/error.c:94
#: misc/error.c:95
msgid "Unknown system error"
msgstr ""
#: nis/ypclnt.c:713
msgid "Unknown ypbind error"
msgstr ""
#: posix/regex.c:948
msgid "Unmatched ( or \\("
msgstr ""
@ -1464,7 +1549,7 @@ msgstr ""
msgid "Unmatched \\{"
msgstr ""
#: posix/getconf.c:191
#: posix/getconf.c:260
#, c-format
msgid "Unrecognized variable `%s'"
msgstr ""
@ -1537,7 +1622,7 @@ msgid ""
" -k, --keyword-name write names of selected keywords\n"
msgstr ""
#: posix/getconf.c:138
#: posix/getconf.c:200
#, c-format
msgid "Usage: %s variable_name [pathname]\n"
msgstr ""
@ -1552,7 +1637,7 @@ msgstr ""
msgid "User defined signal 2"
msgstr ""
#: stdio-common/../sysdeps/gnu/errlist.c:742
#: stdio-common/../sysdeps/gnu/errlist.c:642
msgid "Value too large for defined data type"
msgstr ""
@ -1572,6 +1657,23 @@ msgstr ""
msgid "Written by %s.\n"
msgstr ""
#: nis/ypclnt.c:146
msgid "YPBINDPROC_DOMAIN: Internal error\n"
msgstr ""
#: nis/ypclnt.c:150
#, c-format
msgid "YPBINDPROC_DOMAIN: No server for domain %s\n"
msgstr ""
#: nis/ypclnt.c:154
msgid "YPBINDPROC_DOMAIN: Resource allocation failure\n"
msgstr ""
#: nis/ypclnt.c:158
msgid "YPBINDPROC_DOMAIN: Unknown error\n"
msgstr ""
#. TRANS You did @strong{what}?
#: stdio-common/../sysdeps/gnu/errlist.c:596
msgid "You really blew it this time"
@ -1591,7 +1693,7 @@ msgstr ""
msgid "`-1' must be last entry in `%s' field in `%s' category"
msgstr ""
#: locale/programs/ld-collate.c:1651
#: locale/programs/ld-collate.c:1652
msgid "`...' must only be used in `...' and `UNDEFINED' entries"
msgstr ""
@ -1599,7 +1701,7 @@ msgstr ""
msgid "`from' expected after first argument to `collating-element'"
msgstr ""
#: locale/programs/ld-collate.c:1108
#: locale/programs/ld-collate.c:1109
msgid ""
"`from' string in collation element declaration contains unknown character"
msgstr ""
@ -1618,7 +1720,7 @@ msgstr ""
msgid "auth_none.c - Fatal marshalling problem"
msgstr ""
#: inet/rcmd.c:330
#: inet/rcmd.c:360
msgid "bad .rhosts owner"
msgstr ""
@ -1668,16 +1770,16 @@ msgstr ""
msgid "cannot `stat' locale file `%s'"
msgstr ""
#: locale/programs/ld-collate.c:1313
#: locale/programs/ld-collate.c:1314
#, c-format
msgid "cannot insert collation element `%.*s'"
msgstr ""
#: locale/programs/ld-collate.c:1492 locale/programs/ld-collate.c:1497
#: locale/programs/ld-collate.c:1493 locale/programs/ld-collate.c:1498
msgid "cannot insert into result table"
msgstr ""
#: locale/programs/ld-collate.c:1165 locale/programs/ld-collate.c:1207
#: locale/programs/ld-collate.c:1166 locale/programs/ld-collate.c:1208
#, c-format
msgid "cannot insert new collating symbol definition: %s"
msgstr ""
@ -1707,7 +1809,7 @@ msgstr ""
msgid "cannot open output file `%s' for category `%s'"
msgstr ""
#: locale/programs/ld-collate.c:1359
#: locale/programs/ld-collate.c:1360
msgid "cannot process order specification"
msgstr ""
@ -1749,17 +1851,12 @@ msgstr ""
msgid "character <SP> not defined in character map"
msgstr ""
#: locale/programs/ld-ctype.c:1141
#, c-format
msgid "character `%c' not defined while needed as default value"
msgstr ""
#: locale/programs/ld-ctype.c:939 locale/programs/ld-ctype.c:1002
#: locale/programs/ld-ctype.c:1010 locale/programs/ld-ctype.c:1018
#: locale/programs/ld-ctype.c:1026 locale/programs/ld-ctype.c:1034
#: locale/programs/ld-ctype.c:1042 locale/programs/ld-ctype.c:1068
#: locale/programs/ld-ctype.c:1076 locale/programs/ld-ctype.c:1114
#: locale/programs/ld-ctype.c:1152
#: locale/programs/ld-ctype.c:1141 locale/programs/ld-ctype.c:1152
#, c-format
msgid "character `%s' not defined while needed as default value"
msgstr ""
@ -1783,13 +1880,14 @@ msgstr ""
msgid "clnt_raw.c - Fatal header serialization error."
msgstr ""
#: locale/programs/ld-collate.c:1328
#: locale/programs/ld-collate.c:1329
#, c-format
msgid "collation element `%.*s' appears more than once: ignore line"
msgstr ""
#: locale/programs/ld-collate.c:1346
msgid "collation symbol `.*s' appears more than once: ignore line"
#: locale/programs/ld-collate.c:1347
#, c-format
msgid "collation symbol `%.*s' appears more than once: ignore line"
msgstr ""
#: locale/programs/locfile.c:522
@ -1797,7 +1895,7 @@ msgstr ""
msgid "collation symbol expected after `%s'"
msgstr ""
#: inet/rcmd.c:114
#: inet/rcmd.c:129
#, c-format
msgid "connect to address %s: "
msgstr ""
@ -1806,14 +1904,6 @@ msgstr ""
msgid "couldn't create an rpc server\n"
msgstr ""
#: sunrpc/portmap.c:121
msgid "couldn't do tcp_create\n"
msgstr ""
#: sunrpc/portmap.c:99
msgid "couldn't do udp_create\n"
msgstr ""
#: sunrpc/svc_simple.c:77
#, c-format
msgid "couldn't register prog %d vers %d\n"
@ -1843,11 +1933,11 @@ msgstr ""
msgid "duplicate character name `%s'"
msgstr ""
#: locale/programs/ld-collate.c:1140
#: locale/programs/ld-collate.c:1141
msgid "duplicate collating element definition"
msgstr ""
#: locale/programs/ld-collate.c:1286
#: locale/programs/ld-collate.c:1287
#, c-format
msgid "duplicate definition for character `%.*s'"
msgstr ""
@ -1873,7 +1963,7 @@ msgstr ""
msgid "duplicated message number"
msgstr ""
#: locale/programs/ld-collate.c:1695
#: locale/programs/ld-collate.c:1696
msgid "empty weight name: line ignored"
msgstr ""
@ -1893,15 +1983,15 @@ msgstr ""
msgid "enablecache: could not allocate cache fifo"
msgstr ""
#: locale/programs/ld-collate.c:1418
#: locale/programs/ld-collate.c:1419
msgid "end point of ellipsis range is bigger then start"
msgstr ""
#: locale/programs/ld-collate.c:1148
#: locale/programs/ld-collate.c:1149
msgid "error while inserting collation element into hash table"
msgstr ""
#: locale/programs/ld-collate.c:1160
#: locale/programs/ld-collate.c:1161
msgid "error while inserting to hash table"
msgstr ""
@ -1970,11 +2060,11 @@ msgstr ""
msgid "illegal Rolling/Stationary field on Leap line"
msgstr ""
#: locale/programs/ld-collate.c:1766
#: locale/programs/ld-collate.c:1767
msgid "illegal character constant in string"
msgstr ""
#: locale/programs/ld-collate.c:1115
#: locale/programs/ld-collate.c:1116
msgid "illegal collation element"
msgstr ""
@ -2088,11 +2178,11 @@ msgstr ""
msgid "invalid weekday name"
msgstr ""
#: locale/programs/ld-collate.c:1411
#: locale/programs/ld-collate.c:1412
msgid "line after ellipsis must contain character definition"
msgstr ""
#: locale/programs/ld-collate.c:1390
#: locale/programs/ld-collate.c:1391
msgid "line before ellipsis does not contain definition for character constant"
msgstr ""
@ -2118,12 +2208,16 @@ msgid "memory clobbered past end of allocated block"
msgstr ""
#: locale/programs/ld-collate.c:167 locale/programs/ld-collate.c:173
#: locale/programs/ld-collate.c:177 locale/programs/ld-collate.c:1438
#: locale/programs/ld-collate.c:1467 locale/programs/locfile.c:940
#: locale/programs/xmalloc.c:68 posix/getconf.c:181
#: locale/programs/ld-collate.c:177 locale/programs/ld-collate.c:1439
#: locale/programs/ld-collate.c:1468 locale/programs/locfile.c:940
#: locale/programs/xmalloc.c:68 posix/getconf.c:250
msgid "memory exhausted"
msgstr ""
#: malloc/obstack.c:425
msgid "memory exhausted\n"
msgstr ""
#: malloc/mcheck.c:180
msgid "memory is consistent, library is buggy"
msgstr ""
@ -2187,18 +2281,6 @@ msgstr ""
msgid "only WIDTH definitions are allowed to follow the CHARMAP definition"
msgstr ""
#: sunrpc/portmap.c:451
msgid "portmap CALLIT: cannot fork.\n"
msgstr ""
#: sunrpc/portmap.c:94 sunrpc/portmap.c:116
msgid "portmap cannot bind"
msgstr ""
#: sunrpc/portmap.c:86 sunrpc/portmap.c:112
msgid "portmap cannot create socket"
msgstr ""
#: db/makedb.c:326
#, c-format
msgid "problems while reading `%s'"
@ -2220,18 +2302,18 @@ msgstr ""
msgid "program %lu version %lu ready and waiting\n"
msgstr ""
#: inet/rcmd.c:157
#: inet/rcmd.c:171
#, c-format
msgid "rcmd: select (setting up stderr): %s\n"
msgid "rcmd: select (setting up stderr): %m\n"
msgstr ""
#: inet/rcmd.c:87
#: inet/rcmd.c:103
msgid "rcmd: socket: All ports in use\n"
msgstr ""
#: inet/rcmd.c:144
#: inet/rcmd.c:159
#, c-format
msgid "rcmd: write (setting up stderr): %s\n"
msgid "rcmd: write (setting up stderr): %m\n"
msgstr ""
#: sunrpc/svc_simple.c:83
@ -2270,19 +2352,15 @@ msgstr ""
msgid "rpcinfo: can't contact portmapper: "
msgstr ""
#: sunrpc/portmap.c:137
msgid "run_svc returned unexpectedly\n"
msgstr ""
#: time/zic.c:708 time/zic.c:710
msgid "same rule name in multiple files"
msgstr ""
#: inet/rcmd.c:161
#: inet/rcmd.c:174
msgid "select: protocol failure in circuit setup\n"
msgstr ""
#: inet/rcmd.c:179
#: inet/rcmd.c:192
msgid "socket: protocol failure in circuit setup\n"
msgstr ""
@ -2290,7 +2368,7 @@ msgstr ""
msgid "sorting order `forward' and `backward' are mutually exclusive"
msgstr ""
#: locale/programs/ld-collate.c:1567 locale/programs/ld-collate.c:1613
#: locale/programs/ld-collate.c:1568 locale/programs/ld-collate.c:1614
msgid ""
"specification of sorting weight for collation symbol does not make sense"
msgstr ""
@ -2341,35 +2419,35 @@ msgstr ""
msgid "svcudp_create: socket creation problem"
msgstr ""
#: locale/programs/ld-collate.c:1190
#: locale/programs/ld-collate.c:1191
#, c-format
msgid ""
"symbol for multicharacter collating element `%.*s' duplicates element "
"definition"
msgstr ""
#: locale/programs/ld-collate.c:1063
#: locale/programs/ld-collate.c:1064
#, c-format
msgid ""
"symbol for multicharacter collating element `%.*s' duplicates other element "
"definition"
msgstr ""
#: locale/programs/ld-collate.c:1199
#: locale/programs/ld-collate.c:1200
#, c-format
msgid ""
"symbol for multicharacter collating element `%.*s' duplicates other symbol "
"definition"
msgstr ""
#: locale/programs/ld-collate.c:1072
#: locale/programs/ld-collate.c:1073
#, c-format
msgid ""
"symbol for multicharacter collating element `%.*s' duplicates symbol "
"definition"
msgstr ""
#: locale/programs/ld-collate.c:1054 locale/programs/ld-collate.c:1181
#: locale/programs/ld-collate.c:1055 locale/programs/ld-collate.c:1182
#, c-format
msgid ""
"symbol for multicharacter collating element `%.*s' duplicates symbolic name "
@ -2481,7 +2559,7 @@ msgstr ""
msgid "too many transitions?!"
msgstr ""
#: locale/programs/ld-collate.c:1622
#: locale/programs/ld-collate.c:1623
msgid "too many weights"
msgstr ""
@ -2498,7 +2576,7 @@ msgstr ""
msgid "trouble replying to prog %d\n"
msgstr ""
#: locale/programs/ld-collate.c:1382
#: locale/programs/ld-collate.c:1383
msgid "two lines in a row containing `...' are not allowed"
msgstr ""
@ -2506,6 +2584,10 @@ msgstr ""
msgid "typed single year"
msgstr ""
#: posix/getconf.c:239
msgid "undefined"
msgstr ""
#: locale/programs/charmap.c:617 locale/programs/charmap.c:628
#, c-format
msgid "unknown character `%s'"
@ -2535,8 +2617,8 @@ msgstr ""
msgid "unknown signal"
msgstr ""
#: locale/programs/ld-collate.c:1366 locale/programs/ld-collate.c:1557
#: locale/programs/ld-collate.c:1731
#: locale/programs/ld-collate.c:1367 locale/programs/ld-collate.c:1558
#: locale/programs/ld-collate.c:1732
#, c-format
msgid "unknown symbol `%.*s': line ignored"
msgstr ""
@ -2557,7 +2639,7 @@ msgstr ""
msgid "unterminated symbolic name"
msgstr ""
#: locale/programs/ld-collate.c:1684
#: locale/programs/ld-collate.c:1685
msgid "unterminated weight name"
msgstr ""
@ -2609,7 +2691,7 @@ msgstr ""
msgid "values for field `%s' in category `%s' must not be zero"
msgstr ""
#: login/setutent_r.c:47
#: login/utmp_file.c:84
msgid "while opening UTMP file"
msgstr ""
@ -2648,3 +2730,15 @@ msgstr ""
#: time/zic.c:939
msgid "wrong number of fields on Zone line"
msgstr ""
#: nis/ypclnt.c:570
msgid "yp_all: clnttcp_create failed"
msgstr ""
#: nis/ypclnt.c:772
msgid "yp_update: cannot convert host to netname\n"
msgstr ""
#: nis/ypclnt.c:784
msgid "yp_update: cannot get server address\n"
msgstr ""

View File

@ -1,19 +1,19 @@
/* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with this library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* AIX requires this to be the first thing in the file. */
#if defined (_AIX) && !defined (__GNUC__)
@ -843,10 +843,24 @@ glob_in_dir (pattern, directory, flags, errfunc, pglob)
{
const char *name;
size_t len;
struct dirent *d = ((flags & GLOB_ALTDIRFUNC) ?
(*pglob->gl_readdir) (stream) :
readdir ((DIR *) stream));
if (d == NULL)
struct dirent dirbuf, *d;
int success;
if (flags & GLOB_ALTDIRFUNC)
{
d = (*pglob->gl_readdir) (stream);
success = d != NULL;
}
else
{
#if defined HAVE_READDIR_R || defined _LIBC
success = __readdir_r ((DIR *) stream, &dirbuf, &d) >= 0;
#else
d = readdir ((DIR *) stream);
success = d != NULL;
#endif
}
if (! success)
break;
if (! REAL_DIR_ENTRY (d))
continue;

View File

@ -210,6 +210,9 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
/* Count number of specifiers we already processed. */
int nspecs_done;
/* For the %m format we may need the current `errno' value. */
int save_errno = errno;
/* This table maps a character into a number representing a
class. In each step there is a destination label for each
@ -849,7 +852,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
extern char *_strerror_internal __P ((int, char *buf, size_t)); \
\
string = (char *) \
_strerror_internal (errno, work_buffer, sizeof work_buffer); \
_strerror_internal (save_errno, work_buffer, sizeof work_buffer); \
} \
is_long = 0; /* This is no wide-char string. */ \
goto LABEL (print_string)

View File

@ -1,22 +1,22 @@
/* getsubopt -- parse comma separate list into words
Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
/* Parse comma separate list into words.
Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <stdlib.h>
#include <string.h>
@ -27,7 +27,7 @@ Boston, MA 02111-1307, USA. */
optional value introduced by an equal sign. If the suboption is
not part of TOKENS return in *VALUEP beginning of unknown
suboption. On exit *OPTIONP is set to the beginning of the next
otken or at the terminating NUL character. */
token or at the terminating NUL character. */
int
getsubopt (optionp, tokens, valuep)
char **optionp;

View File

@ -1,22 +1,21 @@
/* Copyright (C) 1991 Free Software Foundation, Inc.
This file is part of the GNU C Library.
/* Copyright (C) 1991, 1996 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
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <ansidecl.h>
#include <stdlib.h>
#undef rand
@ -24,7 +23,7 @@ Cambridge, MA 02139, USA. */
/* Return a random integer between 0 and RAND_MAX. */
int
DEFUN_VOID(rand)
rand ()
{
return (int) __random();
return (int) __random ();
}

View File

@ -154,7 +154,6 @@ __srandom_r (x, buf)
}
weak_alias (__srandom_r, srandom_r)
weak_alias (__srandom_r, srand_r)
/* Initialize the state information in the given array of N bytes for
future random number generation. Based on the number of bytes we

View File

@ -265,6 +265,12 @@ extern int rand __P ((void));
/* Seed the random number generator with the given number. */
extern void srand __P ((unsigned int __seed));
#ifdef __USE_REENTRANT
/* Reentrant interface according to POSIX.1. */
extern int __rand_r __P ((unsigned int *__seed));
extern int rand_r __P ((unsigned int *__seed));
#endif
#if defined(__USE_SVID) || defined(__USE_XOPEN)
/* System V style 48-bit random number generator functions. */

View File

@ -1,20 +1,20 @@
/* Copyright (C) 1991, 1993, 1994, 1995 Free Software Foundation, Inc.
This file is part of the GNU C Library.
/* Copyright (C) 1991, 1993, 1994, 1995, 1996 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
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <stdio.h>
#include <string.h>
@ -24,7 +24,8 @@ extern char *_strerror_internal __P ((int, char *, size_t));
/* Return a string descibing the errno code in ERRNUM. At most BUFLEN
characters of the result will be placed in STRERRBUF. */
char *
strerror_r (int errnum, char *buf, size_t buflen)
__strerror_r (int errnum, char *buf, size_t buflen)
{
return _strerror_internal (errnum, buf, buflen);
}
weak_alias (__strerror_r, strerror_r)

View File

@ -1,43 +1,50 @@
/* Copyright (C) 1992 Free Software Foundation, Inc.
This file is part of the GNU C Library.
/* Copyright (C) 1992, 1996 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
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <ansidecl.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
char *
DEFUN(strfry, (string), char *string)
strfry (char *string)
{
static int init = 0;
static struct random_data rdata;
size_t len, i;
if (!init)
{
srand (time ((time_t *) NULL));
static int state[8] = { 1, 2, 3, 4, 5, 6, 7, 8 };
rdata.state = NULL;
__initstate_r (time ((time_t *) NULL), state, 8, &rdata);
init = 1;
}
len = strlen (string);
for (i = 0; i < len; ++i)
{
size_t j = rand () % len;
char c = string[i];
int32_t j;
char c;
__random_r (&rdata, &j);
j %= len;
c = string[i];
string[i] = string[j];
string[j] = c;
}

View File

@ -174,6 +174,7 @@ extern char *strerror __P ((int __errnum));
#ifdef __USE_REENTRANT
/* Reentrant version of `strerror'. If a temporary buffer is required, at
most BUFLEN bytes of BUF will be used. */
extern char *__strerror_r __P ((int __errnum, char *__buf, size_t __buflen));
extern char *strerror_r __P ((int __errnum, char *__buf, size_t __buflen));
#endif

View File

@ -1,22 +1,22 @@
/* Machine-dependent ELF dynamic relocation inline functions. Alpha version.
Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>.
Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/* This was written in the absence of an ABI -- don't expect
it to remain unchanged. */
@ -37,13 +37,13 @@ elf_machine_matches_host (Elf64_Word e_machine)
return e_machine == EM_ALPHA;
}
/* Return the run-time address of the _GLOBAL_OFFSET_TABLE_.
Must be inlined in a function which uses global data. */
static inline Elf64_Addr *
elf_machine_got (void)
/* Return the link-time address of _DYNAMIC. The multiple-got-capable
linker no longer allocates the first .got entry for this. But not to
worry, no special tricks are needed. */
static inline Elf64_Addr
elf_machine_dynamic (void)
{
register Elf64_Addr gp __asm__("$29");
return (Elf64_Addr *)(gp - 0x8000);
return (Elf64_Addr) &_DYNAMIC;
}
/* Return the run-time load address of the shared object. */

339
sysdeps/generic/a.out.h Normal file
View File

@ -0,0 +1,339 @@
#ifndef __A_OUT_GNU_H__
#define __A_OUT_GNU_H__
#ifdef __cplusplus
extern "C" {
#endif
#define __GNU_EXEC_MACROS__
#ifndef __STRUCT_EXEC_OVERRIDE__
struct exec
{
unsigned long a_info; /* Use macros N_MAGIC, etc for access */
unsigned a_text; /* size of text, in bytes */
unsigned a_data; /* size of data, in bytes */
unsigned a_bss; /* size of uninitialized data area, in bytes */
unsigned a_syms; /* length of symbol table data, in bytes */
unsigned a_entry; /* start address */
unsigned a_trsize; /* size of reloc info for text, in bytes */
unsigned a_drsize; /* size of reloc info for data, in bytes */
#if defined (sequent) && defined (i386)
struct gdtbl
{ /* Global Descriptor Table */
unsigned g_code[2];
unsigned g_data[2];
unsigned g_desc[2];
} a_gdtbl;
unsigned a_shdata; /* size of initialized shared data */
unsigned a_shbss; /* size of uninitialized shared data */
unsigned a_shdrsize; /* size of shared data relocation */
unsigned a_bootstrap[11]; /* bootstrap for standalone */
unsigned a_reserved[3]; /* reserved for future use */
unsigned a_version; /* object version */
#endif /* Sequent Symmetry, Dynix 3.x */
};
#endif /* __STRUCT_EXEC_OVERRIDE__ */
/* these go in the N_MACHTYPE field */
enum machine_type {
#if defined (M_OLDSUN2)
M__OLDSUN2 = M_OLDSUN2,
#else
M_OLDSUN2 = 0,
#endif
#if defined (M_68010)
M__68010 = M_68010,
#else
M_68010 = 1,
#endif
#if defined (M_68020)
M__68020 = M_68020,
#else
M_68020 = 2,
#endif
#if defined (M_SPARC)
M__SPARC = M_SPARC,
#else
M_SPARC = 3,
#endif
/* skip a bunch so we don't run into any of sun's numbers */
M_386 = 100
};
#if defined (sequent) && defined (i386)
/* Dynix 3 wants the magic number to be the whole first longword. */
#define N_MAGIC(exec) ((exec).a_info)
#define N_MACHTYPE(exec) 0
#define N_FLAGS(exec) 0
#define N_SET_INFO(exec, magic, type, flags) N_SET_MAGIC ((exec), (magic))
#define N_SET_MAGIC(exec, magic) ((exec).a_info = (magic))
#define N_SET_MACHTYPE(exec, machtype) ((void) 0)
#define N_SET_FLAGS(exec, flags) ((void) 0)
#define OMAGIC 0x12eb /* impure format - for .o's */
#define ZMAGIC 0x22eb /* demand load format - zero at zero */
#define NMAGIC you lose /* syntax error -- no pure format */
#define N_BADMAG(x) (N_MAGIC(x) != OMAGIC && N_MAGIC(x) != ZMAGIC)
#define N_ADDRADJ(x) (N_MAGIC(x) == ZMAGIC ? SEGMENT_SIZE : 0)
#define N_DATOFF(x) (N_TXTOFF(x) + (x).a_text - N_ADDRADJ(x))
#define N_TRELOFF(x) (N_DATOFF(x) + (x).a_data + (x).a_shdata)
#define N_SYMOFF(x) (N_DRELOFF(x) + (x).a_drsize + (x).a_shdrsize)
#define N_TXTADDR(x) SEGMENT_SIZE
#define N_COMM 0x0a /** conflicts with N_INDR **/
#define N_FN 0x0c
/* Note that the Dynix binutils believe that N_SET[TDB] are
N_SH{DATA,BSS,COMM} -- be wary when mixing GNU & Dynix objects. */
#define PAGE_SIZE 4096
#define SEGMENT_SIZE PAGE_SIZE
#else /* !(sequent && i386) */
#if !defined (N_MAGIC)
#define N_MAGIC(exec) ((exec).a_info & 0xffff)
#endif
#define N_MACHTYPE(exec) ((enum machine_type)(((exec).a_info >> 16) & 0xff))
#define N_FLAGS(exec) (((exec).a_info >> 24) & 0xff)
#define N_SET_INFO(exec, magic, type, flags) \
((exec).a_info = ((magic) & 0xffff) \
| (((int)(type) & 0xff) << 16) \
| (((flags) & 0xff) << 24))
#define N_SET_MAGIC(exec, magic) \
((exec).a_info = (((exec).a_info & 0xffff0000) | ((magic) & 0xffff)))
#define N_SET_MACHTYPE(exec, machtype) \
((exec).a_info = \
((exec).a_info&0xff00ffff) | ((((int)(machtype))&0xff) << 16))
#define N_SET_FLAGS(exec, flags) \
((exec).a_info = \
((exec).a_info&0x00ffffff) | (((flags) & 0xff) << 24))
#endif /* sequent && i386 */
#ifndef OMAGIC
/* Code indicating object file or impure executable. */
#define OMAGIC 0407
/* Code indicating pure executable. */
#define NMAGIC 0410
/* Code indicating demand-paged executable. */
#define ZMAGIC 0413
#endif /* not OMAGIC */
#if !defined (N_BADMAG)
#define N_BADMAG(x) \
(N_MAGIC(x) != OMAGIC && N_MAGIC(x) != NMAGIC \
&& N_MAGIC(x) != ZMAGIC)
#endif
#define _N_BADMAG(x) \
(N_MAGIC(x) != OMAGIC && N_MAGIC(x) != NMAGIC \
&& N_MAGIC(x) != ZMAGIC)
#ifndef sparc
#define _N_HDROFF(x) (SEGMENT_SIZE - sizeof (struct exec))
#else
#define _N_HDROFF(x) (- sizeof (struct exec))
#endif
#if !defined (N_TXTOFF)
#define N_TXTOFF(x) \
(N_MAGIC(x) == ZMAGIC ? _N_HDROFF((x)) + sizeof (struct exec) : sizeof (struct exec))
#endif
#if !defined (N_DATOFF)
#define N_DATOFF(x) (N_TXTOFF(x) + (x).a_text)
#endif
#if !defined (N_TRELOFF)
#define N_TRELOFF(x) (N_DATOFF(x) + (x).a_data)
#endif
#if !defined (N_DRELOFF)
#define N_DRELOFF(x) (N_TRELOFF(x) + (x).a_trsize)
#endif
#if !defined (N_SYMOFF)
#define N_SYMOFF(x) (N_DRELOFF(x) + (x).a_drsize)
#endif
#if !defined (N_STROFF)
#define N_STROFF(x) (N_SYMOFF(x) + (x).a_syms)
#endif
/* Address of text segment in memory after it is loaded. */
#if !defined (N_TXTADDR)
#define N_TXTADDR(x) 0
#endif
/* Address of data segment in memory after it is loaded.
Note that it is up to you to define SEGMENT_SIZE
on machines not listed here. */
#if defined (hp300) || defined (mips)
#define PAGE_SIZE 4096
#endif
#if defined (sparc) || defined (NeXT)
#define PAGE_SIZE 0x2000
#endif
#if defined (sony) || (defined (sun) && defined (mc68000))
#define SEGMENT_SIZE 0x2000
#endif /* Sony or 68k Sun. */
#ifdef is68k
#define SEGMENT_SIZE 0x20000
#endif
#if defined(m68k) && defined(PORTAR)
#define PAGE_SIZE 0x400
#endif
#if defined(i386) && !defined(sequent)
/* For COFF encapsulation. */
#define SEGMENT_SIZE 0x400000
#endif
#ifndef SEGMENT_SIZE
/* This used to be first in this paragraph and under:
if (defined(vax) || defined(hp300) || defined(pyr) || defined(sparc) \
|| (defined(m68k) && defined(PORTAR)) \
|| defined (NeXT) || defined (mips)) */
#define SEGMENT_SIZE PAGE_SIZE
#endif
#ifndef PAGE_SIZE
/* This value is for i386-minix, but that has no predefine.
Making it default will only cause confusion on machines
which have no proper value defined. */
#define PAGE_SIZE 16
#endif
#define PAGSIZ PAGE_SIZE
#define SEGSIZ SEGMENT_SIZE
#define _N_SEGMENT_ROUND(x) (((x) + SEGMENT_SIZE - 1) & ~(SEGMENT_SIZE - 1))
#define _N_TXTENDADDR(x) (N_TXTADDR(x)+(x).a_text)
#ifndef N_DATADDR
#define N_DATADDR(x) \
(N_MAGIC(x)==OMAGIC? (_N_TXTENDADDR(x)) \
: (_N_SEGMENT_ROUND (_N_TXTENDADDR(x))))
#endif
/* Address of bss segment in memory after it is loaded. */
#if !defined (N_BSSADDR)
#define N_BSSADDR(x) (N_DATADDR(x) + (x).a_data)
#endif
#if !defined (N_NLIST_DECLARED)
struct nlist {
union {
char *n_name;
struct nlist *n_next;
long n_strx;
} n_un;
unsigned char n_type;
char n_other;
short n_desc;
unsigned long n_value;
};
#endif /* no N_NLIST_DECLARED. */
#if !defined (N_UNDF)
#define N_UNDF 0
#endif
#if !defined (N_ABS)
#define N_ABS 2
#endif
#if !defined (N_TEXT)
#define N_TEXT 4
#endif
#if !defined (N_DATA)
#define N_DATA 6
#endif
#if !defined (N_BSS)
#define N_BSS 8
#endif
#if !defined (N_COMM)
#define N_COMM 18
#endif
#if !defined (N_FN)
#define N_FN 15
#endif
#if !defined (N_EXT)
#define N_EXT 1
#endif
#if !defined (N_TYPE)
#define N_TYPE 036
#endif
#if !defined (N_STAB)
#define N_STAB 0340
#endif
/* The following type indicates the definition of a symbol as being
an indirect reference to another symbol. The other symbol
appears as an undefined reference, immediately following this symbol.
Indirection is asymmetrical. The other symbol's value will be used
to satisfy requests for the indirect symbol, but not vice versa.
If the other symbol does not have a definition, libraries will
be searched to find a definition. */
#define N_INDR 0xa
/* The following symbols refer to set elements.
All the N_SET[ATDB] symbols with the same name form one set.
Space is allocated for the set in the text section, and each set
element's value is stored into one word of the space.
The first word of the space is the length of the set (number of elements).
The address of the set is made into an N_SETV symbol
whose name is the same as the name of the set.
This symbol acts like a N_DATA global symbol
in that it can satisfy undefined external references. */
/* These appear as input to LD, in a .o file. */
#define N_SETA 0x14 /* Absolute set element symbol */
#define N_SETT 0x16 /* Text set element symbol */
#define N_SETD 0x18 /* Data set element symbol */
#define N_SETB 0x1A /* Bss set element symbol */
/* This is output from LD. */
#define N_SETV 0x1C /* Pointer to set vector in data area. */
#if !defined (N_RELOCATION_INFO_DECLARED)
/* This structure describes a single relocation to be performed.
The text-relocation section of the file is a vector of these structures,
all of which apply to the text section.
Likewise, the data-relocation section applies to the data section. */
struct relocation_info
{
/* Address (within segment) to be relocated. */
int r_address;
/* The meaning of r_symbolnum depends on r_extern. */
unsigned int r_symbolnum:24;
/* Nonzero means value is a pc-relative offset
and it should be relocated for changes in its own address
as well as for changes in the symbol or section specified. */
unsigned int r_pcrel:1;
/* Length (as exponent of 2) of the field to be relocated.
Thus, a value of 2 indicates 1<<2 bytes. */
unsigned int r_length:2;
/* 1 => relocate with value of symbol.
r_symbolnum is the index of the symbol
in file's the symbol table.
0 => relocate with the address of a segment.
r_symbolnum is N_TEXT, N_DATA, N_BSS or N_ABS
(the N_EXT bit may be set also, but signifies nothing). */
unsigned int r_extern:1;
/* Four bits that aren't used, but when writing an object file
it is desirable to clear them. */
unsigned int r_pad:4;
};
#endif /* no N_RELOCATION_INFO_DECLARED. */
#ifdef __cplusplus
}
#endif
#endif /* __A_OUT_GNU_H__ */

View File

@ -1,21 +1,21 @@
/* Machine-dependent ELF dynamic relocation inline functions. i386 version.
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Copyright (C) 1995, 1996 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
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef dl_machine_h
#define dl_machine_h
@ -39,13 +39,14 @@ elf_machine_matches_host (Elf32_Half e_machine)
}
/* Return the run-time address of the _GLOBAL_OFFSET_TABLE_.
Must be inlined in a function which uses global data. */
static inline Elf32_Addr * __attribute__ ((unused))
elf_machine_got (void)
/* Return the link-time address of _DYNAMIC. Conveniently, this is the
first element of the GOT. This must be inlined in a function which
uses global data. */
static inline Elf32_Addr
elf_machine_dynamic (void)
{
register Elf32_Addr *got asm ("%ebx");
return got;
return *got;
}

View File

@ -1,21 +1,21 @@
/* Machine-dependent ELF dynamic relocation inline functions. m68k version.
Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Copyright (C) 1996 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
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef dl_machine_h
#define dl_machine_h
@ -38,13 +38,14 @@ elf_machine_matches_host (Elf32_Half e_machine)
}
/* Return the run-time address of the _GLOBAL_OFFSET_TABLE_.
Must be inlined in a function which uses global data. */
static inline Elf32_Addr *
elf_machine_got (void)
/* Return the link-time address of _DYNAMIC. Conveniently, this is the
first element of the GOT. This must be inlined in a function which
uses global data. */
static inline Elf32_Addr
elf_machine_dynamic (void)
{
register Elf32_Addr *got asm ("%a5");
return got;
return *got;
}

View File

@ -1,4 +1,5 @@
/* This linker script is installed as /lib/libc.a.
/* GNU ld script
This linker script is installed as /lib/libc.a.
It makes -lc become just like -( -lcrt -lmachuser -lhurduser -).
*/

View File

@ -1,4 +1,5 @@
/* This linker script is installed as /lib/libc_p.a.
/* GNU ld script
This linker script is installed as /lib/libc_p.a.
It makes -lc_p become just like -( -lcrt_p -lmachuser_p -lhurduser_p -).
*/

View File

@ -1,22 +1,22 @@
/* Machine-dependent ELF dynamic relocation inline functions. mips version.
Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Kazumoto Kojima <kkojima@info.kanagawa-u.ac.jp>.
/* Machine-dependent ELF dynamic relocation inline functions. MIPS version.
Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Kazumoto Kojima <kkojima@info.kanagawa-u.ac.jp>.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define ELF_MACHINE_NAME "MIPS"
@ -67,13 +67,14 @@ elf_mips_got_from_gpreg (ElfW(Addr) gpreg)
/* FIXME: the offset of gp from GOT may be system-dependent. */
return (ElfW(Addr) *) (gpreg - 0x7ff0);
}
/* Return the run-time address of the _GLOBAL_OFFSET_TABLE_.
Must be inlined in a function which uses global data. */
static inline ElfW(Addr) *
elf_machine_got (void)
/* Return the link-time address of _DYNAMIC. Conveniently, this is the
first element of the GOT. This must be inlined in a function which
uses global data. */
static inline ElfW(Addr)
elf_machine_dynamic (void)
{
register ElfW(Addr) gp asm ("$28");
return (ElfW(Addr) *) (gp - 0x7ff0);
return * (ElfW(Addr) *) (gp - 0x7ff0);
}

View File

@ -1,20 +1,20 @@
/* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
This file is part of the GNU C Library.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* Wants:
AC_STDC_HEADERS
@ -187,6 +187,10 @@ extern char *alloca ();
#define __getcwd getcwd
#endif
#if defined HAVE_READDIR_R && !defined _LIBC
#define __readdir_r readdir_r
#endif
/* Get the pathname of the current working directory, and put it in SIZE
bytes of BUF. Returns NULL if the directory couldn't be determined or
SIZE was too small. If successful, returns BUF. In GNU, if BUF is
@ -250,6 +254,9 @@ __getcwd (buf, size)
{
register DIR *dirstream;
register struct dirent *d;
#if defined HAVE_READDIR_R || defined _LIBC
struct dirent dirbuf;
#endif
dev_t dotdev;
ino_t dotino;
char mount_point;
@ -292,7 +299,13 @@ __getcwd (buf, size)
dirstream = __opendir (dotp);
if (dirstream == NULL)
goto lose;
while ((d = __readdir (dirstream)) != NULL)
while (
#if defined HAVE_READDIR_R || defined _LIBC
__readdir_r (dirstream, &dirbuf, &d) >= 0
#else
(d = __readdir (dirstream)) != NULL
#endif
)
{
if (d->d_name[0] == '.' &&
(d->d_name[1] == '\0' ||

View File

@ -1,20 +1,20 @@
/* Copyright (C) 1991, 1992, 1993, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <errno.h>
#include <limits.h>
@ -41,7 +41,7 @@ ttyname (fd)
dev_t mydev;
ino_t myino;
DIR *dirstream;
struct dirent *d;
struct dirent dirbuf, *d;
int save = errno;
if (!__isatty (fd))
@ -56,7 +56,7 @@ ttyname (fd)
if (dirstream == NULL)
return NULL;
while ((d = readdir (dirstream)) != NULL)
while (__readdir_r (dirstream, &dirbuf, &d) >= 0)
if ((ino_t) d->d_fileno == myino)
{
size_t dlen = _D_ALLOC_NAMLEN (d);

View File

@ -1,20 +1,20 @@
/* Copyright (C) 1991, 92, 93, 95, 96 Free Software Foundation, Inc.
This file is part of the GNU C Library.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <errno.h>
#include <limits.h>
@ -43,7 +43,7 @@ __ttyname_r (fd, buf, buflen)
dev_t mydev;
ino_t myino;
DIR *dirstream;
struct dirent *d;
struct dirent dirbuf, *d;
int save = errno;
/* Test for the absolute minimal size. This makes life easier inside
@ -74,7 +74,7 @@ __ttyname_r (fd, buf, buflen)
buf[sizeof (dev) - 1] = '/';
buflen -= sizeof (dev);
while ((d = readdir (dirstream)) != NULL)
while (__readdir_r (dirstream, &dirbuf, &d) >= 0)
if ((ino_t) d->d_fileno == myino)
{
char *cp;

View File

@ -1,21 +1,21 @@
/* Machine-dependent ELF dynamic relocation inline functions. SPARC version.
Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Copyright (C) 1996 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
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define ELF_MACHINE_NAME "sparc"
@ -46,13 +46,14 @@ elf_machine_matches_host (Elf32_Half e_machine)
}
/* Return the run-time address of the _GLOBAL_OFFSET_TABLE_.
Must be inlined in a function which uses global data. */
static inline Elf32_Addr *
elf_machine_got (void)
/* Return the link-time address of _DYNAMIC. Conveniently, this is the
first element of the GOT. This must be inlined in a function which
uses global data. */
static inline Elf32_Addr
elf_machine_dynamic (void)
{
register Elf32_Addr *got asm ("%l7");
return got;
return *got;
}

View File

@ -1,21 +1,21 @@
/* Machine-dependent ELF dynamic relocation inline functions. Stub version.
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Copyright (C) 1995, 1996 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
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define ELF_MACHINE_NAME "stub"
@ -36,11 +36,11 @@ elf_machine_matches_host (Elf32_Half e_machine)
}
/* Return the run-time address of the _GLOBAL_OFFSET_TABLE_. */
static inline Elf32_Addr *
elf_machine_got (void)
/* Return the link-time address of _DYNAMIC. */
static inline Elf32_Addr
elf_machine_dynamic (void)
{
#error "GOT not got"
#error "Damn, no _DYNAMIC"
}

View File

@ -1,20 +1,20 @@
/* Copyright (C) 1993, 1996 Free Software Foundation, Inc.
Contributed by Brendan Kehoe (brendan@zen.org).
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include <sysdep.h>
#include <features.h>
@ -63,22 +63,6 @@ __syscall_error:
lda sp, 16(sp)
ret
.end __syscall_error
/* A default non-threaded version of __errno_location that just returns
the address of errno. */
.weak __errno_location
.ent __errno_location
__errno_location:
.frame sp, 0, ra
ldgp gp, 0(t12)
.mask 0, 0
.prologue 1
lda v0, errno
ret
.end __errno_location
#else
ENTRY(__syscall_error)

View File

@ -1,20 +1,20 @@
/* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
This file is part of the GNU C Library.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <errno.h>
#include <limits.h>

View File

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

View File

@ -1,22 +1,21 @@
/* Copyright (C) 1991 Free Software Foundation, Inc.
This file is part of the GNU C Library.
/* Copyright (C) 1991, 1996 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
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <ansidecl.h>
#undef __OPTIMIZE__ /* Avoid inline `ctime' function. */
#include <time.h>
@ -26,10 +25,12 @@ Cambridge, MA 02139, USA. */
/* Return a string as returned by asctime which
is the representation of *T in that form. */
char *
DEFUN(ctime, (t), CONST time_t *t)
ctime (const time_t *t)
{
register struct tm *tp = localtime(t);
static char buf[64]; /* POSIX.1 suggests at least 26 bytes. */
struct tm tm;
struct tm *tp = __localtime_r (t, &tm);
if (tp == NULL)
return NULL;
return asctime(tp);
return __asctime_r (tp, buf);
}

View File

@ -1,22 +1,22 @@
/* ctime_r - return in BUF representation of time T in form of asctime
Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <time.h>