1998-02-17  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* math/libm.map: Move all symbols that are new in glibc 2.1 to
	version GLIBC_2.1.

1998-02-17  Ulrich Drepper  <drepper@cygnus.com>

	* stdio-common/vfscanf.c (inchar): Check c for being EOF before
	trying to read another character.

1998-02-05  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* nis/nss_nis/nis-alias.c (_nss_nis_getaliasbyname_r): Convert
	name to lowercase.

	* nis/nss_nis/nis-network.c (_nss_nis_getnetbyname_r): Convert
	name to lowercase, add test for big enough buffer.

1998-02-03  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* sysdeps/unix/sysv/linux/alpha/rt_sigaction.S (rt_sigreturn):
	Make compatible with older kernels. Patch by Richard Henderson.
This commit is contained in:
Ulrich Drepper 1998-02-17 15:51:21 +00:00
parent 0a61487785
commit b112c02fa2
6 changed files with 118 additions and 48 deletions

View File

@ -1,3 +1,26 @@
1998-02-17 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* math/libm.map: Move all symbols that are new in glibc 2.1 to
version GLIBC_2.1.
1998-02-17 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfscanf.c (inchar): Check c for being EOF before
trying to read another character.
1998-02-05 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* nis/nss_nis/nis-alias.c (_nss_nis_getaliasbyname_r): Convert
name to lowercase.
* nis/nss_nis/nis-network.c (_nss_nis_getnetbyname_r): Convert
name to lowercase, add test for big enough buffer.
1998-02-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/alpha/rt_sigaction.S (rt_sigreturn):
Make compatible with older kernels. Patch by Richard Henderson.
1998-02-17 15:10 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-load.c (open_path): Use __xstat instead of stat.

View File

