1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00

update from main archive 970202

1997-02-03 02:33  Ulrich Drepper  <drepper@cygnus.com>

	* elf/dl-deps.c (_dl_map_object_deps): Handle multiple AUXILIARY
	entries.  This is still no complete implementation since AUXILIARY
	entries in other shared objects are not yet handled.

	* libio/libio.h (_IO_cookie_io_functions_t): Move to C++ protected
	place.

	* po/es.po: Update.
	* po/fr.po: Update.
	* po/nl.po: Update.

	* time/Makefile: Better cross-compile support.  Avoid test which
	cannot be run.
	(CFLAGS-tzset.c): New variable.  Overwrite TZDEFAULT value from
	tzfile.h file.
	* time/tzfile.c (__tzfile_read): Allow TZDEFAULT start with '/' even
	in SUID programs.
	* time/tzset.c (__tzset_internal): If TZ envvar is not set use same
	default values as in tzfile.c.

	* elf/dynamic-link.h (elf_get_dynamic_info): Recognize versioning
	tags.
	* elf/link.h: Likewise.
	* elf/elf.h: Add tag definitions and data structures for versioning.

1997-02-03 02:17  Ulrich Drepper  <drepper@cygnus.com>

	* nis/rpcsvc/yp.x (struct ypresp_key_val): There is not stupid
	"Sun bug".  This is the order of elements also used by 4.4BSD.
	* nis/rpcsvc/yp.h: Likewise.
	Reported by HJ Lu.

1997-02-02 12:13  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* sunrpc/Makefile ($(objpfx)x%.h, $(objpfx)x%.c): Add "@:" as
	action.

	* Makefile (install): Pass installation directories as arguments
	to ldconfig.

1997-02-02 23:15  Ulrich Drepper  <drepper@cygnus.com>

	* malloc/malloc.c (__after_morecore_hook): New variable.
	(malloc_extend_top): Call __after_morecore_hook if set.
	(main_trim): Likewise.
	* malloc/malloc.h: Add declaration of __after_morecore_hook.
	Suggested by Marcus Daniels.

1997-02-02 23:00  Marcus G. Daniels  <marcus@tdb.com>

	* malloc/malloc.c (rEALLOc): Protect tsd_setspecific call by
	#ifndef NO_THREADS.
	(mallinfo): Likewise.

	* malloc/malloc.c (__morecore): Make external since it is used in
	programs.

1997-02-02 15:10  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/statbuf.h (struct stat): Make st_dev field
	unsigned.

1997-02-01 23:36  Richard Henderson  <rth@tamu.edu>

	* sysdeps/alpha/stxncpy.S ($unaligned) [src % 8 > dst % 8]: Don't
	use t6 as a temporary; it contains bits we still need in $u_head.

1997-01-31 15:05  John Bowman  <bowman@ipp-garching.mpg.de>

	* sysdeps/i386/fpu/__math.h [__USE_MISC]: Don't declare prototypes
	using __ prefix.  Add prototype for log1p.
This commit is contained in:
Ulrich Drepper
1997-02-03 03:18:58 +00:00
parent c0e4567461
commit 1228ed5cd5
22 changed files with 751 additions and 421 deletions

View File

@ -1,3 +1,77 @@
1997-02-03 02:33 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-deps.c (_dl_map_object_deps): Handle multiple AUXILIARY
entries. This is still no complete implementation since AUXILIARY
entries in other shared objects are not yet handled.
* libio/libio.h (_IO_cookie_io_functions_t): Move to C++ protected
place.
* po/es.po: Update.
* po/fr.po: Update.
* po/nl.po: Update.
* time/Makefile: Better cross-compile support. Avoid test which
cannot be run.
(CFLAGS-tzset.c): New variable. Overwrite TZDEFAULT value from
tzfile.h file.
* time/tzfile.c (__tzfile_read): Allow TZDEFAULT start with '/' even
in SUID programs.
* time/tzset.c (__tzset_internal): If TZ envvar is not set use same
default values as in tzfile.c.
* elf/dynamic-link.h (elf_get_dynamic_info): Recognize versioning
tags.
* elf/link.h: Likewise.
* elf/elf.h: Add tag definitions and data structures for versioning.
1997-02-03 02:17 Ulrich Drepper <drepper@cygnus.com>
* nis/rpcsvc/yp.x (struct ypresp_key_val): There is not stupid
"Sun bug". This is the order of elements also used by 4.4BSD.
* nis/rpcsvc/yp.h: Likewise.
Reported by HJ Lu.
1997-02-02 12:13 H.J. Lu <hjl@gnu.ai.mit.edu>
* sunrpc/Makefile ($(objpfx)x%.h, $(objpfx)x%.c): Add "@:" as
action.
* Makefile (install): Pass installation directories as arguments
to ldconfig.
1997-02-02 23:15 Ulrich Drepper <drepper@cygnus.com>
* malloc/malloc.c (__after_morecore_hook): New variable.
(malloc_extend_top): Call __after_morecore_hook if set.
(main_trim): Likewise.
* malloc/malloc.h: Add declaration of __after_morecore_hook.
Suggested by Marcus Daniels.
1997-02-02 23:00 Marcus G. Daniels <marcus@tdb.com>
* malloc/malloc.c (rEALLOc): Protect tsd_setspecific call by
#ifndef NO_THREADS.
(mallinfo): Likewise.
* malloc/malloc.c (__morecore): Make external since it is used in
programs.
1997-02-02 15:10 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/statbuf.h (struct stat): Make st_dev field
unsigned.
1997-02-01 23:36 Richard Henderson <rth@tamu.edu>
* sysdeps/alpha/stxncpy.S ($unaligned) [src % 8 > dst % 8]: Don't
use t6 as a temporary; it contains bits we still need in $u_head.
1997-01-31 15:05 John Bowman <bowman@ipp-garching.mpg.de>
* sysdeps/i386/fpu/__math.h [__USE_MISC]: Don't declare prototypes
using __ prefix. Add prototype for log1p.
1997-02-02 00:39 Ulrich Drepper <drepper@cygnus.com>
* dirent/dirent.h: Add description _DIRENT_HAVE_D_TYPE.

