Update.
1997-11-04 Ulrich Drepper <drepper@cygnus.com> * manual/filesys.texi: Correct description of return value for readdir_r. * sysdeps/unix/readdir_r.c (__readdir_r): Return value of errno not -1 in error case. * sysdeps/generic/readdir_r.c (__readdir_r): Return ENOSYS not -1. Reported by Jim Meyering <meyering@eng.ascend.com>. 1997-11-02 Paul Eggert <eggert@twinsun.com> * strftime.c: Use host's underlying strftime to access locale-specific info. This is useful e.g. when building GNU Emacs under Solaris 2.6. (weekday_name, month_name): Omit if HAVE_STRFTIME. (my_strftime): New macro, which names the strftime function that this source file produces. (strftime): #undef if emacs is defined; this works around Emacs 20.2's method of compiling with -Dstrftime=emacs_strftime. Also, declare as a function returning size_t, for similar reasons. (my_strftime): If HAVE_STRFTIME, use underlying strftime to handle locale-dependent formats like %a and %Ec. 1997-11-02 Paul Eggert <eggert@twinsun.com> * strftime.c (memcpy_lowcase, memcpy_uppcase, strftime): Ensure that args to islower and isupper are valid unsigned chars, even if char is signed. 1997-11-04 Ulrich Drepper <drepper@cygnus.com> * assert/Makefile (headers): Add assert.h, necessary after patch to Makefiles. * ctype/Makefile (headers): Likewise. * pwd/Makefile (headers): Likewise. * grp/Makefile (headers): Likewise. Patch by NIIBE Yutaka <gniibe@mri.co.jp>. 1997-11-04 03:08 Ulrich Drepper <drepper@cygnus.com> * glibcbug.in: Add information about configured target. Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>. * elf/dl-lookup.c (_dl_lookup_versioned_symbol): Be prepared for empty string as `reference_name' parameter. * elf/rtld.c: Don't set real program name in l_name of main object. * manual/creature.texi: Apply Paul Eggert's patch for better _POSIX_C_SOURCE description. * stdlib/strfmon.c: Fix numerous bugs in formatting. * time/strptime.c [%Y]: Treat all years, not only those which fit in time_t. [%Oy]: Really store value. Patches by Paul Eggert. * wcsmbs/wchar.h: Fix documentation bugs. Declare wcsdup only is __USE_GNU. 1997-11-03 02:48 Ulrich Drepper <drepper@cygnus.com> * sysdeps/generic/bits/errno.h: Remove all error definitions. This is only meant as a stub. 1997-10-31 Andreas Jaeger <aj@arthur.rhein-neckar.de> * sysdeps/standalone/bits/errno.h: Copied from sysdeps/generic/bits/errno.h and added all know error codes that are used in glibc. 1997-11-03 02:23 Ulrich Drepper <drepper@cygnus.com> * sysdeps/generic/make_siglist.c: Add comment to clarify use and make sure the correct _NSIG value is used. Patch by Klaus Espenlaub <kespenla@student.informatik.uni-ulm.de>. 1997-11-03 00:20 Ulrich Drepper <drepper@cygnus.com> * intl/localealias.c (read_alias_file): Correct handling of line reader which sometimes skipped complete lines (PR 205). Optimize a bit by using mempcpy. 1997-11-02 16:59 Philipp Thomas <kthomas@gwdg.de> * intl/localealias.c (read_alias_file): Correctly set map[].value instead of overwriting map[].alias 1997-11-02 15:32 Ulrich Drepper <drepper@cygnus.com> * libc.map: Add _IO_flockfile and _IO_funlockfile. Suggested by H.J. Lu <hjl@lucon.org>. 1997-11-02 15:17 Ulrich Drepper <drepper@cygnus.com> * elf/dl-error.c (_dl_signal_error): Use _strerror_internal instead of strerror. * assert/assert-perr.c: Use _strerror_internal directly instead of __strerror_r. Suggested by Joe Keane <jgk@jgk.org>. 1997-11-01 16:46 Zack Weinberg <zack@rabi.phys.columbia.edu> * configure.in: Check for gcc-2.7.2 -pipe bug and hack around it (PR 245). 1997-11-01 Paul Eggert <eggert@twinsun.com> * time/strptime.c (strptime_internal): Fix bug: %Oy forgot to assign tm_year. Do not restrict %Y to years less than 2037 even on 32-bit time_t hosts, as strptime returns an int tm_year, not a time_t, and it's possible for programs to use the year without having to use time_t. non-directories in the list (PR 203).
This commit is contained in:
parent
1cab544423
commit
1618c59038
7
BUGS
7
BUGS
@ -1,7 +1,7 @@
|
||||
List of known bugs (certainly very incomplete)
|
||||
----------------------------------------------
|
||||
|
||||
Time-stamp: <1997-10-31T16:49:39+0100 drepper>
|
||||
Time-stamp: <1997-11-02T15:10:48+0100 drepper>
|
||||
|
||||
This following list contains those bugs which I'm aware of. Please
|
||||
make sure that bugs you report are not listed here. If you can fix one
|
||||
@ -58,11 +58,6 @@ Severity: [ *] to [***]
|
||||
checked for errors, but the whole file containing the same
|
||||
category.
|
||||
[PR libc/207]
|
||||
|
||||
[ *] configuring with CFLAGS="-pipe" configure doesn't work
|
||||
with gcc. This seems to be a bug in gcc 2.7.2.x (egcs doesn't
|
||||
have this bug).
|
||||
[PR libc/245]
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Ulrich Drepper
|
||||
drepper@cygnus.com
|
||||
|
116
ChangeLog
116
ChangeLog
@ -1,8 +1,122 @@
|
||||
1997-11-04 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* manual/filesys.texi: Correct description of return value for
|
||||
readdir_r.
|
||||
* sysdeps/unix/readdir_r.c (__readdir_r): Return value of errno
|
||||
not -1 in error case.
|
||||
* sysdeps/generic/readdir_r.c (__readdir_r): Return ENOSYS not -1.
|
||||
Reported by Jim Meyering <meyering@eng.ascend.com>.
|
||||
|
||||
1997-11-02 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* strftime.c: Use host's underlying strftime to access
|
||||
locale-specific info. This is useful e.g. when building GNU
|
||||
Emacs under Solaris 2.6.
|
||||
(weekday_name, month_name): Omit if HAVE_STRFTIME.
|
||||
(my_strftime): New macro, which names the strftime function that
|
||||
this source file produces.
|
||||
(strftime): #undef if emacs is defined; this works around Emacs 20.2's
|
||||
method of compiling with -Dstrftime=emacs_strftime.
|
||||
Also, declare as a function returning size_t, for similar reasons.
|
||||
(my_strftime): If HAVE_STRFTIME, use underlying strftime to handle
|
||||
locale-dependent formats like %a and %Ec.
|
||||
|
||||
1997-11-02 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* strftime.c (memcpy_lowcase, memcpy_uppcase, strftime):
|
||||
Ensure that args to islower and isupper are valid unsigned
|
||||
chars, even if char is signed.
|
||||
|
||||
1997-11-04 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* assert/Makefile (headers): Add assert.h, necessary after patch
|
||||
to Makefiles.
|
||||
* ctype/Makefile (headers): Likewise.
|
||||
* pwd/Makefile (headers): Likewise.
|
||||
* grp/Makefile (headers): Likewise.
|
||||
Patch by NIIBE Yutaka <gniibe@mri.co.jp>.
|
||||
|
||||
1997-11-04 03:08 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* glibcbug.in: Add information about configured target.
|
||||
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
|
||||
|
||||
* elf/dl-lookup.c (_dl_lookup_versioned_symbol): Be prepared for
|
||||
empty string as `reference_name' parameter.
|
||||
* elf/rtld.c: Don't set real program name in l_name of main object.
|
||||
|
||||
* manual/creature.texi: Apply Paul Eggert's patch for better
|
||||
_POSIX_C_SOURCE description.
|
||||
|
||||
* stdlib/strfmon.c: Fix numerous bugs in formatting.
|
||||
|
||||
* time/strptime.c [%Y]: Treat all years, not only those which fit
|
||||
in time_t.
|
||||
[%Oy]: Really store value.
|
||||
Patches by Paul Eggert.
|
||||
|
||||
* wcsmbs/wchar.h: Fix documentation bugs. Declare wcsdup only
|
||||
is __USE_GNU.
|
||||
|
||||
1997-11-03 02:48 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* sysdeps/generic/bits/errno.h: Remove all error definitions. This
|
||||
is only meant as a stub.
|
||||
|
||||
1997-10-31 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||
|
||||
* sysdeps/standalone/bits/errno.h: Copied from
|
||||
sysdeps/generic/bits/errno.h and added all know error codes that
|
||||
are used in glibc.
|
||||
|
||||
1997-11-03 02:23 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* sysdeps/generic/make_siglist.c: Add comment to clarify use and
|
||||
make sure the correct _NSIG value is used.
|
||||
Patch by Klaus Espenlaub <kespenla@student.informatik.uni-ulm.de>.
|
||||
|
||||
1997-11-03 00:20 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* intl/localealias.c (read_alias_file): Correct handling of line
|
||||
reader which sometimes skipped complete lines (PR 205).
|
||||
Optimize a bit by using mempcpy.
|
||||
|
||||
1997-11-02 16:59 Philipp Thomas <kthomas@gwdg.de>
|
||||
|
||||
* intl/localealias.c (read_alias_file): Correctly set map[].value
|
||||
instead of overwriting map[].alias
|
||||
|
||||
1997-11-02 15:32 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* libc.map: Add _IO_flockfile and _IO_funlockfile.
|
||||
Suggested by H.J. Lu <hjl@lucon.org>.
|
||||
|
||||
1997-11-02 15:17 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* elf/dl-error.c (_dl_signal_error): Use _strerror_internal instead
|
||||
of strerror.
|
||||
* assert/assert-perr.c: Use _strerror_internal directly instead of
|
||||
__strerror_r.
|
||||
Suggested by Joe Keane <jgk@jgk.org>.
|
||||
|
||||
1997-11-01 16:46 Zack Weinberg <zack@rabi.phys.columbia.edu>
|
||||
|
||||
* configure.in: Check for gcc-2.7.2 -pipe bug and hack around it
|
||||
(PR 245).
|
||||
|
||||
1997-11-01 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* time/strptime.c (strptime_internal): Fix bug: %Oy forgot to
|
||||
assign tm_year. Do not restrict %Y to years less than 2037 even
|
||||
on 32-bit time_t hosts, as strptime returns an int tm_year, not a
|
||||
time_t, and it's possible for programs to use the year without
|
||||
having to use time_t.
|
||||
|
||||
1997-10-31 23:16 Ulrich Drepper <drepper@cygnus.com>
|
||||
|
||||
* posix/glob.c (glob): If calling glob_in_dir for a list which was
|
||||
generated by a glob call disable GLOB_ERR since there might be
|
||||
non-directories in the list (PR203).
|
||||
non-directories in the list (PR 203).
|
||||
|
||||
* posix/glob.h (GLOB_ONLYDIR): New flag.
|
||||
(__GLOB_FLAGS): Add GLOB_ONLYDIR.
|
||||
|
@ -20,6 +20,7 @@
|
||||
# Sub-makefile for assert portion of the library.
|
||||
#
|
||||
subdir := assert
|
||||
headers := assert.h
|
||||
|
||||
routines := assert assert-perr
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1994, 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
|
||||
@ -22,6 +22,10 @@
|
||||
#include <sysdep.h>
|
||||
|
||||
|
||||
/* This is the internal function we use to generate the error string. */
|
||||
extern char *_strerror_internal __P ((int, char *, size_t));
|
||||
|
||||
|
||||
extern const char *__assert_program_name; /* In assert.c. */
|
||||
|
||||
/* This function, when passed an error number, a filename, and a line
|
||||
@ -49,7 +53,7 @@ __assert_perror_fail (int errnum,
|
||||
__assert_program_name ? ": " : "",
|
||||
file, line,
|
||||
function ? function : "", function ? ": " : "",
|
||||
__strerror_r (errnum, errbuf, sizeof errbuf));
|
||||
_strerror_internal (errnum, errbuf, sizeof errbuf));
|
||||
(void) fflush (stderr);
|
||||
|
||||
abort ();
|
||||
|
17
bits/errno.h
17
bits/errno.h
@ -22,20 +22,15 @@
|
||||
#undef __need_Emath
|
||||
#define __Emath_defined 1
|
||||
|
||||
# define EDOM 1
|
||||
# define ERANGE 2
|
||||
# define EDOM XXX <--- fill in what is actually needed
|
||||
# define ERANGE XXX <--- fill in what is actually needed
|
||||
#endif
|
||||
|
||||
#ifdef _ERRNO_H
|
||||
# define ENOSYS 3
|
||||
# define EINVAL 4
|
||||
# define ESPIPE 5
|
||||
# define EBADF 6
|
||||
# define ENOMEM 7
|
||||
# define EACCES 8
|
||||
# define ENFILE 9
|
||||
# define EMFILE 10
|
||||
# define ENOMSG 11
|
||||
# error "Define here all the missing error messages for the port. These"
|
||||
# error "must match the numbers of the kernel."
|
||||
# define Exxxx XXX
|
||||
...
|
||||
#endif
|
||||
|
||||
#define __set_errno(val) errno = (val)
|
||||
|
195
configure
vendored
195
configure
vendored
@ -558,14 +558,6 @@ else
|
||||
ac_n= ac_c='\c' ac_t=
|
||||
fi
|
||||
|
||||
if test -r /vmunix; then
|
||||
kernel_id=`strings /vmunix | grep UNIX`
|
||||
elif test -r /dynix; then
|
||||
kernel_id=`strings /dynix | grep DYNIX`
|
||||
else
|
||||
kernel_id=
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
@ -760,7 +752,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
|
||||
fi
|
||||
|
||||
echo $ac_n "checking host system type""... $ac_c" 1>&6
|
||||
echo "configure:764: checking host system type" >&5
|
||||
echo "configure:756: checking host system type" >&5
|
||||
|
||||
host_alias=$host
|
||||
case "$host_alias" in
|
||||
@ -879,7 +871,7 @@ fi
|
||||
# This can take a while to compute.
|
||||
sysdep_dir=$srcdir/sysdeps
|
||||
echo $ac_n "checking sysdep dirs""... $ac_c" 1>&6
|
||||
echo "configure:883: checking sysdep dirs" >&5
|
||||
echo "configure:875: checking sysdep dirs" >&5
|
||||
# Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
|
||||
os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
|
||||
|
||||
@ -1080,7 +1072,7 @@ echo "$ac_t""sysdeps/generic" 1>&6
|
||||
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
|
||||
# ./install, which can be erroneously created by make from ./install.sh.
|
||||
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
|
||||
echo "configure:1084: checking for a BSD compatible install" >&5
|
||||
echo "configure:1076: checking for a BSD compatible install" >&5
|
||||
if test -z "$INSTALL"; then
|
||||
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
@ -1134,7 +1126,7 @@ if test "$INSTALL" = "${srcdir}/install-sh -c"; then
|
||||
INSTALL='\$(..)./install-sh -c'
|
||||
fi
|
||||
echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
|
||||
echo "configure:1138: checking whether ln -s works" >&5
|
||||
echo "configure:1130: checking whether ln -s works" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -1159,7 +1151,7 @@ do
|
||||
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||
set dummy $ac_prog; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:1163: checking for $ac_word" >&5
|
||||
echo "configure:1155: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_prog_MSGFMT'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -1192,7 +1184,7 @@ test -n "$MSGFMT" || MSGFMT=":"
|
||||
# Extract the first word of "gcc", so it can be a program name with args.
|
||||
set dummy gcc; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:1196: checking for $ac_word" >&5
|
||||
echo "configure:1188: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -1221,7 +1213,7 @@ if test -z "$CC"; then
|
||||
# Extract the first word of "cc", so it can be a program name with args.
|
||||
set dummy cc; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:1225: checking for $ac_word" >&5
|
||||
echo "configure:1217: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -1269,7 +1261,7 @@ fi
|
||||
fi
|
||||
|
||||
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
|
||||
echo "configure:1273: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
|
||||
echo "configure:1265: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
|
||||
|
||||
ac_ext=c
|
||||
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
|
||||
@ -1279,11 +1271,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS
|
||||
cross_compiling=$ac_cv_prog_cc_cross
|
||||
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 1283 "configure"
|
||||
#line 1275 "configure"
|
||||
#include "confdefs.h"
|
||||
main(){return(0);}
|
||||
EOF
|
||||
if { (eval echo configure:1287: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
|
||||
if { (eval echo configure:1279: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
|
||||
ac_cv_prog_cc_works=yes
|
||||
# If we can't run a trivial program, we are probably using a cross compiler.
|
||||
if (./conftest; exit) 2>/dev/null; then
|
||||
@ -1306,13 +1298,13 @@ else
|
||||
cross_linkable=yes
|
||||
fi
|
||||
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
|
||||
echo "configure:1310: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
|
||||
echo "configure:1302: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
|
||||
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
|
||||
|
||||
cross_compiling=$ac_cv_prog_cc_cross
|
||||
|
||||
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
|
||||
echo "configure:1316: checking whether we are using GNU C" >&5
|
||||
echo "configure:1308: checking whether we are using GNU C" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -1321,7 +1313,7 @@ else
|
||||
yes;
|
||||
#endif
|
||||
EOF
|
||||
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1325: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
|
||||
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1317: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
|
||||
ac_cv_prog_gcc=yes
|
||||
else
|
||||
ac_cv_prog_gcc=no
|
||||
@ -1338,7 +1330,7 @@ if test $ac_cv_prog_gcc = yes; then
|
||||
yes;
|
||||
#endif
|
||||
EOF
|
||||
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1342: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
|
||||
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1334: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
|
||||
if test -z "$CFLAGS"; then
|
||||
CFLAGS="-g -O2"
|
||||
fi
|
||||
@ -1350,7 +1342,7 @@ else
|
||||
fi
|
||||
|
||||
echo $ac_n "checking build system type""... $ac_c" 1>&6
|
||||
echo "configure:1354: checking build system type" >&5
|
||||
echo "configure:1346: checking build system type" >&5
|
||||
|
||||
build_alias=$build
|
||||
case "$build_alias" in
|
||||
@ -1373,7 +1365,7 @@ do
|
||||
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||
set dummy $ac_prog; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:1377: checking for $ac_word" >&5
|
||||
echo "configure:1369: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_prog_BUILD_CC'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -1404,7 +1396,7 @@ done
|
||||
fi
|
||||
|
||||
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
|
||||
echo "configure:1408: checking how to run the C preprocessor" >&5
|
||||
echo "configure:1400: checking how to run the C preprocessor" >&5
|
||||
# On Suns, sometimes $CPP names a directory.
|
||||
if test -n "$CPP" && test -d "$CPP"; then
|
||||
CPP=
|
||||
@ -1419,13 +1411,13 @@ else
|
||||
# On the NeXT, cc -E runs the code through the compiler's parser,
|
||||
# not just through cpp.
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 1423 "configure"
|
||||
#line 1415 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <assert.h>
|
||||
Syntax Error
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:1429: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:1421: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out`
|
||||
if test -z "$ac_err"; then
|
||||
:
|
||||
@ -1436,13 +1428,13 @@ else
|
||||
rm -rf conftest*
|
||||
CPP="${CC-cc} -E -traditional-cpp"
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 1440 "configure"
|
||||
#line 1432 "configure"
|
||||
#include "confdefs.h"
|
||||
#include <assert.h>
|
||||
Syntax Error
|
||||
EOF
|
||||
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
|
||||
{ (eval echo configure:1446: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
{ (eval echo configure:1438: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
|
||||
ac_err=`grep -v '^ *+' conftest.out`
|
||||
if test -z "$ac_err"; then
|
||||
:
|
||||
@ -1475,7 +1467,7 @@ LD=`$CC -print-file-name=ld`
|
||||
|
||||
# Determine whether we are using GNU binutils.
|
||||
echo $ac_n "checking whether $AS is GNU as""... $ac_c" 1>&6
|
||||
echo "configure:1479: checking whether $AS is GNU as" >&5
|
||||
echo "configure:1471: checking whether $AS is GNU as" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_prog_as_gnu'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -1493,7 +1485,7 @@ rm -f a.out
|
||||
gnu_as=$libc_cv_prog_as_gnu
|
||||
|
||||
echo $ac_n "checking whether $LD is GNU ld""... $ac_c" 1>&6
|
||||
echo "configure:1497: checking whether $LD is GNU ld" >&5
|
||||
echo "configure:1489: checking whether $LD is GNU ld" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_prog_ld_gnu'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -1517,7 +1509,7 @@ fi
|
||||
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
|
||||
set dummy ${ac_tool_prefix}ar; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:1521: checking for $ac_word" >&5
|
||||
echo "configure:1513: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -1548,7 +1540,7 @@ fi
|
||||
# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
|
||||
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:1552: checking for $ac_word" >&5
|
||||
echo "configure:1544: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -1579,7 +1571,7 @@ if test -n "$ac_tool_prefix"; then
|
||||
# Extract the first word of "ranlib", so it can be a program name with args.
|
||||
set dummy ranlib; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:1583: checking for $ac_word" >&5
|
||||
echo "configure:1575: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -1614,7 +1606,7 @@ fi
|
||||
# Extract the first word of "bash", so it can be a program name with args.
|
||||
set dummy bash; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:1618: checking for $ac_word" >&5
|
||||
echo "configure:1610: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -1655,7 +1647,7 @@ if test "$BASH" = no; then
|
||||
# Extract the first word of "ksh", so it can be a program name with args.
|
||||
set dummy ksh; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:1659: checking for $ac_word" >&5
|
||||
echo "configure:1651: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_KSH'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -1701,7 +1693,7 @@ do
|
||||
# Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||
set dummy $ac_prog; ac_word=$2
|
||||
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
|
||||
echo "configure:1705: checking for $ac_word" >&5
|
||||
echo "configure:1697: checking for $ac_word" >&5
|
||||
if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -1736,7 +1728,7 @@ test -n "$PERL" || PERL="no"
|
||||
|
||||
|
||||
echo $ac_n "checking for signed size_t type""... $ac_c" 1>&6
|
||||
echo "configure:1740: checking for signed size_t type" >&5
|
||||
echo "configure:1732: checking for signed size_t type" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_signed_size_t'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -1760,12 +1752,12 @@ EOF
|
||||
fi
|
||||
|
||||
echo $ac_n "checking for libc-friendly stddef.h""... $ac_c" 1>&6
|
||||
echo "configure:1764: checking for libc-friendly stddef.h" >&5
|
||||
echo "configure:1756: checking for libc-friendly stddef.h" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_friendly_stddef'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 1769 "configure"
|
||||
#line 1761 "configure"
|
||||
#include "confdefs.h"
|
||||
#define __need_size_t
|
||||
#define __need_wchar_t
|
||||
@ -1780,7 +1772,7 @@ size_t size; wchar_t wchar;
|
||||
if (&size == NULL || &wchar == NULL) abort ();
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:1784: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:1776: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
libc_cv_friendly_stddef=yes
|
||||
else
|
||||
@ -1799,7 +1791,7 @@ override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
|
||||
fi
|
||||
|
||||
echo $ac_n "checking whether we need to use -P to assemble .S files""... $ac_c" 1>&6
|
||||
echo "configure:1803: checking whether we need to use -P to assemble .S files" >&5
|
||||
echo "configure:1795: checking whether we need to use -P to assemble .S files" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_need_minus_P'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -1821,8 +1813,44 @@ if test $libc_cv_need_minus_P = yes; then
|
||||
asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
|
||||
fi
|
||||
|
||||
# gcc 2.7.x has a bug where if -pipe is set, the assembler will always
|
||||
# be told to read stdin. This causes the compiler to hang when fed an
|
||||
# .s file.
|
||||
if test $ac_cv_prog_gcc = yes; then
|
||||
case `${CC-cc} -v 2>&1` in
|
||||
*2.7*)
|
||||
# We must check this even if -pipe is not given here, because the user
|
||||
# might do `make CFLAGS=-pipe'.
|
||||
echo $ac_n "checking for gcc 2.7.x -pipe bug""... $ac_c" 1>&6
|
||||
echo "configure:1826: checking for gcc 2.7.x -pipe bug" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_gcc_pipe_bug'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat >conftest.s <<EOF
|
||||
foo:
|
||||
EOF
|
||||
if ${CC-cc} -pipe -c conftest.s <conftest.s 2>/dev/null; then
|
||||
libc_cv_gcc_pipe_bug=no
|
||||
else
|
||||
libc_cv_gcc_pipe_bug=yes
|
||||
fi
|
||||
rm -f conftest*
|
||||
fi
|
||||
|
||||
echo "$ac_t""$libc_cv_gcc_pipe_bug" 1>&6
|
||||
if test $libc_cv_gcc_pipe_bug = yes; then
|
||||
makeCC="${CC-cc} -B\$(common-objpfx)"
|
||||
makeCFLAGS=$CFLAGS
|
||||
CFLAGS=`echo $CFLAGS |sed 's/-pipe//'`
|
||||
fi;;
|
||||
*) libc_cv_gcc_pipe_bug=no;;
|
||||
esac
|
||||
else
|
||||
libc_cv_gcc_pipe_bug=no
|
||||
fi
|
||||
|
||||
echo $ac_n "checking for assembler global-symbol directive""... $ac_c" 1>&6
|
||||
echo "configure:1826: checking for assembler global-symbol directive" >&5
|
||||
echo "configure:1854: checking for assembler global-symbol directive" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_asm_global_directive'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -1852,7 +1880,7 @@ EOF
|
||||
fi
|
||||
|
||||
echo $ac_n "checking for .set assembler directive""... $ac_c" 1>&6
|
||||
echo "configure:1856: checking for .set assembler directive" >&5
|
||||
echo "configure:1884: checking for .set assembler directive" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_asm_set_directive'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -1886,7 +1914,7 @@ EOF
|
||||
fi
|
||||
|
||||
echo $ac_n "checking for .symver assembler directive""... $ac_c" 1>&6
|
||||
echo "configure:1890: checking for .symver assembler directive" >&5
|
||||
echo "configure:1918: checking for .symver assembler directive" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_asm_symver_directive'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -1905,7 +1933,7 @@ fi
|
||||
|
||||
echo "$ac_t""$libc_cv_asm_symver_directive" 1>&6
|
||||
echo $ac_n "checking for ld --version-script""... $ac_c" 1>&6
|
||||
echo "configure:1909: checking for ld --version-script" >&5
|
||||
echo "configure:1937: checking for ld --version-script" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_ld_version_script_option'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -1924,7 +1952,7 @@ EOF
|
||||
if { ac_try='${CC-cc} $CFLAGS -shared -o conftest.so conftest.o
|
||||
-nostartfiles -nostdlib
|
||||
-Wl,--version-script,conftest.map
|
||||
1>&5'; { (eval echo configure:1928: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
|
||||
1>&5'; { (eval echo configure:1956: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
|
||||
then
|
||||
libc_cv_ld_version_script_option=yes
|
||||
else
|
||||
@ -1955,7 +1983,7 @@ fi
|
||||
|
||||
if test $elf = yes; then
|
||||
echo $ac_n "checking for .previous assembler directive""... $ac_c" 1>&6
|
||||
echo "configure:1959: checking for .previous assembler directive" >&5
|
||||
echo "configure:1987: checking for .previous assembler directive" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_asm_previous_directive'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -1963,7 +1991,7 @@ else
|
||||
.section foo_section
|
||||
.previous
|
||||
EOF
|
||||
if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:1967: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:1995: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
libc_cv_asm_previous_directive=yes
|
||||
else
|
||||
libc_cv_asm_previous_directive=no
|
||||
@ -1979,7 +2007,7 @@ EOF
|
||||
|
||||
else
|
||||
echo $ac_n "checking for .popsection assembler directive""... $ac_c" 1>&6
|
||||
echo "configure:1983: checking for .popsection assembler directive" >&5
|
||||
echo "configure:2011: checking for .popsection assembler directive" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_asm_popsection_directive'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -1987,7 +2015,7 @@ else
|
||||
.pushsection foo_section
|
||||
.popsection
|
||||
EOF
|
||||
if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:1991: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:2019: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
libc_cv_asm_popsection_directive=yes
|
||||
else
|
||||
libc_cv_asm_popsection_directive=no
|
||||
@ -2007,12 +2035,12 @@ fi
|
||||
|
||||
if test $elf != yes; then
|
||||
echo $ac_n "checking for .init and .fini sections""... $ac_c" 1>&6
|
||||
echo "configure:2011: checking for .init and .fini sections" >&5
|
||||
echo "configure:2039: checking for .init and .fini sections" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_have_initfini'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 2016 "configure"
|
||||
#line 2044 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
int main() {
|
||||
@ -2021,7 +2049,7 @@ asm (".section .init");
|
||||
asm (".text");
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:2025: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:2053: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
rm -rf conftest*
|
||||
libc_cv_have_initfini=yes
|
||||
else
|
||||
@ -2049,19 +2077,19 @@ if test $elf = yes; then
|
||||
else
|
||||
if test $ac_cv_prog_cc_works = yes; then
|
||||
echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6
|
||||
echo "configure:2053: checking for _ prefix on C symbol names" >&5
|
||||
echo "configure:2081: checking for _ prefix on C symbol names" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 2058 "configure"
|
||||
#line 2086 "configure"
|
||||
#include "confdefs.h"
|
||||
asm ("_glibc_foobar:");
|
||||
int main() {
|
||||
glibc_foobar ();
|
||||
; return 0; }
|
||||
EOF
|
||||
if { (eval echo configure:2065: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
|
||||
if { (eval echo configure:2093: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
|
||||
rm -rf conftest*
|
||||
libc_cv_asm_underscores=yes
|
||||
else
|
||||
@ -2076,17 +2104,17 @@ fi
|
||||
echo "$ac_t""$libc_cv_asm_underscores" 1>&6
|
||||
else
|
||||
echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6
|
||||
echo "configure:2080: checking for _ prefix on C symbol names" >&5
|
||||
echo "configure:2108: checking for _ prefix on C symbol names" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
#line 2085 "configure"
|
||||
#line 2113 "configure"
|
||||
#include "confdefs.h"
|
||||
void underscore_test(void) {
|
||||
return; }
|
||||
EOF
|
||||
if { (eval echo configure:2090: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if { (eval echo configure:2118: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
|
||||
if grep _underscore_test conftest* >/dev/null; then
|
||||
rm -f conftest*
|
||||
libc_cv_asm_underscores=yes
|
||||
@ -2119,7 +2147,7 @@ if test $elf = yes; then
|
||||
libc_cv_asm_weakext_directive=no
|
||||
else
|
||||
echo $ac_n "checking for assembler .weak directive""... $ac_c" 1>&6
|
||||
echo "configure:2123: checking for assembler .weak directive" >&5
|
||||
echo "configure:2151: checking for assembler .weak directive" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_asm_weak_directive'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -2142,7 +2170,7 @@ echo "$ac_t""$libc_cv_asm_weak_directive" 1>&6
|
||||
|
||||
if test $libc_cv_asm_weak_directive = no; then
|
||||
echo $ac_n "checking for assembler .weakext directive""... $ac_c" 1>&6
|
||||
echo "configure:2146: checking for assembler .weakext directive" >&5
|
||||
echo "configure:2174: checking for assembler .weakext directive" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_asm_weakext_directive'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -2179,7 +2207,7 @@ EOF
|
||||
fi
|
||||
|
||||
echo $ac_n "checking for ld --no-whole-archive""... $ac_c" 1>&6
|
||||
echo "configure:2183: checking for ld --no-whole-archive" >&5
|
||||
echo "configure:2211: checking for ld --no-whole-archive" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_ld_no_whole_archive'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -2190,7 +2218,7 @@ __throw () {}
|
||||
EOF
|
||||
if { ac_try='${CC-cc} $CFLAGS
|
||||
-nostdlib -nostartfiles -Wl,--no-whole-archive
|
||||
-o conftest conftest.c 1>&5'; { (eval echo configure:2194: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
-o conftest conftest.c 1>&5'; { (eval echo configure:2222: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
libc_cv_ld_no_whole_archive=yes
|
||||
else
|
||||
libc_cv_ld_no_whole_archive=no
|
||||
@ -2201,7 +2229,7 @@ fi
|
||||
echo "$ac_t""$libc_cv_ld_no_whole_archive" 1>&6
|
||||
|
||||
echo $ac_n "checking for gcc -fno-exceptions""... $ac_c" 1>&6
|
||||
echo "configure:2205: checking for gcc -fno-exceptions" >&5
|
||||
echo "configure:2233: checking for gcc -fno-exceptions" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_gcc_no_exceptions'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -2212,7 +2240,7 @@ __throw () {}
|
||||
EOF
|
||||
if { ac_try='${CC-cc} $CFLAGS
|
||||
-nostdlib -nostartfiles -fno-exceptions
|
||||
-o conftest conftest.c 1>&5'; { (eval echo configure:2216: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
-o conftest conftest.c 1>&5'; { (eval echo configure:2244: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
libc_cv_gcc_no_exceptions=yes
|
||||
else
|
||||
libc_cv_gcc_no_exceptions=no
|
||||
@ -2223,12 +2251,12 @@ fi
|
||||
echo "$ac_t""$libc_cv_gcc_no_exceptions" 1>&6
|
||||
|
||||
echo $ac_n "checking for DWARF2 unwind info support""... $ac_c" 1>&6
|
||||
echo "configure:2227: checking for DWARF2 unwind info support" >&5
|
||||
echo "configure:2255: checking for DWARF2 unwind info support" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_gcc_dwarf2_unwind_info'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
cat > conftest.c <<EOF
|
||||
#line 2232 "configure"
|
||||
#line 2260 "configure"
|
||||
static char __EH_FRAME_BEGIN__;
|
||||
_start ()
|
||||
{
|
||||
@ -2249,7 +2277,7 @@ __bzero () {}
|
||||
EOF
|
||||
if { ac_try='${CC-cc} $CFLAGS
|
||||
-nostdlib -nostartfiles
|
||||
-o conftest conftest.c -lgcc >&5'; { (eval echo configure:2253: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
-o conftest conftest.c -lgcc >&5'; { (eval echo configure:2281: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
|
||||
libc_cv_gcc_dwarf2_unwind_info=yes
|
||||
else
|
||||
libc_cv_gcc_dwarf2_unwind_info=no
|
||||
@ -2307,7 +2335,7 @@ if test "$uname" = "sysdeps/generic"; then
|
||||
fi
|
||||
|
||||
echo $ac_n "checking OS release for uname""... $ac_c" 1>&6
|
||||
echo "configure:2311: checking OS release for uname" >&5
|
||||
echo "configure:2339: checking OS release for uname" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_uname_release'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -2329,7 +2357,7 @@ echo "$ac_t""$libc_cv_uname_release" 1>&6
|
||||
uname_release="$libc_cv_uname_release"
|
||||
|
||||
echo $ac_n "checking OS version for uname""... $ac_c" 1>&6
|
||||
echo "configure:2333: checking OS version for uname" >&5
|
||||
echo "configure:2361: checking OS version for uname" >&5
|
||||
if eval "test \"`echo '$''{'libc_cv_uname_version'+set}'`\" = set"; then
|
||||
echo $ac_n "(cached) $ac_c" 1>&6
|
||||
else
|
||||
@ -2351,7 +2379,7 @@ else
|
||||
fi
|
||||
|
||||
echo $ac_n "checking stdio selection""... $ac_c" 1>&6
|
||||
echo "configure:2355: checking stdio selection" >&5
|
||||
echo "configure:2383: checking stdio selection" >&5
|
||||
|
||||
case $stdio in
|
||||
libio) cat >> confdefs.h <<\EOF
|
||||
@ -2363,7 +2391,7 @@ esac
|
||||
echo "$ac_t""$stdio" 1>&6
|
||||
|
||||
echo $ac_n "checking ldap selection""... $ac_c" 1>&6
|
||||
echo "configure:2367: checking ldap selection" >&5
|
||||
echo "configure:2395: checking ldap selection" >&5
|
||||
|
||||
case $add_ons in
|
||||
*ldap*)
|
||||
@ -2428,6 +2456,21 @@ fi
|
||||
VERSION=`sed -e 's/^#define VERSION "\([^"]*\)"/\1/p' -e d < $srcdir/version.h`
|
||||
|
||||
|
||||
if test $libc_cv_gcc_pipe_bug = yes; then
|
||||
realCC=$CC
|
||||
CC=$makeCC
|
||||
CFLAGS=$makeCFLAGS
|
||||
fi
|
||||
if test -r /vmunix; then
|
||||
kernel_id=`strings /vmunix | grep UNIX`
|
||||
elif test -r /dynix; then
|
||||
kernel_id=`strings /dynix | grep DYNIX`
|
||||
else
|
||||
kernel_id=
|
||||
fi
|
||||
|
||||
|
||||
|
||||
trap '' 1 2 15
|
||||
cat > confcache <<\EOF
|
||||
# This file is a shell script that caches the results of configure
|
||||
@ -2867,10 +2910,16 @@ while test -n "$ac_sources"; do
|
||||
done
|
||||
EOF
|
||||
cat >> $CONFIG_STATUS <<EOF
|
||||
realCC=$realCC
|
||||
echo '$config_vars' >> config.make; test -d bits || mkdir bits
|
||||
EOF
|
||||
cat >> $CONFIG_STATUS <<\EOF
|
||||
|
||||
if test "$realCC"; then
|
||||
sed -e 's/%{pipe:-}/%|/g' `$realCC -print-file-name=specs` >specsT
|
||||
mv specsT specs
|
||||
fi
|
||||
|
||||
exit 0
|
||||
EOF
|
||||
chmod +x $CONFIG_STATUS
|
||||
|
40
configure.in
40
configure.in
@ -500,6 +500,35 @@ if test $libc_cv_need_minus_P = yes; then
|
||||
asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
|
||||
fi
|
||||
|
||||
# gcc 2.7.x has a bug where if -pipe is set, the assembler will always
|
||||
# be told to read stdin. This causes the compiler to hang when fed an
|
||||
# .s file.
|
||||
if test $ac_cv_prog_gcc = yes; then
|
||||
case `${CC-cc} -v 2>&1` in
|
||||
*2.7*)
|
||||
# We must check this even if -pipe is not given here, because the user
|
||||
# might do `make CFLAGS=-pipe'.
|
||||
AC_CACHE_CHECK(for gcc 2.7.x -pipe bug, libc_cv_gcc_pipe_bug, [dnl
|
||||
cat >conftest.s <<EOF
|
||||
foo:
|
||||
EOF
|
||||
if ${CC-cc} -pipe -c conftest.s <conftest.s 2>/dev/null; then
|
||||
libc_cv_gcc_pipe_bug=no
|
||||
else
|
||||
libc_cv_gcc_pipe_bug=yes
|
||||
fi
|
||||
rm -f conftest*])
|
||||
if test $libc_cv_gcc_pipe_bug = yes; then
|
||||
makeCC="${CC-cc} -B\$(common-objpfx)"
|
||||
makeCFLAGS=$CFLAGS
|
||||
CFLAGS=`echo $CFLAGS |sed 's/-pipe//'`
|
||||
fi;;
|
||||
*) libc_cv_gcc_pipe_bug=no;;
|
||||
esac
|
||||
else
|
||||
libc_cv_gcc_pipe_bug=no
|
||||
fi
|
||||
|
||||
AC_CACHE_CHECK(for assembler global-symbol directive,
|
||||
libc_cv_asm_global_directive, [dnl
|
||||
libc_cv_asm_global_directive=UNKNOWN
|
||||
@ -958,5 +987,16 @@ fi
|
||||
VERSION=`sed -e 's/^#define VERSION "\([^"]*\)"/\1/p' -e d < $srcdir/version.h`
|
||||
AC_SUBST(VERSION)
|
||||
|
||||
if test $libc_cv_gcc_pipe_bug = yes; then
|
||||
realCC=$CC
|
||||
CC=$makeCC
|
||||
CFLAGS=$makeCFLAGS
|
||||
fi
|
||||
AC_OUTPUT_COMMANDS([
|
||||
if test "$realCC"; then
|
||||
sed -e 's/%{pipe:-}/%|/g' `$realCC -print-file-name=specs` >specsT
|
||||
mv specsT specs
|
||||
fi], [realCC=$realCC])
|
||||
|
||||
AC_OUTPUT(config.make glibcbug ${config_makefile} ${config_uname}, ,
|
||||
[echo '$config_vars' >> config.make; test -d bits || mkdir bits])
|
||||
|
@ -20,6 +20,7 @@
|
||||
# Sub-makefile for ctype portion of the library.
|
||||
#
|
||||
subdir := ctype
|
||||
headers := ctype.h
|
||||
|
||||
routines := ctype ctype-extn ctype_l
|
||||
aux := ctype-info
|
||||
|
@ -23,6 +23,9 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
/* This is the internal function we use to generate the error string. */
|
||||
extern char *_strerror_internal __P ((int, char *, size_t));
|
||||
|
||||
/* This structure communicates state between _dl_catch_error and
|
||||
_dl_signal_error. */
|
||||
struct catch
|
||||
@ -74,11 +77,14 @@ _dl_signal_error (int errcode,
|
||||
{
|
||||
/* Lossage while resolving the program's own symbols is always fatal. */
|
||||
extern char **_dl_argv; /* Set in rtld.c at startup. */
|
||||
char buffer[1024];
|
||||
_dl_sysdep_fatal (_dl_argv[0] ?: "<program name unknown>",
|
||||
": error in loading shared libraries: ",
|
||||
objname ?: "", objname ? ": " : "",
|
||||
errstring, errcode ? ": " : "",
|
||||
errcode ? strerror (errcode) : "", "\n", NULL);
|
||||
(errcode
|
||||
? _strerror_internal (errcode, buffer, sizeof buffer)
|
||||
: ""), "\n", NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@ -93,7 +99,7 @@ _dl_catch_error (char **errstring,
|
||||
/* We need not handle `receiver' since setting a `catch' is handled
|
||||
before it. */
|
||||
|
||||
/* Some systems (.e.g, SPARC) handle constructors to local variables
|
||||
/* Some systems (e.g., SPARC) handle constructors to local variables
|
||||
inefficient. So we initialize `c' by hand. */
|
||||
c.errstring = NULL;
|
||||
c.objname = NULL;
|
||||
|
@ -279,6 +279,7 @@ _dl_lookup_versioned_symbol (const char *undef_name, const ElfW(Sym) **ref,
|
||||
const struct r_found_version *version,
|
||||
int reloc_type)
|
||||
{
|
||||
extern char **_dl_argv;
|
||||
const unsigned long int hash = _dl_elf_hash (undef_name);
|
||||
struct sym_val current_value = { 0, NULL };
|
||||
struct link_map **scope;
|
||||
@ -295,7 +296,9 @@ _dl_lookup_versioned_symbol (const char *undef_name, const ElfW(Sym) **ref,
|
||||
if (res < 0)
|
||||
/* Oh, oh. The file named in the relocation entry does not
|
||||
contain the needed symbol. */
|
||||
_dl_signal_error (0, reference_name,
|
||||
_dl_signal_error (0, (*reference_name
|
||||
? reference_name
|
||||
: (_dl_argv[0] ?: "<main program>")),
|
||||
make_string ("symbol ", undef_name, ", version ",
|
||||
version->name,
|
||||
" not defined in file ",
|
||||
|
@ -395,8 +395,7 @@ of this helper program; chances are you did not intend to run this program.\n",
|
||||
{
|
||||
/* Create a link_map for the executable itself.
|
||||
This will be what dlopen on "" returns. */
|
||||
main_map = _dl_new_object (_dl_argv[0] ?: (char *) "<main program>",
|
||||
"", lt_executable);
|
||||
main_map = _dl_new_object ((char *) "", "", lt_executable);
|
||||
if (main_map == NULL)
|
||||
_dl_sysdep_fatal ("cannot allocate memory for link map\n", NULL);
|
||||
main_map->l_phdr = phdr;
|
||||
|
@ -8,6 +8,7 @@
|
||||
VERSION="@VERSION@"
|
||||
BUGGLIBC="bugs@gnu.org"
|
||||
ADDONS="@subdirs@"
|
||||
HOST="@host@"
|
||||
|
||||
PATH=/bin:/usr/bin:/usr/local/bin:$PATH
|
||||
export PATH
|
||||
@ -119,6 +120,7 @@ ${ORGANIZATION- $ORGANIZATION_C}
|
||||
>Release: libc-${VERSION}
|
||||
>Environment:
|
||||
$ENVIRONMENT_C
|
||||
`[ -n "$HOST" ] && echo Host type: $HOST`
|
||||
`[ -n "$SYSTEM" ] && echo System: $SYSTEM`
|
||||
`[ -n "$ARCH" ] && echo Architecture: $ARCH`
|
||||
`[ -n "$MACHINE" ] && echo Machine: $MACHINE`
|
||||
|
@ -20,6 +20,7 @@
|
||||
# Sub-makefile for grp portion of the library.
|
||||
#
|
||||
subdir := grp
|
||||
headers := grp.h
|
||||
|
||||
routines := fgetgrent initgroups setgroups \
|
||||
getgrent getgrgid getgrnam \
|
||||
|
@ -84,6 +84,9 @@ void free ();
|
||||
# define strcasecmp __strcasecmp
|
||||
# define strdup __strdup
|
||||
|
||||
# define mempcpy __mempcpy
|
||||
# define HAVE_MEMPCPY 1
|
||||
|
||||
/* We need locking here since we can be called from different palces. */
|
||||
# include <bits/libc-lock.h>
|
||||
|
||||
@ -231,8 +234,13 @@ read_alias_file (fname, fname_len)
|
||||
|
||||
full_fname = (char *) alloca (fname_len + sizeof aliasfile);
|
||||
ADD_BLOCK (block_list, full_fname);
|
||||
#ifdef HAVE_MEMPCPY
|
||||
mempcpy (mempcpy (full_fname, fname, fname_len),
|
||||
aliasfile, sizeof aliasfile);
|
||||
#else
|
||||
memcpy (full_fname, fname, fname_len);
|
||||
memcpy (&full_fname[fname_len], aliasfile, sizeof aliasfile);
|
||||
#endif
|
||||
|
||||
fp = fopen (full_fname, "r");
|
||||
if (fp == NULL)
|
||||
@ -254,10 +262,23 @@ read_alias_file (fname, fname_len)
|
||||
char *value;
|
||||
char *cp;
|
||||
|
||||
if (fgets (buf, BUFSIZ, fp) == NULL)
|
||||
if (fgets (buf, sizeof buf, fp) == NULL)
|
||||
/* EOF reached. */
|
||||
break;
|
||||
|
||||
/* Possibly not the whole line fits into the buffer. Ignore
|
||||
the rest of the line. */
|
||||
if (strchr (buf, '\n') == NULL)
|
||||
{
|
||||
char altbuf[BUFSIZ];
|
||||
do
|
||||
if (fgets (altbuf, sizeof altbuf, fp) == NULL)
|
||||
/* Make sure the inner loop will be left. The outer loop
|
||||
will exit at the `feof' test. */
|
||||
break;
|
||||
while (strchr (altbuf, '\n') == NULL);
|
||||
}
|
||||
|
||||
cp = buf;
|
||||
/* Ignore leading white space. */
|
||||
while (isspace (cp[0]))
|
||||
@ -324,7 +345,7 @@ read_alias_file (fname, fname_len)
|
||||
alias, alias_len);
|
||||
string_space_act += alias_len;
|
||||
|
||||
map[nmap].alias = memcpy (&string_space[string_space_act],
|
||||
map[nmap].value = memcpy (&string_space[string_space_act],
|
||||
value, value_len);
|
||||
string_space_act += value_len;
|
||||
|
||||
@ -332,17 +353,6 @@ read_alias_file (fname, fname_len)
|
||||
++added;
|
||||
}
|
||||
}
|
||||
|
||||
/* Possibly not the whole line fits into the buffer. Ignore
|
||||
the rest of the line. */
|
||||
while (strchr (cp, '\n') == NULL)
|
||||
{
|
||||
cp = buf;
|
||||
if (fgets (buf, BUFSIZ, fp) == NULL)
|
||||
/* Make sure the inner loop will be left. The outer loop
|
||||
will exit at the `feof' test. */
|
||||
*cp = '\n';
|
||||
}
|
||||
}
|
||||
|
||||
/* Should we test for ferror()? I think we have to silently ignore
|
||||
|
2
libc.map
2
libc.map
@ -86,7 +86,7 @@ GLIBC_2.0 {
|
||||
_IO_seekmark; _IO_unsave_markers; _IO_str_overflow;
|
||||
_IO_str_underflow; _IO_str_init_static; _IO_str_init_readonly;
|
||||
_IO_str_seekoff; _IO_str_pbackfail; _IO_file_jumps;
|
||||
_IO_peekc_locked;
|
||||
_IO_peekc_locked; _IO_flockfile; _IO_funlockfile;
|
||||
__vsscanf; __vfscanf; __vsnprintf;
|
||||
_rpc_dtablesize; _null_auth; _seterr_reply;
|
||||
__res_randomid;
|
||||
|
@ -25,17 +25,36 @@ self-contained way.
|
||||
If you define this macro, then the functionality from the POSIX.1
|
||||
standard (IEEE Standard 1003.1) is available, as well as all of the
|
||||
@w{ISO C} facilities.
|
||||
|
||||
The state of @code{_POSIX_SOURCE} is irrelevant if you define the
|
||||
macro @code{_POSIX_C_SOURCE} to a positive integer.
|
||||
@end defvr
|
||||
|
||||
@comment (none)
|
||||
@comment POSIX.2
|
||||
@defvr Macro _POSIX_C_SOURCE
|
||||
If you define this macro with a value of @code{1}, then the
|
||||
functionality from the POSIX.1 standard (IEEE Standard 1003.1) is made
|
||||
available. If you define this macro with a value of @code{2}, then both
|
||||
the functionality from the POSIX.1 standard and the functionality from
|
||||
the POSIX.2 standard (IEEE Standard 1003.2) are made available. This is
|
||||
in addition to the @w{ISO C} facilities.
|
||||
Define this macro to a positive integer to control which POSIX
|
||||
functionality is made available. The greater the value of this macro,
|
||||
the more functionality is made available.
|
||||
|
||||
If you define this macro to a value greater than or equal to @code{1},
|
||||
then the functionality from the 1990 edition of the POSIX.1 standard
|
||||
(IEEE Standard 1003.1-1990) is made available.
|
||||
|
||||
If you define this macro to a value greater than or equal to @code{2},
|
||||
then the functionality from the 1992 edition of the POSIX.2 standard
|
||||
(IEEE Standard 1003.2-1992) is made available.
|
||||
|
||||
If you define this macro to a value greater than or equal to @code{199309L},
|
||||
then the functionality from the 1993 edition of the POSIX.1b standard
|
||||
(IEEE Standard 1003.1b-1993) is made available.
|
||||
|
||||
Greater values for @code{_POSIX_C_SOURCE} will enable future extensions.
|
||||
The POSIX standards process will define these values as necessary, and
|
||||
the GNU C Library should support them some time after they become standardized.
|
||||
The 1996 edition of POSIX.1 (ISO/IEC 9945-1: 1996) states that
|
||||
if you define @code{_POSIX_C_SOURCE} to a value greater than
|
||||
or equal to @code{199506L}, then the functionality from the 1996
|
||||
edition is made available.
|
||||
|
||||
The Single Unix Specification specify that setting this macro to the
|
||||
value @code{199506L} selects all the values specified by the POSIX
|
||||
|
@ -351,8 +351,8 @@ The return value is @code{0} in case the next entry was read
|
||||
successfully. In this case a pointer to the result is returned in
|
||||
*@var{result}. It is not required that *@var{result} is the same as
|
||||
@var{entry}. If something goes wrong while executing @code{readdir_r}
|
||||
the function returns @code{-1}. The @code{errno} variable is set like
|
||||
described for @code{readdir}.
|
||||
the function returns a value indicating the error (as described for
|
||||
@code{readdir}).
|
||||
|
||||
@strong{Portability Note:} On some systems, @code{readdir_r} may not
|
||||
return a terminated string as the file name even if no @code{d_reclen}
|
||||
|
@ -20,6 +20,7 @@
|
||||
# Sub-makefile for pwd portion of the library.
|
||||
#
|
||||
subdir := pwd
|
||||
headers := pwd.h
|
||||
|
||||
routines := fgetpwent getpw putpwent \
|
||||
getpwent getpwnam getpwuid \
|
||||
|
@ -204,7 +204,8 @@ __strfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format, ...)
|
||||
va_end (ap);
|
||||
return -1;
|
||||
}
|
||||
n_sign_posn = 5; /* This is a else unused value. */
|
||||
p_sign_posn = 0;
|
||||
n_sign_posn = 0;
|
||||
continue;
|
||||
case '!': /* Don't print the currency symbol. */
|
||||
print_curr_symbol = 0;
|
||||
@ -218,6 +219,13 @@ __strfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format, ...)
|
||||
break;
|
||||
}
|
||||
|
||||
/* If not specified by the format string now find the values for
|
||||
the format specification. */
|
||||
if (p_sign_posn == -1)
|
||||
p_sign_posn = *_NL_CURRENT (LC_MONETARY, P_SIGN_POSN);
|
||||
if (n_sign_posn == -1)
|
||||
n_sign_posn = *_NL_CURRENT (LC_MONETARY, N_SIGN_POSN);
|
||||
|
||||
if (isdigit (*fmt))
|
||||
{
|
||||
/* Parse field width. */
|
||||
@ -341,13 +349,7 @@ __strfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format, ...)
|
||||
sign_char = '-';
|
||||
cs_precedes = *_NL_CURRENT (LC_MONETARY, N_CS_PRECEDES);
|
||||
sep_by_space = *_NL_CURRENT (LC_MONETARY, N_SEP_BY_SPACE);
|
||||
/* If the '(' flag is not given use the sign position from
|
||||
the current locale. */
|
||||
if (n_sign_posn == -1)
|
||||
sign_posn = *_NL_CURRENT (LC_MONETARY, N_SIGN_POSN);
|
||||
else
|
||||
/* This means use parentheses. */
|
||||
sign_posn = 0;
|
||||
sign_posn = n_sign_posn;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -358,13 +360,7 @@ __strfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format, ...)
|
||||
sign_char = ' ';
|
||||
cs_precedes = *_NL_CURRENT (LC_MONETARY, P_CS_PRECEDES);
|
||||
sep_by_space = *_NL_CURRENT (LC_MONETARY, P_SEP_BY_SPACE);
|
||||
if (n_sign_posn == -1)
|
||||
sign_posn = *_NL_CURRENT (LC_MONETARY, P_SIGN_POSN);
|
||||
else
|
||||
/* Here we don't set SIGN_POSN to 0 because we don'want to
|
||||
print <SP> instead of the braces and this is what the
|
||||
value 5 means. */
|
||||
sign_posn = 5;
|
||||
sign_posn = p_sign_posn;
|
||||
}
|
||||
|
||||
/* Set default values for unspecified information. */
|
||||
@ -384,9 +380,7 @@ __strfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format, ...)
|
||||
startp = dest; /* Remember start so we can compute length. */
|
||||
|
||||
if (sign_posn == 0)
|
||||
out_char (left_paren);
|
||||
if (sign_posn == 5) /* This is for positive number and ( flag. */
|
||||
out_char (' ');
|
||||
out_char (is_negative ? left_paren : ' ');
|
||||
|
||||
if (cs_precedes)
|
||||
{
|
||||
@ -495,9 +489,7 @@ __strfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format, ...)
|
||||
}
|
||||
|
||||
if (sign_posn == 0)
|
||||
out_char (right_paren);
|
||||
if (sign_posn == 5)
|
||||
out_char (' '); /* This is for positive number and ( flag. */
|
||||
out_char (is_negative ? right_paren : ' ');
|
||||
|
||||
/* Now test whether the output width is filled. */
|
||||
if (dest - startp < width)
|
||||
|
@ -22,20 +22,15 @@
|
||||
#undef __need_Emath
|
||||
#define __Emath_defined 1
|
||||
|
||||
# define EDOM 1
|
||||
# define ERANGE 2
|
||||
# define EDOM XXX <--- fill in what is actually needed
|
||||
# define ERANGE XXX <--- fill in what is actually needed
|
||||
#endif
|
||||
|
||||
#ifdef _ERRNO_H
|
||||
# define ENOSYS 3
|
||||
# define EINVAL 4
|
||||
# define ESPIPE 5
|
||||
# define EBADF 6
|
||||
# define ENOMEM 7
|
||||
# define EACCES 8
|
||||
# define ENFILE 9
|
||||
# define EMFILE 10
|
||||
# define ENOMSG 11
|
||||
# error "Define here all the missing error messages for the port. These"
|
||||
# error "must match the numbers of the kernel."
|
||||
# define Exxxx XXX
|
||||
...
|
||||
#endif
|
||||
|
||||
#define __set_errno(val) errno = (val)
|
||||
|
@ -17,6 +17,11 @@
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
/* Include signal.h now so that we can safely reinclude it again in
|
||||
signame.c later on. We completely override the definitions, we
|
||||
just have to be sure that the include guard in signal.h keeps it
|
||||
from redefining the signal values. */
|
||||
#include <signal.h>
|
||||
|
||||
/* Get this configuration's defns of the signal numbers. */
|
||||
@ -32,6 +37,9 @@
|
||||
#define HAVE_PSIGNAL
|
||||
#define sys_siglist my_siglist /* Avoid clash with signal.h. */
|
||||
|
||||
#undef NSIG
|
||||
#define NSIG _NSIG /* make sure that the value from SIGNUM_H is used. */
|
||||
|
||||
#include "signame.c"
|
||||
|
||||
|
||||
|
@ -27,7 +27,7 @@ __readdir_r (DIR *dirp, struct dirent *entry, struct dirent **result)
|
||||
{
|
||||
__set_errno (ENOSYS);
|
||||
*result = NULL;
|
||||
return -1;
|
||||
return ENOSYS;
|
||||
}
|
||||
weak_alias (__readdir_r, readdir_r)
|
||||
|
||||
|
62
sysdeps/standalone/bits/errno.h
Normal file
62
sysdeps/standalone/bits/errno.h
Normal file
@ -0,0 +1,62 @@
|
||||
/* Copyright (C) 1991, 1994, 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
|
||||
modify it under the terms of the GNU Library General Public License as
|
||||
published by the Free Software Foundation; either version 2 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
||||
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* This file defines the `errno' constants. */
|
||||
|
||||
#if !defined __Emath_defined && (defined _ERRNO_H || defined __need_Emath)
|
||||
#undef __need_Emath
|
||||
#define __Emath_defined 1
|
||||
|
||||
# define EDOM 1
|
||||
# define ERANGE 2
|
||||
#endif
|
||||
|
||||
#ifdef _ERRNO_H
|
||||
# define ENOSYS 3
|
||||
# define EINVAL 4
|
||||
# define ESPIPE 5
|
||||
# define EBADF 6
|
||||
# define ENOMEM 7
|
||||
# define EACCES 8
|
||||
# define ENFILE 9
|
||||
# define EMFILE 10
|
||||
# define ENOMSG 11
|
||||
# define ENAMETOOLONG 12
|
||||
# define ELOOP 13
|
||||
# define ENOMSG 14
|
||||
# define E2BIG 15
|
||||
# define EINTR 16
|
||||
# define EILSEQ 17
|
||||
# define ENOEXEC 18
|
||||
# define ENOENT 19
|
||||
# define EPROTOTYPE 20
|
||||
# define ESRCH 21
|
||||
# define EPERM 22
|
||||
# define EEXIST 23
|
||||
# define ENOTDIR 24
|
||||
# define ESTALE 25
|
||||
# define ENOTTY 26
|
||||
# define EISDIR 27
|
||||
# define EOPNOTSUPP 28
|
||||
# define EAGAIN 29
|
||||
# define EIO 30
|
||||
# define ENOSPC 31
|
||||
# define EBUSY 32
|
||||
#endif
|
||||
|
||||
#define __set_errno(val) errno = (val)
|
@ -103,6 +103,6 @@ __readdir_r (DIR *dirp, struct dirent *entry, struct dirent **result)
|
||||
|
||||
__libc_lock_unlock (dirp->lock);
|
||||
|
||||
return dp != NULL ? 0 : -1;
|
||||
return dp != NULL ? 0 : errno;
|
||||
}
|
||||
weak_alias (__readdir_r, readdir_r)
|
||||
|
@ -12,4 +12,4 @@ kernel_termios.h
|
||||
sys/acct.h
|
||||
sys/io.h
|
||||
sys/procfs.h
|
||||
xstatconv.c
|
||||
xstatconv.c
|
||||
|
140
time/strftime.c
140
time/strftime.c
@ -275,7 +275,7 @@ memcpy_lowcase (dest, src, len)
|
||||
size_t len;
|
||||
{
|
||||
while (len-- > 0)
|
||||
dest[len] = TOLOWER (src[len]);
|
||||
dest[len] = TOLOWER ((unsigned char) src[len]);
|
||||
return dest;
|
||||
}
|
||||
|
||||
@ -288,7 +288,7 @@ memcpy_uppcase (dest, src, len)
|
||||
size_t len;
|
||||
{
|
||||
while (len-- > 0)
|
||||
dest[len] = TOUPPER (src[len]);
|
||||
dest[len] = TOUPPER ((unsigned char) src[len]);
|
||||
return dest;
|
||||
}
|
||||
|
||||
@ -348,7 +348,7 @@ iso_week_days (yday, wday)
|
||||
}
|
||||
|
||||
|
||||
#ifndef _NL_CURRENT
|
||||
#if !(defined _NL_CURRENT || HAVE_STRFTIME)
|
||||
static char const weekday_name[][10] =
|
||||
{
|
||||
"Sunday", "Monday", "Tuesday", "Wednesday",
|
||||
@ -362,13 +362,27 @@ static char const month_name[][10] =
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef emacs
|
||||
# define my_strftime emacs_strftime
|
||||
/* Emacs 20.2 uses `-Dstrftime=emacs_strftime' when compiling,
|
||||
because that's how strftime used to be configured.
|
||||
Undo this, since it gets in the way of accessing the underlying strftime,
|
||||
which is needed for things like %Ec in Solaris.
|
||||
The following two lines can be removed once Emacs stops compiling with
|
||||
`-Dstrftime=emacs_strftime'. */
|
||||
# undef strftime
|
||||
size_t strftime __P ((char *, size_t, const char *, const struct tm *));
|
||||
#else
|
||||
# define my_strftime strftime
|
||||
#endif
|
||||
|
||||
#if !defined _LIBC && HAVE_TZNAME && HAVE_TZSET
|
||||
/* Solaris 2.5 tzset sometimes modifies the storage returned by localtime.
|
||||
Work around this bug by copying *tp before it might be munged. */
|
||||
size_t _strftime_copytm __P ((char *, size_t, const char *,
|
||||
const struct tm *));
|
||||
size_t
|
||||
strftime (s, maxsize, format, tp)
|
||||
my_strftime (s, maxsize, format, tp)
|
||||
char *s;
|
||||
size_t maxsize;
|
||||
const char *format;
|
||||
@ -378,10 +392,8 @@ static char const month_name[][10] =
|
||||
tmcopy = *tp;
|
||||
return _strftime_copytm (s, maxsize, format, &tmcopy);
|
||||
}
|
||||
# ifdef strftime
|
||||
# undef strftime
|
||||
# endif
|
||||
# define strftime(S, Maxsize, Format, Tp) \
|
||||
# undef my_strftime
|
||||
# define my_strftime(S, Maxsize, Format, Tp) \
|
||||
_strftime_copytm (S, Maxsize, Format, Tp)
|
||||
#endif
|
||||
|
||||
@ -393,7 +405,7 @@ static char const month_name[][10] =
|
||||
anywhere, so to determine how many characters would be
|
||||
written, use NULL for S and (size_t) UINT_MAX for MAXSIZE. */
|
||||
size_t
|
||||
strftime (s, maxsize, format, tp)
|
||||
my_strftime (s, maxsize, format, tp)
|
||||
char *s;
|
||||
size_t maxsize;
|
||||
const char *format;
|
||||
@ -411,6 +423,7 @@ strftime (s, maxsize, format, tp)
|
||||
size_t am_len = strlen (a_month);
|
||||
size_t ap_len = strlen (ampm);
|
||||
#else
|
||||
# if !HAVE_STRFTIME
|
||||
const char *const f_wkday = weekday_name[tp->tm_wday];
|
||||
const char *const f_month = month_name[tp->tm_mon];
|
||||
const char *const a_wkday = f_wkday;
|
||||
@ -419,9 +432,12 @@ strftime (s, maxsize, format, tp)
|
||||
size_t aw_len = 3;
|
||||
size_t am_len = 3;
|
||||
size_t ap_len = 2;
|
||||
# endif
|
||||
#endif
|
||||
#if defined _NL_CURRENT || !HAVE_STRFTIME
|
||||
size_t wkday_len = strlen (f_wkday);
|
||||
size_t month_len = strlen (f_month);
|
||||
#endif
|
||||
const char *zone;
|
||||
size_t zonelen;
|
||||
size_t i = 0;
|
||||
@ -475,6 +491,7 @@ strftime (s, maxsize, format, tp)
|
||||
int to_lowcase = 0;
|
||||
int to_uppcase = 0;
|
||||
int change_case = 0;
|
||||
int format_char;
|
||||
|
||||
#if DO_MULTIBYTE
|
||||
|
||||
@ -603,7 +620,8 @@ strftime (s, maxsize, format, tp)
|
||||
}
|
||||
|
||||
/* Now do the specified format. */
|
||||
switch (*f)
|
||||
format_char = *f;
|
||||
switch (format_char)
|
||||
{
|
||||
#define DO_NUMBER(d, v) \
|
||||
digits = width == -1 ? d : width; \
|
||||
@ -626,8 +644,12 @@ strftime (s, maxsize, format, tp)
|
||||
to_uppcase = 1;
|
||||
to_lowcase = 0;
|
||||
}
|
||||
#if defined _NL_CURRENT || !HAVE_STRFTIME
|
||||
cpy (aw_len, a_wkday);
|
||||
break;
|
||||
#else
|
||||
goto underlying_strftime;
|
||||
#endif
|
||||
|
||||
case 'A':
|
||||
if (modifier != 0)
|
||||
@ -637,15 +659,23 @@ strftime (s, maxsize, format, tp)
|
||||
to_uppcase = 1;
|
||||
to_lowcase = 0;
|
||||
}
|
||||
#if defined _NL_CURRENT || !HAVE_STRFTIME
|
||||
cpy (wkday_len, f_wkday);
|
||||
break;
|
||||
#else
|
||||
goto underlying_strftime;
|
||||
#endif
|
||||
|
||||
case 'b':
|
||||
case 'h': /* POSIX.2 extension. */
|
||||
if (modifier != 0)
|
||||
goto bad_format;
|
||||
#if defined _NL_CURRENT || !HAVE_STRFTIME
|
||||
cpy (am_len, a_month);
|
||||
break;
|
||||
#else
|
||||
goto underlying_strftime;
|
||||
#endif
|
||||
|
||||
case 'B':
|
||||
if (modifier != 0)
|
||||
@ -655,8 +685,12 @@ strftime (s, maxsize, format, tp)
|
||||
to_uppcase = 1;
|
||||
to_lowcase = 0;
|
||||
}
|
||||
#if defined _NL_CURRENT || !HAVE_STRFTIME
|
||||
cpy (month_len, f_month);
|
||||
break;
|
||||
#else
|
||||
goto underlying_strftime;
|
||||
#endif
|
||||
|
||||
case 'c':
|
||||
if (modifier == 'O')
|
||||
@ -666,32 +700,58 @@ strftime (s, maxsize, format, tp)
|
||||
&& *(subfmt = _NL_CURRENT (LC_TIME, ERA_D_T_FMT)) != '\0'))
|
||||
subfmt = _NL_CURRENT (LC_TIME, D_T_FMT);
|
||||
#else
|
||||
# if HAVE_STRFTIME
|
||||
goto underlying_strftime;
|
||||
# else
|
||||
subfmt = "%a %b %e %H:%M:%S %Y";
|
||||
# endif
|
||||
#endif
|
||||
|
||||
subformat:
|
||||
{
|
||||
char *old_start = p;
|
||||
size_t len = strftime (NULL, maxsize - i, subfmt, tp);
|
||||
size_t len = my_strftime (NULL, maxsize - i, subfmt, tp);
|
||||
if (len == 0 && *subfmt)
|
||||
return 0;
|
||||
add (len, strftime (p, maxsize - i, subfmt, tp));
|
||||
add (len, my_strftime (p, maxsize - i, subfmt, tp));
|
||||
|
||||
if (to_uppcase)
|
||||
while (old_start < p)
|
||||
{
|
||||
*old_start = TOUPPER (*old_start);
|
||||
*old_start = TOUPPER ((unsigned char) *old_start);
|
||||
++old_start;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
#if HAVE_STRFTIME && ! (defined _NL_CURRENT && HAVE_STRUCT_ERA_ENTRY)
|
||||
underlying_strftime:
|
||||
{
|
||||
/* The relevant information is available only via the
|
||||
underlying strftime implementation, so use that. */
|
||||
char ufmt[4];
|
||||
char *u = ufmt;
|
||||
char ubuf[1024]; /* enough for any single format in practice */
|
||||
size_t len;
|
||||
*u++ = '%';
|
||||
if (modifier != 0)
|
||||
*u++ = modifier;
|
||||
*u++ = format_char;
|
||||
*u = '\0';
|
||||
len = strftime (ubuf, sizeof ubuf, ufmt, tp);
|
||||
if (len == 0)
|
||||
return 0;
|
||||
cpy (len, ubuf);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
||||
case 'C': /* POSIX.2 extension. */
|
||||
if (modifier == 'O')
|
||||
goto bad_format;
|
||||
#if HAVE_STRUCT_ERA_ENTRY
|
||||
if (modifier == 'E')
|
||||
{
|
||||
#if HAVE_STRUCT_ERA_ENTRY
|
||||
struct era_entry *era = _nl_get_era_entry (tp);
|
||||
if (era)
|
||||
{
|
||||
@ -699,8 +759,13 @@ strftime (s, maxsize, format, tp)
|
||||
cpy (len, era->name_fmt);
|
||||
break;
|
||||
}
|
||||
}
|
||||
#else
|
||||
# if HAVE_STRFTIME
|
||||
goto underlying_strftime;
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
{
|
||||
int year = tp->tm_year + TM_YEAR_BASE;
|
||||
DO_NUMBER (1, year / 100 - (year % 100 < 0));
|
||||
@ -714,8 +779,13 @@ strftime (s, maxsize, format, tp)
|
||||
&& *(subfmt = _NL_CURRENT (LC_TIME, ERA_D_FMT)) != '\0'))
|
||||
subfmt = _NL_CURRENT (LC_TIME, D_FMT);
|
||||
goto subformat;
|
||||
#endif
|
||||
#else
|
||||
# if HAVE_STRFTIME
|
||||
goto underlying_strftime;
|
||||
# else
|
||||
/* Fall through. */
|
||||
# endif
|
||||
#endif
|
||||
case 'D': /* POSIX.2 extension. */
|
||||
if (modifier != 0)
|
||||
goto bad_format;
|
||||
@ -745,9 +815,9 @@ strftime (s, maxsize, format, tp)
|
||||
do_number:
|
||||
/* Format the number according to the MODIFIER flag. */
|
||||
|
||||
#ifdef _NL_CURRENT
|
||||
if (modifier == 'O' && 0 <= number_value)
|
||||
{
|
||||
#ifdef _NL_CURRENT
|
||||
/* Get the locale specific alternate representation of
|
||||
the number NUMBER_VALUE. If none exist NULL is returned. */
|
||||
const char *cp = _nl_get_alt_digit (number_value);
|
||||
@ -761,8 +831,12 @@ strftime (s, maxsize, format, tp)
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
# if HAVE_STRFTIME
|
||||
goto underlying_strftime;
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
{
|
||||
unsigned int u = number_value;
|
||||
|
||||
@ -852,6 +926,9 @@ strftime (s, maxsize, format, tp)
|
||||
|
||||
case 'P':
|
||||
to_lowcase = 1;
|
||||
#if !defined _NL_CURRENT && HAVE_STRFTIME
|
||||
format_char = 'p';
|
||||
#endif
|
||||
/* FALLTHROUGH */
|
||||
|
||||
case 'p':
|
||||
@ -860,8 +937,12 @@ strftime (s, maxsize, format, tp)
|
||||
to_uppcase = 0;
|
||||
to_lowcase = 1;
|
||||
}
|
||||
#if defined _NL_CURRENT || !HAVE_STRFTIME
|
||||
cpy (ap_len, ampm);
|
||||
break;
|
||||
#else
|
||||
goto underlying_strftime;
|
||||
#endif
|
||||
|
||||
case 'R': /* GNU extension. */
|
||||
subfmt = "%H:%M";
|
||||
@ -927,8 +1008,13 @@ strftime (s, maxsize, format, tp)
|
||||
&& *(subfmt = _NL_CURRENT (LC_TIME, ERA_T_FMT)) != '\0'))
|
||||
subfmt = _NL_CURRENT (LC_TIME, T_FMT);
|
||||
goto subformat;
|
||||
#endif
|
||||
#else
|
||||
# if HAVE_STRFTIME
|
||||
goto underlying_strftime;
|
||||
# else
|
||||
/* Fall through. */
|
||||
# endif
|
||||
#endif
|
||||
case 'T': /* POSIX.2 extension. */
|
||||
subfmt = "%H:%M:%S";
|
||||
goto subformat;
|
||||
@ -1000,26 +1086,30 @@ strftime (s, maxsize, format, tp)
|
||||
DO_NUMBER (1, tp->tm_wday);
|
||||
|
||||
case 'Y':
|
||||
#if HAVE_STRUCT_ERA_ENTRY
|
||||
if (modifier == 'E')
|
||||
{
|
||||
#if HAVE_STRUCT_ERA_ENTRY
|
||||
struct era_entry *era = _nl_get_era_entry (tp);
|
||||
if (era)
|
||||
{
|
||||
subfmt = strchr (era->name_fmt, '\0') + 1;
|
||||
goto subformat;
|
||||
}
|
||||
}
|
||||
#else
|
||||
# if HAVE_STRFTIME
|
||||
goto underlying_strftime;
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
if (modifier == 'O')
|
||||
goto bad_format;
|
||||
else
|
||||
DO_NUMBER (1, tp->tm_year + TM_YEAR_BASE);
|
||||
|
||||
case 'y':
|
||||
#if HAVE_STRUCT_ERA_ENTRY
|
||||
if (modifier == 'E')
|
||||
{
|
||||
#if HAVE_STRUCT_ERA_ENTRY
|
||||
struct era_entry *era = _nl_get_era_entry (tp);
|
||||
if (era)
|
||||
{
|
||||
@ -1027,8 +1117,12 @@ strftime (s, maxsize, format, tp)
|
||||
DO_NUMBER (1, (era->offset
|
||||
+ (era->direction == '-' ? -delta : delta)));
|
||||
}
|
||||
}
|
||||
#else
|
||||
# if HAVE_STRFTIME
|
||||
goto underlying_strftime;
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
DO_NUMBER (2, (tp->tm_year % 100 + 100) % 100);
|
||||
|
||||
case 'Z':
|
||||
|
@ -549,10 +549,7 @@ strptime_internal (buf, format, tm, decided)
|
||||
break;
|
||||
case 'Y':
|
||||
/* Match year including century number. */
|
||||
if (sizeof (time_t) > 4)
|
||||
get_number (0, 9999);
|
||||
else
|
||||
get_number (0, 2036);
|
||||
get_number (0, 9999);
|
||||
tm->tm_year = val - 1900;
|
||||
break;
|
||||
case 'Z':
|
||||
@ -712,6 +709,7 @@ strptime_internal (buf, format, tm, decided)
|
||||
case 'y':
|
||||
/* Match year within century using alternate numeric symbols. */
|
||||
get_alt_number (0, 99);
|
||||
tm->tm_year = val >= 69 ? val : val + 100;
|
||||
break;
|
||||
default:
|
||||
return NULL;
|
||||
|
@ -127,10 +127,10 @@ extern int __wcscoll_l __P ((__const wchar_t *__s1, __const wchar_t *__s2,
|
||||
`wcscoll' to the original strings. */
|
||||
extern size_t __wcsxfrm_l __P ((wchar_t *__s1, __const wchar_t *__s2,
|
||||
size_t __n, __locale_t __loc));
|
||||
#endif
|
||||
|
||||
/* Duplicate S, returning an identical malloc'd string. */
|
||||
extern wchar_t *wcsdup __P ((__const wchar_t *__s));
|
||||
#endif
|
||||
|
||||
/* Find the first occurrence of WC in WCS. */
|
||||
extern wchar_t *wcschr __P ((__const wchar_t *__wcs, wchar_t __wc));
|
||||
@ -138,11 +138,11 @@ extern wchar_t *wcschr __P ((__const wchar_t *__wcs, wchar_t __wc));
|
||||
extern wchar_t *wcsrchr __P ((__const wchar_t *__wcs, wchar_t __wc));
|
||||
|
||||
/* Return the length of the initial segmet of WCS which
|
||||
consists entirely of wide-characters not in REJECT. */
|
||||
consists entirely of wide characters not in REJECT. */
|
||||
extern size_t wcscspn __P ((__const wchar_t *__wcs,
|
||||
__const wchar_t *__reject));
|
||||
/* Return the length of the initial segmet of WCS which
|
||||
consists entirely of wide-characters in ACCEPT. */
|
||||
consists entirely of wide characters in ACCEPT. */
|
||||
extern size_t wcsspn __P ((__const wchar_t *__wcs, __const wchar_t *__accept));
|
||||
/* Find the first occurrence in WCS of any character in ACCEPT. */
|
||||
extern wchar_t *wcspbrk __P ((__const wchar_t *__wcs,
|
||||
@ -155,27 +155,27 @@ extern wchar_t *wcstok __P ((wchar_t *__restrict __s,
|
||||
__const wchar_t *__restrict __delim,
|
||||
wchar_t **__restrict __ptr));
|
||||
|
||||
/* Return the number of wide-characters in S. */
|
||||
/* Return the number of wide characters in S. */
|
||||
extern size_t wcslen __P ((__const wchar_t *__s));
|
||||
|
||||
|
||||
/* Search N bytes of S for C. */
|
||||
/* Search N wide characters of S for C. */
|
||||
extern wchar_t *wmemchr __P ((__const wchar_t *__s, wchar_t __c, size_t __n));
|
||||
|
||||
/* Compare N bytes of S1 and S2. */
|
||||
/* Compare N wide characters of S1 and S2. */
|
||||
extern int wmemcmp __P ((__const wchar_t *__restrict __s1,
|
||||
__const wchar_t *__restrict __s2, size_t __n));
|
||||
|
||||
/* Copy N bytes of SRC to DEST. */
|
||||
/* Copy N wide characters of SRC to DEST. */
|
||||
extern wchar_t *wmemcpy __P ((wchar_t *__restrict __s1,
|
||||
__const wchar_t *__restrict __s2, size_t __n));
|
||||
|
||||
/* Copy N bytes of SRC to DEST, guaranteeing
|
||||
/* Copy N wide characters of SRC to DEST, guaranteeing
|
||||
correct behavior for overlapping strings. */
|
||||
extern wchar_t *wmemmove __P ((wchar_t *__s1, __const wchar_t *__s2,
|
||||
size_t __n));
|
||||
|
||||
/* Set N bytes of S to C. */
|
||||
/* Set N wide characters of S to C. */
|
||||
extern wchar_t *wmemset __P ((wchar_t *__s, wchar_t __c, size_t __n));
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user