@ -16,16 +16,11 @@ GLIBC_2.0 {
drem; dremf; dreml;
erf; erff; erfl;
erfc; erfcf; erfcl;
exp2; exp2f; exp2l;
exp; expf; expl;
expm1; expm1f; expm1l;
fabs; fabsf; fabsl;
fdim; fdimf; fdiml;
finite; finitef; finitel;
floor; floorf; floorl;
fma; fmaf; fmal;
fmax; fmaxf; fmaxl;
fmin; fminf; fminl;
fmod; fmodf; fmodl;
frexp; frexpf; frexpl;
gamma; gammaf; gammal;
@ -40,38 +35,60 @@ GLIBC_2.0 {
lgamma_r; lgammaf_r; lgammal_r;
log10; log10f; log10l;
log1p; log1pf; log1pl;
log2; log2f; log2l;
log; logf; logl;
logb; logbf; logbl;
matherr;
modf; modff; modfl;
nan; nanf; nanl;
nearbyint; nearbyintf; nearbyintl;
nextafter; nextafterf; nextafterl;
nextafterx; nextafterxf; nextafterxl;
pow; powf; powl;
remainder; remainderf; remainderl;
remquo; remquof; remquol;
rint; rintf; rintl;
scalb; scalbf; scalbl;
scalbn; scalbnf; scalbnl;
significand; significandf; significandl;
sin; sinf; sinl;
sinh; sinhf; sinhl;
sqrt; sqrtf; sqrtl;
tan; tanf; tanl;
tanh; tanhf; tanhl;
y0; y0f; y0l;
y1; y1f; y1l;
yn; ynf; ynl;
# global variables
_LIB_VERSION; signgam;
# functions used in inline functions or macros
__log1p;
local:
*;
};
GLIBC_2.1 {
global:
# mathematical functions
exp2; exp2f; exp2l;
fdim; fdimf; fdiml;
fma; fmaf; fmal;
fmax; fmaxf; fmaxl;
fmin; fminf; fminl;
log2; log2f; log2l;
nan; nanf; nanl;
nearbyint; nearbyintf; nearbyintl;
nextafterx; nextafterxf; nextafterxl;
remquo; remquof; remquol;
lrint; lrintf; lrintl;
llrint; llrintf; llrintl;
round; roundf; roundl;
lround; lroundf; lroundl;
llround; llroundf; llroundl;
scalb; scalbf; scalbl;
scalbn; scalbnf; scalbnl;
scalbln; scalblnf; scalblnl;
significand; significandf; significandl;
sin; sinf; sinl;
sincos; sincosf; sincosl;
sinh; sinhf; sinhl;
sqrt; sqrtf; sqrtl;
tan; tanf; tanl;
tanh; tanhf; tanhl;
trunc; truncf; truncl;
y0; y0f; y0l;
y1; y1f; y1l;
yn; ynf; ynl;
# complex functions
cabs; cabsf; cabsl;
@ -105,19 +122,12 @@ GLIBC_2.0 {
fesetenv; fesetexceptflag; fesetround;
fetestexcept; feupdateenv;
# global variables
_LIB_VERSION; signgam;
# functions used in inline functions or macros
__finite; __finitef; __finitel;
__fpclassify; __fpclassifyf; __fpclassifyl;
__signbit; __signbitf; __signbitl;
__finite; __finitef; __finitel;
__log1p;
# symbols used in macros from sysdeps/powerpc/bits/fenv.h
__fe_dfl_env; __fe_enabled_env; __fe_nonieee_env; __fe_nomask_env;
local:
*;
};
} GLIBC_2.0;

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
@ -228,6 +228,9 @@ _nss_nis_getaliasbyname_r (const char *name, struct aliasent *alias,
char *result;
int len;
char *p;
size_t namlen = strlen (name);
char name2[namlen + 1];
int i;
if (name == NULL)
{
@ -238,8 +241,14 @@ _nss_nis_getaliasbyname_r (const char *name, struct aliasent *alias,
if (yp_get_default_domain (&domain))
return NSS_STATUS_UNAVAIL;
retval = yperr2nss (yp_match (domain, "mail.aliases", name, strlen (name),
/* Convert name to lowercase. */
for (i = 0; i < namlen; ++i)
name2[i] = tolower (name[i]);
name2[i] = '\0';
retval = yperr2nss (yp_match (domain, "mail.aliases", name2, namlen,
&result, &len));
if (retval != NSS_STATUS_SUCCESS)
{
if (retval == NSS_STATUS_TRYAGAIN)

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
@ -179,8 +179,27 @@ _nss_nis_getnetbyname_r (const char *name, struct netent *net, char *buffer,
if (yp_get_default_domain (&domain))
return NSS_STATUS_UNAVAIL;
retval = yperr2nss (yp_match (domain, "networks.byname", name,
strlen (name), &result, &len));
if (buflen < sizeof *data + 1)
{
*herrnop = NETDB_INTERNAL;
*errnop = ERANGE;
return NSS_STATUS_TRYAGAIN;
}
else
{
/* Convert name to lowercase. */
size_t namlen = strlen (name);
char name2[namlen + 1];
int i;
for (i = 0; i < namlen; ++i)
name2[i] = tolower (name[i]);
name2[i] = '\0';
retval = yperr2nss (yp_match (domain, "networks.byname", name2,
namlen, &result, &len));
}
if (retval != NSS_STATUS_SUCCESS)
{

View File

@ -57,8 +57,9 @@
# define va_list _IO_va_list
# define ungetc(c, s) ((void) ((int) c != EOF && --read_in), \
_IO_ungetc (c, s))
# define inchar() ((c = _IO_getc_unlocked (s)), \
(void) (c != EOF && ++read_in), c)
# define inchar() (c == EOF ? EOF \
: ((c = _IO_getc_unlocked (s)), \
(void) (c != EOF && ++read_in), c))
# define encode_error() do { \
if (errp != NULL) *errp |= 4; \
_IO_funlockfile (s); \
@ -102,7 +103,8 @@
# define UNLOCK_STREAM __libc_cleanup_region_end (1)
#else
# define ungetc(c, s) ((void) (c != EOF && --read_in), ungetc (c, s))
# define inchar() ((c = getc (s)), (void) (c != EOF && ++read_in), c)
# define inchar() (c == EOF ? EOF \
: (c = getc (s)), (void) (c != EOF && ++read_in), c)
# define encode_error() do { \
funlockfile (s); \
__set_errno (EILSEQ); \

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1998 Free Software Foundation, Inc.
/* Copyright (C) 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@cygnus.com>, 1998
@ -16,17 +16,17 @@
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <sysdep.h>
/* On Alpha we desparately want to avoid having to issue an imb. Ordinarily
the kernel would have to issue one after setting up the signal return
stack, but the Linux rt_sigaction syscall is prepared to accept a pointer
to the sigreturn syscall, instead of inlining it on the stack.
to the sigreturn syscall, instead of inlining it on the stack.
This just about halves signal delivery time. */
#ifdef __NR_rt_sigaction
.text
ENTRY(__syscall_rt_sigaction)
.frame sp,0,ra,0
@ -38,7 +38,7 @@ ENTRY(__syscall_rt_sigaction)
.set at
#endif
.prologue 1
beq a1, 0f
ldl t0, 8(a1) # sa_flags
lda a4, sigreturn-__syscall_rt_sigaction(pv)
@ -46,10 +46,10 @@ ENTRY(__syscall_rt_sigaction)
and t0, 0x00000040, t0 # SA_SIGINFO
cmovne t0, t1, a4
0: ldi v0,__NR_rt_sigaction
callsys
callsys
bne a3,1f
ret
1:
#ifndef PROF
br gp,2f
@ -76,3 +76,10 @@ rt_sigreturn:
ldi v0,__NR_rt_sigreturn
callsys
.end rt_sigreturn
#else
ENTRY(__syscall_rt_sigaction)
ldgp $29,0($27)
ldi $0,ENOSYS
jmp __syscall_error
END(__syscall_rt_sigaction)
#endif