mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-18 08:51:06 +00: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:
parent
c0e4567461
commit
1228ed5cd5
74
ChangeLog
74
ChangeLog
@ -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.
|
||||
|
2
Makefile
2
Makefile
@ -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
4
README
@ -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
|
||||
|
@ -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?
|
||||
*/
|
||||
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);
|
||||
}
|
||||
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. */
|
||||
preload (aux);
|
||||
naux = 1;
|
||||
}
|
||||
ElfW(Dyn) *d;
|
||||
for (d = map->l_ld; d->d_tag != DT_NULL; ++d)
|
||||
if (d->d_tag == DT_AUXILIARY)
|
||||
++naux;
|
||||
}
|
||||
|
||||
/* Start the search list with one element: MAP itself. */
|
||||
/* 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)
|
||||
{
|
||||
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. */
|
||||
preload (aux);
|
||||
}
|
||||
}
|
||||
|
||||
/* Next load MAP itself. */
|
||||
preload (map);
|
||||
|
||||
/* Add the preloaded items after MAP but before any of its dependencies. */
|
||||
|
@ -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++;
|
||||
|
84
elf/elf.h
84
elf/elf.h
@ -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. */
|
||||
|
||||
|
@ -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. */
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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));
|
||||
|
224
nis/rpcsvc/yp.h
224
nis/rpcsvc/yp.h
@ -5,23 +5,23 @@
|
||||
* may copy or modify Sun RPC without charge, but are not authorized
|
||||
* to license or distribute it to anyone else except as part of a product or
|
||||
* program developed by the user.
|
||||
*
|
||||
*
|
||||
* SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
|
||||
* WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
|
||||
*
|
||||
*
|
||||
* Sun RPC is provided with no support and without any obligation on the
|
||||
* part of Sun Microsystems, Inc. to assist in its use, correction,
|
||||
* modification or enhancement.
|
||||
*
|
||||
*
|
||||
* SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
|
||||
* INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
|
||||
* OR ANY PART THEREOF.
|
||||
*
|
||||
*
|
||||
* In no event will Sun Microsystems, Inc. be liable for any lost revenue
|
||||
* or profits or other special, indirect and consequential damages, even if
|
||||
* Sun has been advised of the possibility of such damages.
|
||||
*
|
||||
*
|
||||
* Sun Microsystems, Inc.
|
||||
* 2550 Garcia Avenue
|
||||
* Mountain View, California 94043
|
||||
@ -51,13 +51,13 @@ enum ypstat {
|
||||
YP_VERS = -8,
|
||||
};
|
||||
typedef enum ypstat ypstat;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_ypstat(XDR *, ypstat*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_ypstat(XDR *, ypstat*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_ypstat();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
|
||||
enum ypxfrstat {
|
||||
@ -79,69 +79,69 @@ enum ypxfrstat {
|
||||
YPXFR_REFUSED = -14,
|
||||
};
|
||||
typedef enum ypxfrstat ypxfrstat;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_ypxfrstat(XDR *, ypxfrstat*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_ypxfrstat(XDR *, ypxfrstat*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_ypxfrstat();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
|
||||
typedef char *domainname;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_domainname(XDR *, domainname*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_domainname(XDR *, domainname*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_domainname();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
|
||||
typedef char *mapname;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_mapname(XDR *, mapname*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_mapname(XDR *, mapname*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_mapname();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
|
||||
typedef char *peername;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_peername(XDR *, peername*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_peername(XDR *, peername*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_peername();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
|
||||
typedef struct {
|
||||
u_int keydat_len;
|
||||
char *keydat_val;
|
||||
} keydat;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_keydat(XDR *, keydat*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_keydat(XDR *, keydat*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_keydat();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
|
||||
typedef struct {
|
||||
u_int valdat_len;
|
||||
char *valdat_val;
|
||||
} valdat;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_valdat(XDR *, valdat*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_valdat(XDR *, valdat*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_valdat();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
|
||||
struct ypmap_parms {
|
||||
@ -151,13 +151,13 @@ struct ypmap_parms {
|
||||
peername peer;
|
||||
};
|
||||
typedef struct ypmap_parms ypmap_parms;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_ypmap_parms(XDR *, ypmap_parms*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_ypmap_parms(XDR *, ypmap_parms*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_ypmap_parms();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
|
||||
struct ypreq_key {
|
||||
@ -166,13 +166,13 @@ struct ypreq_key {
|
||||
keydat key;
|
||||
};
|
||||
typedef struct ypreq_key ypreq_key;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_ypreq_key(XDR *, ypreq_key*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_ypreq_key(XDR *, ypreq_key*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_ypreq_key();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
|
||||
struct ypreq_nokey {
|
||||
@ -180,13 +180,13 @@ struct ypreq_nokey {
|
||||
mapname map;
|
||||
};
|
||||
typedef struct ypreq_nokey ypreq_nokey;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_ypreq_nokey(XDR *, ypreq_nokey*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_ypreq_nokey(XDR *, ypreq_nokey*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_ypreq_nokey();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
|
||||
struct ypreq_xfr {
|
||||
@ -196,13 +196,13 @@ struct ypreq_xfr {
|
||||
u_int port;
|
||||
};
|
||||
typedef struct ypreq_xfr ypreq_xfr;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_ypreq_xfr(XDR *, ypreq_xfr*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_ypreq_xfr(XDR *, ypreq_xfr*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_ypreq_xfr();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
|
||||
struct ypresp_val {
|
||||
@ -210,28 +210,28 @@ struct ypresp_val {
|
||||
valdat val;
|
||||
};
|
||||
typedef struct ypresp_val ypresp_val;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_ypresp_val(XDR *, ypresp_val*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_ypresp_val(XDR *, ypresp_val*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_ypresp_val();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
|
||||
struct ypresp_key_val {
|
||||
ypstat stat;
|
||||
valdat val;
|
||||
keydat key;
|
||||
valdat val;
|
||||
};
|
||||
typedef struct ypresp_key_val ypresp_key_val;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_ypresp_key_val(XDR *, ypresp_key_val*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_ypresp_key_val(XDR *, ypresp_key_val*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_ypresp_key_val();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
|
||||
struct ypresp_master {
|
||||
@ -239,13 +239,13 @@ struct ypresp_master {
|
||||
peername peer;
|
||||
};
|
||||
typedef struct ypresp_master ypresp_master;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_ypresp_master(XDR *, ypresp_master*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_ypresp_master(XDR *, ypresp_master*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_ypresp_master();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
|
||||
struct ypresp_order {
|
||||
@ -253,13 +253,13 @@ struct ypresp_order {
|
||||
u_int ordernum;
|
||||
};
|
||||
typedef struct ypresp_order ypresp_order;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_ypresp_order(XDR *, ypresp_order*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_ypresp_order(XDR *, ypresp_order*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_ypresp_order();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
|
||||
struct ypresp_all {
|
||||
@ -269,13 +269,13 @@ struct ypresp_all {
|
||||
} ypresp_all_u;
|
||||
};
|
||||
typedef struct ypresp_all ypresp_all;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_ypresp_all(XDR *, ypresp_all*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_ypresp_all(XDR *, ypresp_all*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_ypresp_all();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
|
||||
struct ypresp_xfr {
|
||||
@ -283,13 +283,13 @@ struct ypresp_xfr {
|
||||
ypxfrstat xfrstat;
|
||||
};
|
||||
typedef struct ypresp_xfr ypresp_xfr;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_ypresp_xfr(XDR *, ypresp_xfr*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_ypresp_xfr(XDR *, ypresp_xfr*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_ypresp_xfr();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
|
||||
struct ypmaplist {
|
||||
@ -297,13 +297,13 @@ struct ypmaplist {
|
||||
struct ypmaplist *next;
|
||||
};
|
||||
typedef struct ypmaplist ypmaplist;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_ypmaplist(XDR *, ypmaplist*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_ypmaplist(XDR *, ypmaplist*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_ypmaplist();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
|
||||
struct ypresp_maplist {
|
||||
@ -311,13 +311,13 @@ struct ypresp_maplist {
|
||||
ypmaplist *maps;
|
||||
};
|
||||
typedef struct ypresp_maplist ypresp_maplist;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_ypresp_maplist(XDR *, ypresp_maplist*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_ypresp_maplist(XDR *, ypresp_maplist*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_ypresp_maplist();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
|
||||
enum yppush_status {
|
||||
@ -339,13 +339,13 @@ enum yppush_status {
|
||||
YPPUSH_REFUSED = -14,
|
||||
};
|
||||
typedef enum yppush_status yppush_status;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_yppush_status(XDR *, yppush_status*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_yppush_status(XDR *, yppush_status*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_yppush_status();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
|
||||
struct yppushresp_xfr {
|
||||
@ -353,13 +353,13 @@ struct yppushresp_xfr {
|
||||
yppush_status status;
|
||||
};
|
||||
typedef struct yppushresp_xfr yppushresp_xfr;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_yppushresp_xfr(XDR *, yppushresp_xfr*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_yppushresp_xfr(XDR *, yppushresp_xfr*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_yppushresp_xfr();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
|
||||
enum ypbind_resptype {
|
||||
@ -367,13 +367,13 @@ enum ypbind_resptype {
|
||||
YPBIND_FAIL_VAL = 2,
|
||||
};
|
||||
typedef enum ypbind_resptype ypbind_resptype;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_ypbind_resptype(XDR *, ypbind_resptype*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_ypbind_resptype(XDR *, ypbind_resptype*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_ypbind_resptype();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
|
||||
struct ypbind_binding {
|
||||
@ -381,13 +381,13 @@ struct ypbind_binding {
|
||||
char ypbind_binding_port[2];
|
||||
};
|
||||
typedef struct ypbind_binding ypbind_binding;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_ypbind_binding(XDR *, ypbind_binding*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_ypbind_binding(XDR *, ypbind_binding*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_ypbind_binding();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
|
||||
struct ypbind_resp {
|
||||
@ -398,13 +398,13 @@ struct ypbind_resp {
|
||||
} ypbind_resp_u;
|
||||
};
|
||||
typedef struct ypbind_resp ypbind_resp;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_ypbind_resp(XDR *, ypbind_resp*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_ypbind_resp(XDR *, ypbind_resp*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_ypbind_resp();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
#define YPBIND_ERR_ERR 1
|
||||
#define YPBIND_ERR_NOSERV 2
|
||||
@ -416,13 +416,13 @@ struct ypbind_setdom {
|
||||
u_int ypsetdom_vers;
|
||||
};
|
||||
typedef struct ypbind_setdom ypbind_setdom;
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
extern "C" bool_t xdr_ypbind_setdom(XDR *, ypbind_setdom*);
|
||||
#elif __STDC__
|
||||
#elif __STDC__
|
||||
extern bool_t xdr_ypbind_setdom(XDR *, ypbind_setdom*);
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
bool_t xdr_ypbind_setdom();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
|
||||
#define YPPROG ((u_long)100004)
|
||||
@ -504,7 +504,7 @@ extern ypresp_order * ypproc_order_2_svc(ypreq_nokey *, struct svc_req *);
|
||||
extern ypresp_maplist * ypproc_maplist_2(domainname *, CLIENT *);
|
||||
extern ypresp_maplist * ypproc_maplist_2_svc(domainname *, struct svc_req *);
|
||||
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
#define YPPROC_NULL ((u_long)0)
|
||||
extern void * ypproc_null_2();
|
||||
extern void * ypproc_null_2_svc();
|
||||
@ -541,7 +541,7 @@ extern ypresp_order * ypproc_order_2_svc();
|
||||
#define YPPROC_MAPLIST ((u_long)11)
|
||||
extern ypresp_maplist * ypproc_maplist_2();
|
||||
extern ypresp_maplist * ypproc_maplist_2_svc();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
#define YPPUSH_XFRRESPPROG ((u_long)0x40000000)
|
||||
#define YPPUSH_XFRRESPVERS ((u_long)1)
|
||||
@ -562,14 +562,14 @@ extern void * yppushproc_null_1_svc(void *, struct svc_req *);
|
||||
extern void * yppushproc_xfrresp_1(yppushresp_xfr *, CLIENT *);
|
||||
extern void * yppushproc_xfrresp_1_svc(yppushresp_xfr *, struct svc_req *);
|
||||
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
#define YPPUSHPROC_NULL ((u_long)0)
|
||||
extern void * yppushproc_null_1();
|
||||
extern void * yppushproc_null_1_svc();
|
||||
#define YPPUSHPROC_XFRRESP ((u_long)1)
|
||||
extern void * yppushproc_xfrresp_1();
|
||||
extern void * yppushproc_xfrresp_1_svc();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
#define YPBINDPROG ((u_long)100007)
|
||||
#define YPBINDVERS ((u_long)2)
|
||||
@ -596,7 +596,7 @@ extern ypbind_resp * ypbindproc_domain_2_svc(domainname *, struct svc_req *);
|
||||
extern void * ypbindproc_setdom_2(ypbind_setdom *, CLIENT *);
|
||||
extern void * ypbindproc_setdom_2_svc(ypbind_setdom *, struct svc_req *);
|
||||
|
||||
#else /* Old Style C */
|
||||
#else /* Old Style C */
|
||||
#define YPBINDPROC_NULL ((u_long)0)
|
||||
extern void * ypbindproc_null_2();
|
||||
extern void * ypbindproc_null_2_svc();
|
||||
@ -606,6 +606,6 @@ extern ypbind_resp * ypbindproc_domain_2_svc();
|
||||
#define YPBINDPROC_SETDOM ((u_long)2)
|
||||
extern void * ypbindproc_setdom_2();
|
||||
extern void * ypbindproc_setdom_2_svc();
|
||||
#endif /* Old Style C */
|
||||
#endif /* Old Style C */
|
||||
|
||||
#endif /* !__RPCSVC_YP_H__ */
|
||||
|
@ -7,23 +7,23 @@
|
||||
* may copy or modify Sun RPC without charge, but are not authorized
|
||||
* to license or distribute it to anyone else except as part of a product or
|
||||
* program developed by the user.
|
||||
*
|
||||
*
|
||||
* SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
|
||||
* WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
|
||||
* PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
|
||||
*
|
||||
*
|
||||
* Sun RPC is provided with no support and without any obligation on the
|
||||
* part of Sun Microsystems, Inc. to assist in its use, correction,
|
||||
* modification or enhancement.
|
||||
*
|
||||
*
|
||||
* SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
|
||||
* INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
|
||||
* OR ANY PART THEREOF.
|
||||
*
|
||||
*
|
||||
* In no event will Sun Microsystems, Inc. be liable for any lost revenue
|
||||
* or profits or other special, indirect and consequential damages, even if
|
||||
* Sun has been advised of the possibility of such damages.
|
||||
*
|
||||
*
|
||||
* Sun Microsystems, Inc.
|
||||
* 2550 Garcia Avenue
|
||||
* Mountain View, California 94043
|
||||
@ -82,7 +82,7 @@ typedef opaque valdat<YPMAXRECORD>;
|
||||
|
||||
|
||||
struct ypmap_parms {
|
||||
domainname domain;
|
||||
domainname domain;
|
||||
mapname map;
|
||||
unsigned int ordernum;
|
||||
peername peer;
|
||||
@ -95,10 +95,10 @@ struct ypreq_key {
|
||||
};
|
||||
|
||||
struct ypreq_nokey {
|
||||
domainname domain;
|
||||
domainname domain;
|
||||
mapname map;
|
||||
};
|
||||
|
||||
|
||||
struct ypreq_xfr {
|
||||
ypmap_parms map_parms;
|
||||
unsigned int transid;
|
||||
@ -114,18 +114,13 @@ struct ypresp_val {
|
||||
|
||||
struct ypresp_key_val {
|
||||
ypstat stat;
|
||||
#ifdef STUPID_SUN_BUG
|
||||
keydat key;
|
||||
valdat val;
|
||||
#else
|
||||
valdat val;
|
||||
keydat key;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
struct ypresp_master {
|
||||
ypstat stat;
|
||||
ypstat stat;
|
||||
peername peer;
|
||||
};
|
||||
|
||||
@ -184,31 +179,31 @@ struct yppushresp_xfr {
|
||||
* Response structure and overall result status codes. Success and failure
|
||||
* represent two separate response message types.
|
||||
*/
|
||||
|
||||
|
||||
enum ypbind_resptype {
|
||||
YPBIND_SUCC_VAL = 1,
|
||||
YPBIND_SUCC_VAL = 1,
|
||||
YPBIND_FAIL_VAL = 2
|
||||
};
|
||||
|
||||
|
||||
struct ypbind_binding {
|
||||
opaque ypbind_binding_addr[4]; /* In network order */
|
||||
opaque ypbind_binding_port[2]; /* In network order */
|
||||
};
|
||||
};
|
||||
|
||||
union ypbind_resp switch (ypbind_resptype ypbind_status) {
|
||||
case YPBIND_FAIL_VAL:
|
||||
unsigned ypbind_error;
|
||||
case YPBIND_SUCC_VAL:
|
||||
ypbind_binding ypbind_bindinfo;
|
||||
};
|
||||
};
|
||||
|
||||
/* Detailed failure reason codes for response field ypbind_error*/
|
||||
|
||||
|
||||
const YPBIND_ERR_ERR = 1; /* Internal error */
|
||||
const YPBIND_ERR_NOSERV = 2; /* No bound server for passed domain */
|
||||
const YPBIND_ERR_RESC = 3; /* System resource allocation failure */
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Request data structure for ypbind "Set domain" procedure.
|
||||
*/
|
||||
@ -224,11 +219,11 @@ struct ypbind_setdom {
|
||||
*/
|
||||
program YPPROG {
|
||||
version YPVERS {
|
||||
void
|
||||
void
|
||||
YPPROC_NULL(void) = 0;
|
||||
|
||||
bool
|
||||
YPPROC_DOMAIN(domainname) = 1;
|
||||
bool
|
||||
YPPROC_DOMAIN(domainname) = 1;
|
||||
|
||||
bool
|
||||
YPPROC_DOMAIN_NONACK(domainname) = 2;
|
||||
@ -236,10 +231,10 @@ program YPPROG {
|
||||
ypresp_val
|
||||
YPPROC_MATCH(ypreq_key) = 3;
|
||||
|
||||
ypresp_key_val
|
||||
ypresp_key_val
|
||||
YPPROC_FIRST(ypreq_key) = 4;
|
||||
|
||||
ypresp_key_val
|
||||
ypresp_key_val
|
||||
YPPROC_NEXT(ypreq_key) = 5;
|
||||
|
||||
ypresp_xfr
|
||||
@ -257,7 +252,7 @@ program YPPROG {
|
||||
ypresp_order
|
||||
YPPROC_ORDER(ypreq_nokey) = 10;
|
||||
|
||||
ypresp_maplist
|
||||
ypresp_maplist
|
||||
YPPROC_MAPLIST(domainname) = 11;
|
||||
} = 2;
|
||||
} = 100004;
|
||||
@ -272,7 +267,7 @@ program YPPUSH_XFRRESPPROG {
|
||||
YPPUSHPROC_NULL(void) = 0;
|
||||
|
||||
#ifdef STUPID_SUN_BUG
|
||||
yppushresp_xfr
|
||||
yppushresp_xfr
|
||||
YPPUSHPROC_XFRRESP(void) = 1;
|
||||
#else
|
||||
void
|
||||
@ -288,7 +283,7 @@ program YPBINDPROG {
|
||||
version YPBINDVERS {
|
||||
void
|
||||
YPBINDPROC_NULL(void) = 0;
|
||||
|
||||
|
||||
ypbind_resp
|
||||
YPBINDPROC_DOMAIN(domainname) = 1;
|
||||
|
||||
@ -296,5 +291,3 @@ program YPBINDPROG {
|
||||
YPBINDPROC_SETDOM(ypbind_setdom) = 2;
|
||||
} = 2;
|
||||
} = 100007;
|
||||
|
||||
|
||||
|
6
po/fr.po
6
po/fr.po
@ -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ées NIS est corrumpue."
|
||||
msgstr "La table de la base de données NIS est corrompue."
|
||||
|
||||
#: stdio-common/../sysdeps/gnu/errlist.c:746
|
||||
msgid "Name not unique on network"
|
||||
|
68
po/nl.po
68
po/nl.po
@ -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"
|
||||
|
@ -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}
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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. */
|
||||
|
@ -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
|
||||
|
@ -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. */
|
||||
if (__libc_enable_secure
|
||||
&& ((*file == '/'
|
||||
&& memcmp (file, default_tzdir, sizeof (default_tzdir) - 1) != 0)
|
||||
|| strstr (file, "../") != NULL))
|
||||
/* This test a certainly a bit too restrictive but it should catch all
|
||||
critical case. */
|
||||
return;
|
||||
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))
|
||||
|| strstr (file, "../") != NULL))
|
||||
/* This test a certainly a bit too restrictive but it should
|
||||
catch all critical case. */
|
||||
return;
|
||||
}
|
||||
|
||||
if (*file != '/')
|
||||
{
|
||||
|
14
time/tzset.c
14
time/tzset.c
@ -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:
|
||||
@ -108,10 +114,10 @@ __tzset_internal (always)
|
||||
|
||||
/* Free old storage. */
|
||||
if (tz_rules[0].name != NULL && *tz_rules[0].name != '\0')
|
||||
free((void *) tz_rules[0].name);
|
||||
free ((void *) tz_rules[0].name);
|
||||
if (tz_rules[1].name != NULL && *tz_rules[1].name != '\0' &&
|
||||
tz_rules[1].name != tz_rules[0].name)
|
||||
free((void *) tz_rules[1].name);
|
||||
free ((void *) tz_rules[1].name);
|
||||
tz_rules[0].name = NULL;
|
||||
tz_rules[1].name = NULL;
|
||||
|
||||
@ -163,7 +169,7 @@ __tzset_internal (always)
|
||||
return;
|
||||
}
|
||||
|
||||
if (sscanf(tz, "%[^0-9,+-]", tz_rules[0].name) != 1 ||
|
||||
if (sscanf (tz, "%[^0-9,+-]", tz_rules[0].name) != 1 ||
|
||||
(l = strlen(tz_rules[0].name)) < 3)
|
||||
{
|
||||
free (tz_rules[0].name);
|
||||
@ -180,7 +186,7 @@ __tzset_internal (always)
|
||||
tz += l;
|
||||
|
||||
/* Figure out the standard offset from UTC. */
|
||||
if (*tz == '\0' || (*tz != '+' && *tz != '-' && !isdigit(*tz)))
|
||||
if (*tz == '\0' || (*tz != '+' && *tz != '-' && !isdigit (*tz)))
|
||||
return;
|
||||
|
||||
if (*tz == '-' || *tz == '+')
|
||||
|
Loading…
Reference in New Issue
Block a user