View File

@ -119,7 +119,7 @@ ifeq (no,$(cross-compiling))
ifeq (yes,$(build-shared))
install:
test ! -x $(common-objpfx)elf/ldconfig || \
$(common-objpfx)elf/ldconfig -d
$(common-objpfx)elf/ldconfig -d $(inst_slibdir) $(inst_libdir)
endif
endif

4
README
View File

@ -1,4 +1,4 @@
This directory contains the version 2.0 test release of the GNU C Library.
This directory contains the version 2.0.1 test release of the GNU C Library.
Many bugs have been fixed since the last release.
Some bugs surely remain.
@ -46,7 +46,7 @@ provides the Unix `crypt' function, plus some other entry points.
Because of the United States export restriction on DES implementations,
we are distributing this code separately from the rest of the C
library. There is an extra distribution tar file just for crypt; it is
called `glibc-crypt-2.0.tar.gz'. You can just unpack the crypt
called `glibc-crypt-2.0.1.tar.gz'. You can just unpack the crypt
distribution along with the rest of the C library and build; you can
also build the library without getting crypt. Users outside the USA
can get the crypt distribution via anonymous FTP from ftp.ifi.uio.no

View File

@ -32,7 +32,7 @@ _dl_map_object_deps (struct link_map *map,
struct link_map *map;
struct list *next;
};
struct list head[2 + npreloads], *tailp, *scanp;
struct list *head, *tailp, *scanp;
struct list duphead, *duptailp;
unsigned int nduplist;
unsigned int nlist, naux, i;
@ -49,36 +49,57 @@ _dl_map_object_deps (struct link_map *map,
naux = nlist = 0;
#define AUXTAG (DT_NUM + DT_PROCNUM + DT_EXTRATAGIDX (DT_AUXILIARY))
/* XXX The AUXILIARY implementation isn't correct in the moment. XXX
XXX The problem is that we currently do not handle auxiliary XXX
XXX entries in the loaded objects. XXX */
#define AUXTAG (DT_NUM + DT_PROCNUM + DT_VERSIONTAGNUM \
+ DT_EXTRATAGIDX (DT_AUXILIARY))
/* First determine the number of auxiliary objects we have to load. */
if (map->l_info[AUXTAG])
{
/* There is an auxiliary library specified. We try to load it,
and if we can, use its symbols in preference to our own.
But if we can't load it, we just silently ignore it.
XXX support multiple DT_AUXILIARYs?
*/
ElfW(Dyn) *d;
for (d = map->l_ld; d->d_tag != DT_NULL; ++d)
if (d->d_tag == DT_AUXILIARY)
++naux;
}
/* Now we can allocate the array for the linker maps. */
head = (struct list *) alloca (sizeof (struct list)
* (naux + npreloads + 2));
/* Load the auxiliary objects, even before the object itself. */
if (map->l_info[AUXTAG])
{
/* There is at least one auxiliary library specified. We try to
load it, and if we can, use its symbols in preference to our
own. But if we can't load it, we just silently ignore it. */
const char *strtab
= ((void *) map->l_addr + map->l_info[DT_STRTAB]->d_un.d_ptr);
ElfW(Dyn) *d;
for (d = map->l_ld; d->d_tag != DT_NULL; ++d)
if (d->d_tag == DT_AUXILIARY)
{
struct link_map *aux;
void openaux (void)
{
const char *strtab
= ((void *) map->l_addr + map->l_info[DT_STRTAB]->d_un.d_ptr);
aux = _dl_map_object (map, strtab + map->l_info[AUXTAG]->d_un.d_val,
map->l_type == lt_executable ? lt_library :
map->l_type, trace_mode);
aux = _dl_map_object (map, strtab + d->d_un.d_val,
(map->l_type == lt_executable
? lt_library : map->l_type),
trace_mode);
}
char *errstring;
const char *objname;
if (! _dl_catch_error (&errstring, &objname, &openaux))
{
/* The auxiliary object is actually there. Use it
as the first search element, even before MAP itself. */
if (! _dl_catch_error (&errstring, &objname, openaux))
/* The auxiliary object is actually there. Use it as
the first search element, even before MAP itself. */
preload (aux);
naux = 1;
}
}
/* Start the search list with one element: MAP itself. */
/* Next load MAP itself. */
preload (map);
/* Add the preloaded items after MAP but before any of its dependencies. */

View File

@ -26,11 +26,12 @@
static inline void __attribute__ ((unused))
elf_get_dynamic_info (ElfW(Dyn) *dyn,
ElfW(Dyn) *info[DT_NUM + DT_PROCNUM + DT_EXTRANUM])
ElfW(Dyn) *info[DT_NUM + DT_PROCNUM + DT_VERSIONTAGNUM
+ DT_EXTRANUM])
{
unsigned int i;
for (i = 0; i < DT_NUM + DT_PROCNUM + DT_EXTRANUM; ++i)
for (i = 0; i < DT_NUM + DT_PROCNUM + DT_VERSIONTAGNUM + DT_EXTRANUM; ++i)
info[i] = NULL;
if (! dyn)
@ -43,8 +44,11 @@ elf_get_dynamic_info (ElfW(Dyn) *dyn,
else if (dyn->d_tag >= DT_LOPROC &&
dyn->d_tag < DT_LOPROC + DT_PROCNUM)
info[dyn->d_tag - DT_LOPROC + DT_NUM] = dyn;
else if ((Elf32_Word) DT_VERSIONTAGIDX (dyn->d_tag) < DT_VERSIONTAGNUM)
info[DT_VERSIONTAGIDX (dyn->d_tag) + DT_NUM + DT_PROCNUM] = dyn;
else if ((Elf32_Word) DT_EXTRATAGIDX (dyn->d_tag) < DT_EXTRANUM)
info[DT_EXTRATAGIDX (dyn->d_tag) + DT_NUM + DT_PROCNUM] = dyn;
info[DT_EXTRATAGIDX (dyn->d_tag) + DT_NUM + DT_PROCNUM
+ DT_VERSIONTAGNUM] = dyn;
else
assert (! "bad dynamic tag");
dyn++;

View File

@ -232,6 +232,11 @@ typedef struct
#define SHT_SHLIB 10 /* Reserved */
#define SHT_DYNSYM 11 /* Dynamic linker symbol table */
#define SHT_NUM 12 /* Number of defined types. */
#define SHT_LOSUNW 0x6ffffffd /* Sun-specific low bound. */
#define SHT_GNU_verdef 0x6ffffffd /* Version definition section. */
#define SHT_GNU_verneed 0x6ffffffe /* Version needs section. */
#define SHT_GNU_versym 0x6fffffff /* Version symbol table. */
#define SHT_HISUNW 0x6fffffff /* Sun-specific high bound. */
#define SHT_LOPROC 0x70000000 /* Start of processor-specific */
#define SHT_HIPROC 0x7fffffff /* End of processor-specific */
#define SHT_LOUSER 0x80000000 /* Start of application-specific */
@ -464,6 +469,20 @@ typedef struct
#define DT_HIPROC 0x7fffffff /* End of processor-specific */
#define DT_PROCNUM DT_MIPS_NUM /* Most used by any processor */
/* The versioning entry types. The next are defined as part of the
GNU extension. */
#define DT_VERSYM 0x6ffffff0
/* These were chosen by Sun. */
#define DT_VERDEF 0x6ffffffc /* Address of version definition
table */
#define DT_VERDEFNUM 0x6ffffffd /* Number of version definitions */
#define DT_VERNEED 0x6ffffffe /* Address of table with needed
versions */
#define DT_VERNEEDNUM 0x6fffffff /* Number of needed versions */
#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag)) /* Reverse order! */
#define DT_VERSIONTAGNUM 16
/* Sun added these machine-independent extensions in the "processor-specific"
range. Be compatible. */
#define DT_AUXILIARY 0x7ffffffd /* Shared object to load before self */
@ -471,6 +490,71 @@ typedef struct
#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)
#define DT_EXTRANUM 3
/* Version definition sections. */
typedef struct
{
Elf32_Half vd_version; /* Version revision */
Elf32_Half vd_flags; /* Version information */
Elf32_Half vd_ndx; /* Version Index */
Elf32_Half vd_cnt; /* Number of associated aux entries */
Elf32_Word vd_hash; /* Version name hash value */
Elf32_Word vd_aux; /* Offset in bytes to verdaux array */
Elf32_Word vd_next; /* Offset in bytes to next verdef
entry */
} Elf32_Verdef;
/* Legal values for vd_version (version revision). */
#define VER_DEF_NONE 0 /* No version */
#define VER_DEF_CURRENT 1 /* Current version */
#define VER_DEF_NUM 2 /* Given version number */
/* Legal values for vd_flags (version information flags). */
#define VER_FLG_BASE 0x1 /* Version definition of file itself */
#define VER_FLG_WEAK 0x2 /* Weak version identifier */
/* Auxialiary version information. */
typedef struct
{
Elf32_Addr vda_name; /* Version or dependency names */
Elf32_Word vda_next; /* Offset in bytes to next verdaux
entry */
} Elf32_Verdaux;
/* Version dependency section. */
typedef struct
{
Elf32_Half vn_version; /* Version of structure */
Elf32_Half vn_cnt; /* Number of associated aux entries */
Elf32_Addr vn_file; /* Offset of filename for this
dependency */
Elf32_Word vn_aux; /* Offset in bytes to vernaux array */
Elf32_Word vn_next; /* Offset in bytes to next verneed
entry */
} Elf32_Verneed;
/* Legal values for vn_version (version revision). */
#define VER_NEED_NONE 0 /* No version */
#define VER_NEED_CURRENT 1 /* Current version */
#define VER_NEED_NUM 2 /* Given version number */
/* Auxiliary needed version information. */
typedef struct
{
Elf32_Word vna_hash; /* Hash value of dependency name */
Elf32_Half vna_flags; /* Dependency specific information */
Elf32_Half vna_other; /* Unused */
Elf32_Addr vna_name; /* Dependency name string offset */
Elf32_Word vna_next; /* Offset in bytes to next vernaux
entry */
} Elf32_Vernaux;
/* Legal values for vna_flags. */
#define VER_FLG_WEAK 0x2 /* Weak verison identifier */
/* Auxiliary vector. */

View File

@ -99,9 +99,12 @@ struct link_map
[0,DT_NUM) are indexed by the processor-independent tags.
[DT_NUM,DT_NUM+DT_PROCNUM) are indexed by the tag minus DT_LOPROC.
[DT_NUM+DT_PROCNUM,DT_NUM+DT_PROCNUM+DT_EXTRANUM) are indexed
by DT_EXTRATAGIDX(tagvalue) (see <elf.h>). */
by DT_EXTRATAGIDX(tagvalue) and
[DT_NUM+DT_PROCNUM+DT_VERSIONTAGNUM,
DT_NUM+DT_PROCNUM+DT_VERSIONTAGNUM+DT_EXTRANUM)
are indexed by DT_EXTRATAGIDX(tagvalue) (see <elf.h>). */
ElfW(Dyn) *l_info[DT_NUM + DT_PROCNUM + DT_EXTRANUM];
ElfW(Dyn) *l_info[DT_NUM + DT_PROCNUM + DT_VERSIONTAGNUM + DT_EXTRANUM];
const ElfW(Phdr) *l_phdr; /* Pointer to program header table in core. */
ElfW(Addr) l_entry; /* Entry point location. */
ElfW(Half) l_phnum; /* Number of program header entries. */

View File

@ -149,15 +149,6 @@ the executable file might be covered by the GNU General Public License. */
struct _IO_jump_t; struct _IO_FILE;
/* Define the user-visible type, with user-friendly member names. */
typedef struct
{
_IO_ssize_t (*read) __P ((struct _IO_FILE *, void *, _IO_ssize_t));
_IO_ssize_t (*write) __P ((struct _IO_FILE *, const void *, _IO_ssize_t));
_IO_fpos_t (*seek) __P ((struct _IO_FILE *, _IO_off_t, int));
int (*close) __P ((struct _IO_FILE *));
} _IO_cookie_io_functions_t;
/* Handle lock. */
#ifdef _IO_MTSAFE_IO
#include <stdio-lock.h>
@ -236,6 +227,15 @@ extern struct _IO_FILE_plus _IO_stdin_, _IO_stdout_, _IO_stderr_;
#define _IO_stderr ((_IO_FILE*)(&_IO_stderr_))
/* Define the user-visible type, with user-friendly member names. */
typedef struct
{
_IO_ssize_t (*read) __P ((struct _IO_FILE *, void *, _IO_ssize_t));
_IO_ssize_t (*write) __P ((struct _IO_FILE *, const void *, _IO_ssize_t));
_IO_fpos_t (*seek) __P ((struct _IO_FILE *, _IO_off_t, int));
int (*close) __P ((struct _IO_FILE *));
} _IO_cookie_io_functions_t;
/* Special file type for fopencookie function. */
struct _IO_cookie_file {
struct _IO_FILE file;

View File

@ -820,12 +820,12 @@ do { \
#if __STD_C
Void_t * __default_morecore (ptrdiff_t);
static Void_t *(*__morecore)(ptrdiff_t) = __default_morecore;
Void_t *(*__morecore)(ptrdiff_t) = __default_morecore;
#else
Void_t * __default_morecore ();
static Void_t *(*__morecore)() = __default_morecore;
Void_t *(*__morecore)() = __default_morecore;
#endif
@ -1615,6 +1615,7 @@ __malloc_ptr_t weak_variable (*__realloc_hook)
__MALLOC_P ((__malloc_ptr_t __ptr, size_t __size)) = realloc_hook_ini;
__malloc_ptr_t weak_variable (*__memalign_hook)
__MALLOC_P ((size_t __size, size_t __alignment)) = memalign_hook_ini;
void weak_variable (*__after_morecore_hook) __MALLOC_P ((void)) = NULL;
/* Activate a standard set of debugging hooks. */
void
@ -2215,6 +2216,10 @@ static void malloc_extend_top(ar_ptr, nb) arena *ar_ptr; INTERNAL_SIZE_T nb;
(brk < old_end && old_top != initial_top(&main_arena)))
return;
/* Call the `morecore' hook if necessary. */
if (__after_morecore_hook)
(*__after_morecore_hook) ();
sbrked_mem += sbrk_size;
if (brk == old_end) { /* can just add bytes to current top */
@ -2243,6 +2248,10 @@ static void malloc_extend_top(ar_ptr, nb) arena *ar_ptr; INTERNAL_SIZE_T nb;
new_brk = (char*)(MORECORE (correction));
if (new_brk == (char*)(MORECORE_FAILURE)) return;
/* Call the `morecore' hook if necessary. */
if (__after_morecore_hook)
(*__after_morecore_hook) ();
sbrked_mem += correction;
top(&main_arena) = (mchunkptr)brk;
@ -2914,8 +2923,10 @@ Void_t* rEALLOc(oldmem, bytes) Void_t* oldmem; size_t bytes;
(void)mutex_lock(&ar_ptr->mutex);
#endif
#ifndef NO_THREADS
/* As in malloc(), remember this arena for the next allocation. */
tsd_setspecific(arena_key, (Void_t *)ar_ptr);
#endif
newp = chunk_realloc(ar_ptr, oldp, oldsize, nb);
@ -3421,6 +3432,10 @@ main_trim(pad) size_t pad;
new_brk = (char*)(MORECORE (-extra));
/* Call the `morecore' hook if necessary. */
if (__after_morecore_hook)
(*__after_morecore_hook) ();
if (new_brk == (char*)(MORECORE_FAILURE)) { /* sbrk failed? */
/* Try to figure out what we have */
current_brk = (char*)(MORECORE (0));
@ -3703,7 +3718,9 @@ struct mallinfo mALLINFo()
struct mallinfo mi;
Void_t *vptr = NULL;
#ifndef NO_THREADS
tsd_getspecific(arena_key, vptr);
#endif
malloc_update_mallinfo((vptr ? (arena*)vptr : &main_arena), &mi);
return mi;
}

View File

@ -181,6 +181,7 @@ extern __malloc_ptr_t (*__realloc_hook) __MALLOC_P ((__malloc_ptr_t __ptr,
size_t __size));
extern __malloc_ptr_t (*__memalign_hook) __MALLOC_P ((size_t __size,
size_t __alignment));
extern void (*__after_morecore_hook) __MALLOC_P ((void));
/* Activate a standard set of debugging hooks. */
extern void __malloc_check_init __MALLOC_P ((void));

View File

@ -221,8 +221,8 @@ bool_t xdr_ypresp_val();
struct ypresp_key_val {
ypstat stat;
valdat val;
keydat key;
valdat val;
};
typedef struct ypresp_key_val ypresp_key_val;
#ifdef __cplusplus

View File

@ -114,13 +114,8 @@ struct ypresp_val {
struct ypresp_key_val {
ypstat stat;
#ifdef STUPID_SUN_BUG
keydat key;
valdat val;
#else
valdat val;
keydat key;
#endif
};
@ -296,5 +291,3 @@ program YPBINDPROG {
YPBINDPROC_SETDOM(ypbind_setdom) = 2;
} = 2;
} = 100007;

430
po/es.po

File diff suppressed because it is too large Load Diff

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: GNU libc 1.98\n"
"POT-Creation-Date: 1996-12-03 13:50+0100\n"
"PO-Revision-Date: 1996-12-12 22:46 -0500\n"
"PO-Revision-Date: 1997-01-24 20:13 -0500\n"
"Last-Translator: Michel Robitaille <robitail@IRO.UMontreal.CA>\n"
"Language-Team: French <fr@li.org>\n"
"MIME-Version: 1.0\n"
@ -881,11 +881,11 @@ msgstr "Connexion par liens par noeuds multiples de relais tent
#: nis/ypclnt.c:659
msgid "NIS client/server version mismatch - can't supply service"
msgstr "Non concrodance de la version client/serveur NIS - ne peut fournir le service."
msgstr "Non concordance de la version client/serveur NIS - ne peut fournir le service."
#: nis/ypclnt.c:657
msgid "NIS map data base is bad"
msgstr "La table de la base de donn<6E>es NIS est corrumpue."
msgstr "La table de la base de donn<6E>es NIS est corrompue."
#: stdio-common/../sysdeps/gnu/errlist.c:746
msgid "Name not unique on network"

View File

@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
"Project-Id-Version: libc 1.94\n"
"Project-Id-Version: libc 2.0\n"
"POT-Creation-Date: 1996-09-08 3:45\n"
"PO-Revision-Date: 1996-09-17 14:30 MET DST\n"
"Last-Translator: Erick Branderhorst <branderh@debian.org>\n"
@ -25,23 +25,23 @@ msgstr " %s [-s udp|tcp]* [-o uitvoerbestand] [invoerbestand]\n"
#: sunrpc/rpcinfo.c:612
msgid " rpcinfo -b prognum versnum\n"
msgstr ""
msgstr " rpcinfo -b programanummer versienummer\n"
#: sunrpc/rpcinfo.c:613
msgid " rpcinfo -d prognum versnum\n"
msgstr ""
msgstr " rpcinfo -d programanummer versienummer\n"
#: sunrpc/rpcinfo.c:611
msgid " rpcinfo -p [ host ]\n"
msgstr ""
msgstr " rpcinfo -p [ host ]\n"
#: sunrpc/rpcinfo.c:610
msgid " rpcinfo [ -n portnum ] -t host prognum [ versnum ]\n"
msgstr ""
msgstr " rpcinfo [ -n poortnummer ] -t host programanummer [ versienummer ]\n"
#: sunrpc/rpcinfo.c:517
msgid " program vers proto port\n"
msgstr ""
msgstr " program vers proto port\n"
#: time/zic.c:425
#, c-format
@ -967,7 +967,7 @@ msgstr "Numeriek resultaat is buiten domein"
#. TRANS properly on the GNU system, making this error code impossible.)
#: stdio-common/../sysdeps/gnu/errlist.c:502
msgid "Object is remote"
msgstr ""
msgstr "Object is niet lokaal"
#: time/zic.c:1940
msgid "Odd number of quotation marks"
@ -1306,7 +1306,7 @@ msgstr "Gestopt (tty uitvoer)"
#: stdio-common/../sysdeps/gnu/errlist.c:778
msgid "Streams pipe error"
msgstr ""
msgstr "Stromen pijp fout"
#: stdio-common/../sysdeps/gnu/errlist.c:782
msgid "Structure needs cleaning"
@ -1652,7 +1652,7 @@ msgstr "verwacht `from' na eerste argument (??)to `collating-element'"
#: locale/programs/ld-collate.c:1108
msgid ""
"`from' string in collation element declaration contains unknown character"
msgstr ""
msgstr "`from' string in vergelijkende element declaratie bevat onbekend karakter"
#: locale/programs/charmap.c:267
#, c-format
@ -1734,7 +1734,7 @@ msgstr "kan niet invoegen in resultaat tabel"
#: locale/programs/ld-collate.c:1165 locale/programs/ld-collate.c:1207
#, c-format
msgid "cannot insert new collating symbol definition: %s"
msgstr ""
msgstr "kan geen nieuw vergelijking symbool definitie invoegen: %s"
#: db/makedb.c:149
#, c-format
@ -1763,7 +1763,7 @@ msgstr "kan uitvoerbestand `%s' niet openen voor categorie `%s'"
#: locale/programs/ld-collate.c:1359
msgid "cannot process order specification"
msgstr ""
msgstr "kan de gespecificeerde volgorde niet afhandelen"
#: locale/programs/locale.c:293
#, c-format
@ -2041,7 +2041,7 @@ msgstr "ongeldige codering gegeven"
#: locale/programs/linereader.c:546
msgid "illegal escape sequence at end of string"
msgstr ""
msgstr "ongeldige escape reeks aan het einde van string"
#: locale/programs/charset.c:101
msgid "illegal names for character range"
@ -2128,15 +2128,15 @@ msgstr "ongeldige tijd van de dag"
#: time/zic.c:1319
msgid "invalid weekday name"
msgstr "ongeldig weekdagnaam"
msgstr "ongeldig naam voor weekdag"
#: locale/programs/ld-collate.c:1411
msgid "line after ellipsis must contain character definition"
msgstr ""
msgstr "regel na ellipsis moet een karakter definitie bevatten"
#: locale/programs/ld-collate.c:1390
msgid "line before ellipsis does not contain definition for character constant"
msgstr ""
msgstr "regel voor ellipsis bevat geen konstante karakter definitie"
#: time/zic.c:795
msgid "line too long"
@ -2157,7 +2157,7 @@ msgstr "geheugen clobbered voordat blok gereserveerd was (FIXME)"
#: malloc/mcheck.c:186
msgid "memory clobbered past end of allocated block"
msgstr ""
msgstr "geheugen `clobbered' na het einde van een gealloceerd blok"
#: locale/programs/ld-collate.c:167 locale/programs/ld-collate.c:173
#: locale/programs/ld-collate.c:177 locale/programs/ld-collate.c:1438
@ -2186,7 +2186,7 @@ msgstr "geen array-of-pointer declaraties -- gebruik typedef"
#: locale/programs/ld-messages.c:95 locale/programs/ld-messages.c:116
#, c-format
msgid "no correct regular expression for field `%s' in category `%s': %s"
msgstr ""
msgstr "geen correct reguliere expressie voor veld `%s' in category `%s': %s"
#: time/zic.c:2060
msgid "no day in month matches rule"
@ -2285,30 +2285,30 @@ msgstr "herhalend schrikkelseconde moment"
#: sunrpc/rpcinfo.c:659
#, c-format
msgid "rpcinfo: %s is unknown host\n"
msgstr ""
msgstr "rpcinfo: %s is onbekende host\n"
#: sunrpc/rpcinfo.c:626
#, c-format
msgid "rpcinfo: %s is unknown service\n"
msgstr ""
msgstr "rpcinfo: %s is onbekende service\n"
#: sunrpc/rpcinfo.c:600
#, c-format
msgid "rpcinfo: Could not delete registration for prog %s version %s\n"
msgstr ""
msgstr "rpcinfo: Kan geen registratie verwijderen voor programma %s versie %s\n"
#: sunrpc/rpcinfo.c:576
#, c-format
msgid "rpcinfo: broadcast failed: %s\n"
msgstr ""
msgstr "rpcinfo: uitzending mislukt: %s\n"
#: sunrpc/rpcinfo.c:505
msgid "rpcinfo: can't contact portmapper"
msgstr ""
msgstr "rpcinfo: kan geen kontakt krijgen met portmapper"
#: sunrpc/rpcinfo.c:510
msgid "rpcinfo: can't contact portmapper: "
msgstr ""
msgstr "rpcinfo: kan geen kontakt krijgen met portmapper: "
#: sunrpc/portmap.c:137
msgid "run_svc returned unexpectedly\n"
@ -2320,11 +2320,11 @@ msgstr "zelfde regel naam in meerdere bestanden"
#: inet/rcmd.c:158
msgid "select: protocol failure in circuit setup\n"
msgstr ""
msgstr "select: protocol mislukt in opstart circuit\n"
#: inet/rcmd.c:176
msgid "socket: protocol failure in circuit setup.\n"
msgstr ""
msgstr "socket: protocol mislukt in opstart circuit.\n"
#: locale/programs/locfile.c:600
msgid "sorting order `forward' and `backward' are mutually exclusive"
@ -2349,15 +2349,15 @@ msgstr "beginjaar is groter dan eindejaar"
#: sunrpc/svc_tcp.c:199 sunrpc/svc_tcp.c:204
msgid "svc_tcp: makefd_xprt: out of memory\n"
msgstr ""
msgstr "svc_tcp: makefd_xprt: geen geheugen meer\n"
#: sunrpc/svc_tcp.c:147
msgid "svctcp_.c - cannot getsockname or listen"
msgstr ""
msgstr "svctcp_.c - `getsockname' of `listen' lukken niet"
#: sunrpc/svc_tcp.c:134
msgid "svctcp_.c - udp socket creation problem"
msgstr ""
msgstr "svctcp_.c - udp socket aanmaak probleem"
#: sunrpc/svc_tcp.c:154 sunrpc/svc_tcp.c:161
msgid "svctcp_create: out of memory\n"
@ -2365,11 +2365,11 @@ msgstr "svctcp_create: geen geheugen meer beschikbaar\n"
#: sunrpc/svc_udp.c:119
msgid "svcudp_create - cannot getsockname"
msgstr ""
msgstr "svcudp_create - `getsockname' lukt niet"
#: sunrpc/svc_udp.c:107
msgid "svcudp_create: socket creation problem"
msgstr ""
msgstr "svcudp_create: socket aanmaak probleem"
#: locale/programs/ld-collate.c:1190
#, c-format
@ -2377,6 +2377,8 @@ msgid ""
"symbol for multicharacter collating element `%.*s' duplicates element "
"definition"
msgstr ""
"symbool voor multikarakter vergelijkings element `%.*s' dupliceerd\n"
"element definitie"
#: locale/programs/ld-collate.c:1063
#, c-format
@ -2384,6 +2386,8 @@ msgid ""
"symbol for multicharacter collating element `%.*s' duplicates other element "
"definition"
msgstr ""
"symbool voor multikarakter vergelijkings element `%.*s' dupliceert\n"
"andere element definities"
#: locale/programs/ld-collate.c:1199
#, c-format
@ -2391,6 +2395,8 @@ msgid ""
"symbol for multicharacter collating element `%.*s' duplicates other symbol "
"definition"
msgstr ""
"symbool voor multikarakter vergelijkings element `%.*s' dupliceert\n"
"andere symbool definitie"
#: locale/programs/ld-collate.c:1072
#, c-format
@ -2428,7 +2434,7 @@ msgstr "syntactische fout in karakter conversie definitie"
#: locale/programs/locfile.c:662
msgid "syntax error in collating order definition"
msgstr ""
msgstr "syntactische fout in collating volgorde definitie"
#: locale/programs/locfile.c:512
msgid "syntax error in collation definition"

View File

@ -121,6 +121,7 @@ defines := $(defines) -D_PATH_RPC='"$(sysconfdir)/rpc"'
# We use a stamp file to avoid unnessary recompilation each time rpcgen is
# relinked.
$(objpfx)rpcsvc/%.h: $(objpfx)rpcsvc/%.stmp
@:
$(objpfx)rpcsvc/%.stmp: rpcsvc/%.x $(objpfx)rpcgen
$(make-target-directory)
-@rm -f ${@:stmp=T} $@
@ -132,6 +133,7 @@ $(objpfx)rpcsvc/%.stmp: rpcsvc/%.x $(objpfx)rpcgen
# Generate the rpcsvc XDR functions with rpcgen.
$(objpfx)x%.c: $(objpfx)x%.stmp
@:
$(objpfx)x%.stmp: rpcsvc/%.x $(objpfx)rpcgen
-@rm -f ${@:stmp=T} $@
$(rpcgen-cmd) -c $< -o ${@:stmp=T}

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996 Free Software Foundation, Inc.
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
Contributed by Richard Henderson (rth@tamu.edu)
This file is part of the GNU C Library.
@ -321,9 +321,9 @@ $unaligned:
mskqh t2, t5, t2 # e0 : begin src byte validity mask
cmpbge zero, t1, t7 # .. e1 : is there a zero?
extql t2, a1, t2 # e0 :
or t7, t10, t6 # .. e1 : test for end-of-count too
or t7, t10, t5 # .. e1 : test for end-of-count too
cmpbge zero, t2, t3 # e0 :
cmoveq a2, t6, t7 # .. e1 :
cmoveq a2, t5, t7 # .. e1 :
andnot t7, t3, t7 # e0 :
beq t7, $u_head # .. e1 (zdb)

View File

@ -1,5 +1,5 @@
/* Inline math functions for i387.
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by John C. Bowman <bowman@ipp-garching.mpg.de>, 1995.
@ -373,13 +373,14 @@ ceil (double __x)
/* Optimized versions for some non-standardized functions. */
#ifdef __USE_MISC
__MATH_INLINE double __hypot (double __x, double __y);
__MATH_INLINE double hypot (double __x, double __y);
__MATH_INLINE double
hypot (double __x, double __y)
{
return sqrt (__x * __x + __y * __y);
}
__MATH_INLINE double log1p (double __x);
__MATH_INLINE double
log1p (double __x)
{
@ -397,7 +398,7 @@ log1p (double __x)
return __value;
}
__MATH_INLINE double __asinh (double __x);
__MATH_INLINE double asinh (double __x);
__MATH_INLINE double
asinh (double __x)
{
@ -407,14 +408,14 @@ asinh (double __x)
* __sgn1 (__x));
}
__MATH_INLINE double __acosh (double __x);
__MATH_INLINE double acosh (double __x);
__MATH_INLINE double
acosh (double __x)
{
return log (__x + sqrt (__x - 1.0) * sqrt (__x + 1.0));
}
__MATH_INLINE double __atanh (double __x);
__MATH_INLINE double atanh (double __x);
__MATH_INLINE double
atanh (double __x)
{
@ -423,7 +424,7 @@ atanh (double __x)
return -0.5 * __log1p (-(__y + __y) / (1.0 + __y)) * __sgn1 (__x);
}
__MATH_INLINE double __coshm1 (double __x);
__MATH_INLINE double coshm1 (double __x);
__MATH_INLINE double
coshm1 (double __x)
{
@ -432,14 +433,14 @@ coshm1 (double __x)
return 0.5 * (__exm1 / (__exm1 + 1.0)) * __exm1;
}
__MATH_INLINE double __acosh1p (double __x);
__MATH_INLINE double acosh1p (double __x);
__MATH_INLINE double
acosh1p (double __x)
{
return __log1p (__x + sqrt (__x) * sqrt (__x + 2.0));
}
__MATH_INLINE double __logb (double __x);
__MATH_INLINE double logb (double __x);
__MATH_INLINE double
logb (double __x)
{
@ -451,7 +452,7 @@ logb (double __x)
return __value;
}
__MATH_INLINE double __drem (double __x, double __y);
__MATH_INLINE double drem (double __x, double __y);
__MATH_INLINE double
drem (double __x, double __y)
{
@ -466,7 +467,7 @@ drem (double __x, double __y)
return __value;
}
__MATH_INLINE void __sincos (double __x, double *__sinx, double *__cosx);
__MATH_INLINE void sincos (double __x, double *__sinx, double *__cosx);
__MATH_INLINE void
sincos (double __x, double *__sinx, double *__cosx)
{
@ -479,14 +480,14 @@ sincos (double __x, double *__sinx, double *__cosx)
*__cosx = __cosr;
}
__MATH_INLINE double __sgn (double __x);
__MATH_INLINE double sgn (double __x);
__MATH_INLINE double
sgn (double __x)
{
return (__x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0));
}
__MATH_INLINE double __pow2 (double __x);
__MATH_INLINE double pow2 (double __x);
__MATH_INLINE double
pow2 (double __x)
{

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1992, 1995, 1996 Free Software Foundation, Inc.
/* Copyright (C) 1992, 1995, 1996, 1997 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
@ -32,8 +32,8 @@
struct stat
{
short int st_dev; /* Device. */
unsigned short __pad1;
unsigned short int st_dev; /* Device. */
unsigned short int __pad1;
unsigned long int st_ino; /* File serial number. */
unsigned short int st_mode; /* File mode. */
unsigned short int st_nlink; /* Link count. */

View File

@ -35,11 +35,7 @@ routines := offtime asctime clock ctime ctime_r difftime \
strptime
others := ap zdump zic
tests := test_time clocktest test-tz
# Before the test-tz test can be run we need the data to be installed.
tests: install-test-data
tests := test_time clocktest
tzfiles := africa antarctica asia australasia europe northamerica \
southamerica etcetera factory systemv backward \
@ -56,6 +52,15 @@ all: # Make this the default target; it will be defined in Rules.
include ../Makeconfig # Get objpfx defined so we can use it below.
ifeq (no,$(cross-compiling))
# We can run the test-tz test only if we can install the test data using
# zic. This isn't possible when cross-compiling.
tests += test-tz
# Before the test-tz test can be run we need the data to be installed.
tests: install-test-data
endif
# z.* use this variable.
define nl
@ -158,6 +163,7 @@ CFLAGS-zic.c = -Wno-strict-prototypes -DNOID $(tz-cflags)
CFLAGS-ialloc.c = -Wno-strict-prototypes -DNOID
CFLAGS-scheck.c = -Wno-strict-prototypes -DNOID
CFLAGS-tzfile.c = $(tz-cflags)
CFLAGS-tzset.c = $(tz-cflags)
# We have to make sure the data for testing the tz functions is available.
.PHONY: install-test-data

View File

@ -112,17 +112,19 @@ __tzfile_read (const char *file)
else if (*file == '\0')
/* User specified the empty string; use UTC explicitly. */
file = "Universal";
/* We must not allow to read an arbitrary file in a setuid program.
So we fail for any file which is not in the directory hierachy
starting at TZDIR. */
else
{
/* We must not allow to read an arbitrary file in a setuid
program. So we fail for any file which is not in the
directory hierachy starting at TZDIR. */
if (__libc_enable_secure
&& ((*file == '/'
&& memcmp (file, default_tzdir, sizeof (default_tzdir) - 1) != 0)
&& memcmp (file, default_tzdir, sizeof (default_tzdir) - 1))
|| strstr (file, "../") != NULL))
/* This test a certainly a bit too restrictive but it should catch all
critical case. */
/* This test a certainly a bit too restrictive but it should
catch all critical case. */
return;
}
if (*file != '/')
{

View File

@ -94,6 +94,12 @@ __tzset_internal (always)
/* Examine the TZ environment variable. */
tz = getenv ("TZ");
if (tz == NULL)
/* No user specification; use the site-wide default. */
tz = TZDEFAULT;
else if (*tz == '\0')
/* User specified the empty string; use UTC explicitly. */
tz = "Universal";
/* A leading colon means "implementation defined syntax".
We ignore the colon and always use the same algorithm: