Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Update.

1997-07-22 01:35  Ulrich Drepper  <drepper@cygnus.com>

	* Makerules (+make-deps): Use $(CFLAGS) in run of $(+mkdep) so
	that optimizing is also selected for dependency generation.

	* configure.in: Add machine description for TI c[34]x.

	* inet/Makefile (routines): Remove ntohl and ntohs.
	* inet/netinet/in.h: Use optimized version of hton? and ntoh?
	for little endian machines.
	* sysdeps/alpha/ntohl.s: Removed.
	* sysdeps/alpha/ntohs.s: Removed.
	* sysdeps/generic/ntohl.c: Removed.
	* sysdeps/generic/ntohs.c: Removed.
	* sysdeps/generic/htonl.c: Add aliases for ntohl.
	* sysdeps/vax/htonl.s: Likewise.
	* sysdeps/generic/htons.c: Add aliases for ntohs.
	* sysdeps/vax/htons.s: Likewise.
	* sysdeps/vax/ntohl.s: Removed.
	* sysdeps/vax/ntohs.s: Removed.
	* sysdeps/generic/bits/htontoh.h: New file.
	* sysdeps/i386/htonl.S: New file.
	* sysdeps/i386/htons.S: New file.
	* sysdeps/i386/i486/htonl.S: New file.

	* sysdeps/i386/fpu/bits/mathinline.h: Correct and optimized compare
	macros.

	* sysdeps/mips/dl-machine.h: Remove mips64 dependent parts.
	* sysdeps/mips/mips64/dl-machine.h: New file.

	* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Don't install
	syscall-list.h.

1997-07-12  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* libc.map: Add missing symbol _obstack.

1997-07-14 08:22  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* sysdeps/mips/rtld-parms: New.

	* sysdeps/unix/sysv/linux/mips/lxstat.h: Moved to
	* sysdeps/unix/sysv/linux/mips/lxstat.c: ...this.

	* sysdeps/unix/sysv/linux/mips/sgidef.h: Moved to
	* sysdeps/unix/sysv/linux/mips/sgidefs.h: ...this.

	* sysdeps/generic/dl-sysdep.c (_start): Change to ENTRY_POINT.

1997-07-17 08:39  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* sysdeps/mips/dl-machine.h: Remove extra stuff.

1997-07-06 07:18  Geoff Keating  <geoffk@ozemail.com.au>

	* sysdeps/powerpc/bits/endian.h: Handle multiple endianess.

	* stdlib/grouping.h: Suppress gcc warning about testing
	unsigned char for less-than-zero.
	* stdio-common/printf_fp.c: Likewise.
	* stdio-common/vfprintf.c: Likewise.

	* sysdeps/powerpc/add_n.s: New file.
	* sysdeps/powerpc/sub_n.s: New file.
	* sysdeps/powerpc/lshift.s: Ported XCOFF->ELF (from GMP).
	* sysdeps/powerpc/mul_1.s: Ported XCOFF->ELF (from GMP).
	* sysdeps/powerpc/addmul_1.s: Ported XCOFF->ELF (from GMP).
	* sysdeps/powerpc/submul_1.s: Ported XCOFF->ELF (from GMP).
	* sysdeps/powerpc/rshift.s: Ported XCOFF->ELF (from GMP).

	* math/libm-test.c (cos_test, sin_test, sincos_test): Use
	precomputed pi/6 rather than having gcc calculate it, otherwise
	tests give inaccurate result due to inaccurate input.
	* math/libm.map: Add __fe_*_env constants to list of exported
	symbols.

	* sysdeps/libm-ieee754/s_isinf.c: Simplify, make faster.
	* sysdeps/libm-ieee754/s_isinff.c: Simplify, make faster.
	* sysdeps/libm-ieee754/s_atan2f.c: Correct value of pi to be correct
	round-to-nearest value.

	* sysdeps/libm-ieee754/e_log.c: Make sure exceptions are raised.
	* sysdeps/libm-ieee754/e_log10.c: Likewise.
	* sysdeps/libm-ieee754/e_log10f.c: Likewise.
	* sysdeps/libm-ieee754/e_logf.c: Likewise.
	* sysdeps/libm-ieee754/s_log1p.c: Likewise. Also use correct -Inf.
	* sysdeps/libm-ieee754/s_log1pf.c: Likewise. Also use correct -Inf.
	* sysdeps/libm-ieee754/s_log2.c: Likewise.
	* sysdeps/libm-ieee754/s_log2f.c: Likewise.

1997-07-15 21:54  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de>

	* nis/nss_compat/compat-grp.c: Fix "buffer to small" problems
	and memory leaks.
	* nis/nss_compat/compat-pwd.c: Likewise.
	* nis/nss_compat/compat-spwd.c: Likewise.
	* nis/nss_nis/nis-alias.c: Likewise.
	* nis/nss_nis/nis-ethers.c: Likewise.
	* nis/nss_nis/nis-grp.c: Likewise.
	* nis/nss_nis/nis-hosts.c: Likewise.
	* nis/nss_nis/nis-network.c: Likewise.
	* nis/nss_nis/nis-proto.c: Likewise.
	* nis/nss_nis/nis-pwd.c: Likewise.
	* nis/nss_nis/nis-rpc.c: Likewise.
	* nis/nss_nis/nis-service.c: Likewise.
	* nis/nss_nis/nis-spwd.c: Likewise.
	* nis/nss_nisplus-alias.c: Likewise.
	* nis/nss_nisplus-ethers.c: Likewise.
	* nis/nss_nisplus-grp.c: Likewise.
	* nis/nss_nisplus-hosts.c: Likewise.
	* nis/nss_nisplus-netgrp.c: Likewise.
	* nis/nss_nisplus-network.c: Likewise.
	* nis/nss_nisplus-proto.c: Likewise.
	* nis/nss_nisplus-pwd.c: Likewise.
	* nis/nss_nisplus-rpc.c: Likewise.
	* nis/nss_nisplus-service.c: Likewise.
	* nis/nss_nisplus-spwd.c: Likewise.

	* nis/nss_nisplus-parse.c: If buffer to small, give -1 back.

1997-07-20  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/dl-machine.h (elf_machine_rela): Mention program
	name in warning message.
	* sysdeps/powerpc/dl-machine.h (elf_machine_rela): Likewise.
	* sysdeps/sparc/dl-machine.h (elf_machine_rela): Likewise.
	* sysdeps/sparc64/dl-machine.h (elf_machine_rela): Likewise.

	* sysdeps/i386/dl-machine.h (elf_machine_rel): Print program name
	first.

1997-07-20 19:33  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de>

	* libc.map: Add _null_auth and _seterr_reply.

	* sunrpc/clnt_udp.c (clntudp_call): If xargs is NULL, don't encode it.
  • Loading branch information...
commit 60c966358ed6fa6ce3ded5426f46232cbfd8e0fd 1 parent 907a1ba
Ulrich Drepper authored
Showing with 1,881 additions and 771 deletions.
  1. +138 −0 ChangeLog
  2. +1 −1  ChangeLog.6
  3. +1 −1  Makerules
  4. +52 −2 config.guess
  5. +10 −8 config.sub
  6. +56 −54 configure
  7. +2 −0  configure.in
  8. +1 −1  inet/Makefile
  9. +31 −4 inet/netinet/in.h
  10. +2 −1  libc.map
  11. +7 −5 math/libm-test.c
  12. +3 −1 math/libm.map
  13. +81 −13 nis/nss_compat/compat-grp.c
  14. +103 −20 nis/nss_compat/compat-pwd.c
  15. +91 −13 nis/nss_compat/compat-spwd.c
  16. +9 −8 nis/nss_nis/nis-alias.c
  17. +10 −19 nis/nss_nis/nis-ethers.c
  18. +15 −21 nis/nss_nis/nis-grp.c
  19. +6 −7 nis/nss_nis/nis-hosts.c
  20. +6 −6 nis/nss_nis/nis-network.c
  21. +14 −22 nis/nss_nis/nis-proto.c
  22. +10 −8 nis/nss_nis/nis-pwd.c
  23. +4 −5 nis/nss_nis/nis-rpc.c
  24. +4 −4 nis/nss_nis/nis-service.c
  25. +11 −13 nis/nss_nis/nis-spwd.c
  26. +10 −13 nis/nss_nisplus/nisplus-alias.c
  27. +51 −24 nis/nss_nisplus/nisplus-ethers.c
  28. +11 −11 nis/nss_nisplus/nisplus-grp.c
  29. +37 −42 nis/nss_nisplus/nisplus-hosts.c
  30. +1 −1  nis/nss_nisplus/nisplus-netgrp.c
  31. +24 −21 nis/nss_nisplus/nisplus-network.c
  32. +3 −3 nis/nss_nisplus/nisplus-parser.c
  33. +31 −14 nis/nss_nisplus/nisplus-proto.c
  34. +30 −12 nis/nss_nisplus/nisplus-pwd.c
  35. +29 −12 nis/nss_nisplus/nisplus-rpc.c
  36. +29 −14 nis/nss_nisplus/nisplus-service.c
  37. +25 −8 nis/nss_nisplus/nisplus-spwd.c
  38. +10 −2 stdio-common/printf_fp.c
  39. +5 −1 stdio-common/vfprintf.c
  40. +6 −2 stdlib/grouping.h
  41. +3 −0  sunrpc/clnt_udp.c
  42. +0 −2  sysdeps/alpha/ntohl.s
  43. +0 −2  sysdeps/alpha/ntohs.s
  44. +4 −13 sysdeps/generic/{ntohs.c → bits/htontoh.h}
  45. +1 −1  sysdeps/generic/dl-sysdep.c
  46. +4 −1 sysdeps/generic/htonl.c
  47. +4 −1 sysdeps/generic/htons.c
  48. +79 −0 sysdeps/i386/bits/htontoh.h
  49. +2 −3 sysdeps/i386/dl-machine.h
  50. +12 −12 sysdeps/i386/fpu/bits/mathinline.h
  51. +39 −0 sysdeps/i386/htonl.S
  52. +38 −0 sysdeps/i386/htons.S
  53. +17 −12 sysdeps/{generic/ntohl.c → i386/i486/htonl.S}
  54. +10 −10 sysdeps/libm-ieee754/e_atan2f.c
  55. +2 −2 sysdeps/libm-ieee754/e_log.c
  56. +8 −8 sysdeps/libm-ieee754/e_log10.c
  57. +4 −4 sysdeps/libm-ieee754/e_log10f.c
  58. +8 −8 sysdeps/libm-ieee754/e_logf.c
  59. +2 −3 sysdeps/libm-ieee754/s_isinf.c
  60. +1 −1  sysdeps/libm-ieee754/s_isinff.c
  61. +1 −1  sysdeps/libm-ieee754/s_log1p.c
  62. +7 −7 sysdeps/libm-ieee754/s_log1pf.c
  63. +2 −2 sysdeps/libm-ieee754/s_log2.c
  64. +2 −2 sysdeps/libm-ieee754/s_log2f.c
  65. +3 −1 sysdeps/m68k/dl-machine.h
  66. +1 −191 sysdeps/mips/dl-machine.h
  67. +594 −0 sysdeps/mips/mips64/dl-machine.h
  68. +15 −0 sysdeps/mips/rtld-parms
  69. +31 −2 sysdeps/powerpc/bits/endian.h
  70. +3 −1 sysdeps/powerpc/dl-machine.h
  71. +3 −1 sysdeps/sparc/dl-machine.h
  72. +3 −1 sysdeps/sparc64/dl-machine.h
  73. +1 −1  sysdeps/unix/sysv/linux/Makefile
  74. 0  sysdeps/unix/sysv/linux/mips/{lxstat.h → lxstat.c}
  75. 0  sysdeps/unix/sysv/linux/mips/{sgidef.h → sgidefs.h}
  76. +4 −1 sysdeps/vax/htonl.s
  77. +3 −0  sysdeps/vax/htons.s
  78. +0 −30 sysdeps/vax/ntohl.s
  79. +0 −30 sysdeps/vax/ntohs.s
138 ChangeLog
View
@@ -1,3 +1,141 @@
+1997-07-22 01:35 Ulrich Drepper <drepper@cygnus.com>
+
+ * Makerules (+make-deps): Use $(CFLAGS) in run of $(+mkdep) so
+ that optimizing is also selected for dependency generation.
+
+ * configure.in: Add machine description for TI c[34]x.
+
+ * inet/Makefile (routines): Remove ntohl and ntohs.
+ * inet/netinet/in.h: Use optimized version of hton? and ntoh?
+ for little endian machines.
+ * sysdeps/alpha/ntohl.s: Removed.
+ * sysdeps/alpha/ntohs.s: Removed.
+ * sysdeps/generic/ntohl.c: Removed.
+ * sysdeps/generic/ntohs.c: Removed.
+ * sysdeps/generic/htonl.c: Add aliases for ntohl.
+ * sysdeps/vax/htonl.s: Likewise.
+ * sysdeps/generic/htons.c: Add aliases for ntohs.
+ * sysdeps/vax/htons.s: Likewise.
+ * sysdeps/vax/ntohl.s: Removed.
+ * sysdeps/vax/ntohs.s: Removed.
+ * sysdeps/generic/bits/htontoh.h: New file.
+ * sysdeps/i386/htonl.S: New file.
+ * sysdeps/i386/htons.S: New file.
+ * sysdeps/i386/i486/htonl.S: New file.
+
+ * sysdeps/i386/fpu/bits/mathinline.h: Correct and optimized compare
+ macros.
+
+ * sysdeps/mips/dl-machine.h: Remove mips64 dependent parts.
+ * sysdeps/mips/mips64/dl-machine.h: New file.
+
+ * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Don't install
+ syscall-list.h.
+
+1997-07-12 Andreas Jaeger <aj@arthur.rhein-neckar.de>
+
+ * libc.map: Add missing symbol _obstack.
+
+1997-07-14 08:22 H.J. Lu <hjl@gnu.ai.mit.edu>
+
+ * sysdeps/mips/rtld-parms: New.
+
+ * sysdeps/unix/sysv/linux/mips/lxstat.h: Moved to
+ * sysdeps/unix/sysv/linux/mips/lxstat.c: ...this.
+
+ * sysdeps/unix/sysv/linux/mips/sgidef.h: Moved to
+ * sysdeps/unix/sysv/linux/mips/sgidefs.h: ...this.
+
+ * sysdeps/generic/dl-sysdep.c (_start): Change to ENTRY_POINT.
+
+1997-07-17 08:39 H.J. Lu <hjl@gnu.ai.mit.edu>
+
+ * sysdeps/mips/dl-machine.h: Remove extra stuff.
+
+1997-07-06 07:18 Geoff Keating <geoffk@ozemail.com.au>
+
+ * sysdeps/powerpc/bits/endian.h: Handle multiple endianess.
+
+ * stdlib/grouping.h: Suppress gcc warning about testing
+ unsigned char for less-than-zero.
+ * stdio-common/printf_fp.c: Likewise.
+ * stdio-common/vfprintf.c: Likewise.
+
+ * sysdeps/powerpc/add_n.s: New file.
+ * sysdeps/powerpc/sub_n.s: New file.
+ * sysdeps/powerpc/lshift.s: Ported XCOFF->ELF (from GMP).
+ * sysdeps/powerpc/mul_1.s: Ported XCOFF->ELF (from GMP).
+ * sysdeps/powerpc/addmul_1.s: Ported XCOFF->ELF (from GMP).
+ * sysdeps/powerpc/submul_1.s: Ported XCOFF->ELF (from GMP).
+ * sysdeps/powerpc/rshift.s: Ported XCOFF->ELF (from GMP).
+
+ * math/libm-test.c (cos_test, sin_test, sincos_test): Use
+ precomputed pi/6 rather than having gcc calculate it, otherwise
+ tests give inaccurate result due to inaccurate input.
+ * math/libm.map: Add __fe_*_env constants to list of exported
+ symbols.
+
+ * sysdeps/libm-ieee754/s_isinf.c: Simplify, make faster.
+ * sysdeps/libm-ieee754/s_isinff.c: Simplify, make faster.
+ * sysdeps/libm-ieee754/s_atan2f.c: Correct value of pi to be correct
+ round-to-nearest value.
+
+ * sysdeps/libm-ieee754/e_log.c: Make sure exceptions are raised.
+ * sysdeps/libm-ieee754/e_log10.c: Likewise.
+ * sysdeps/libm-ieee754/e_log10f.c: Likewise.
+ * sysdeps/libm-ieee754/e_logf.c: Likewise.
+ * sysdeps/libm-ieee754/s_log1p.c: Likewise. Also use correct -Inf.
+ * sysdeps/libm-ieee754/s_log1pf.c: Likewise. Also use correct -Inf.
+ * sysdeps/libm-ieee754/s_log2.c: Likewise.
+ * sysdeps/libm-ieee754/s_log2f.c: Likewise.
+
+1997-07-15 21:54 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * nis/nss_compat/compat-grp.c: Fix "buffer to small" problems
+ and memory leaks.
+ * nis/nss_compat/compat-pwd.c: Likewise.
+ * nis/nss_compat/compat-spwd.c: Likewise.
+ * nis/nss_nis/nis-alias.c: Likewise.
+ * nis/nss_nis/nis-ethers.c: Likewise.
+ * nis/nss_nis/nis-grp.c: Likewise.
+ * nis/nss_nis/nis-hosts.c: Likewise.
+ * nis/nss_nis/nis-network.c: Likewise.
+ * nis/nss_nis/nis-proto.c: Likewise.
+ * nis/nss_nis/nis-pwd.c: Likewise.
+ * nis/nss_nis/nis-rpc.c: Likewise.
+ * nis/nss_nis/nis-service.c: Likewise.
+ * nis/nss_nis/nis-spwd.c: Likewise.
+ * nis/nss_nisplus-alias.c: Likewise.
+ * nis/nss_nisplus-ethers.c: Likewise.
+ * nis/nss_nisplus-grp.c: Likewise.
+ * nis/nss_nisplus-hosts.c: Likewise.
+ * nis/nss_nisplus-netgrp.c: Likewise.
+ * nis/nss_nisplus-network.c: Likewise.
+ * nis/nss_nisplus-proto.c: Likewise.
+ * nis/nss_nisplus-pwd.c: Likewise.
+ * nis/nss_nisplus-rpc.c: Likewise.
+ * nis/nss_nisplus-service.c: Likewise.
+ * nis/nss_nisplus-spwd.c: Likewise.
+
+ * nis/nss_nisplus-parse.c: If buffer to small, give -1 back.
+
+1997-07-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
+
+ * sysdeps/m68k/dl-machine.h (elf_machine_rela): Mention program
+ name in warning message.
+ * sysdeps/powerpc/dl-machine.h (elf_machine_rela): Likewise.
+ * sysdeps/sparc/dl-machine.h (elf_machine_rela): Likewise.
+ * sysdeps/sparc64/dl-machine.h (elf_machine_rela): Likewise.
+
+ * sysdeps/i386/dl-machine.h (elf_machine_rel): Print program name
+ first.
+
+1997-07-20 19:33 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
+
+ * libc.map: Add _null_auth and _seterr_reply.
+
+ * sunrpc/clnt_udp.c (clntudp_call): If xargs is NULL, don't encode it.
+
1997-07-19 22:53 Ulrich Drepper <drepper@cygnus.com>
* time/africa: Update from tzdata1997g.
2  ChangeLog.6
View
@@ -217,7 +217,7 @@ Thu Jan 23 04:06:42 1997 Ulrich Drepper <drepper@cygnus.com>
(sysdep_headers): Add sys/kernel_termios.h.
* sysdeps/unix/sysv/linux/kernel_termios.h: Moved to...
* sysdeps/unix/sysv/linux/sys/kernel_termios.h: ...here.
- * sysdeps/unix/sysv/linux/sys/tcgetattr.c: Use __kernel_termios and
+ * sysdeps/unix/sysv/linux/tcgetattr.c: Use __kernel_termios and
__KERNEL_NCCS instead of kernel_termios and KERNEL_NCCS resp.
* sysdeps/unix/sysv/linux/alpha/ioctls.h: New file.
2  Makerules
View
@@ -313,7 +313,7 @@ S-CPPFLAGS = $(asm-CPPFLAGS)
define +make-deps
$(make-target-directory)
-@rm -f $@
-$(+mkdep) $< $(CPPFLAGS) $($(<:$*.%=%)-CPPFLAGS) | \
+$(+mkdep) $< $(CFLAGS) $(CPPFLAGS) $($(<:$*.%=%)-CPPFLAGS) | \
sed \
-e 's,$(subst .,\.,$*)\.o,$(foreach o,$(all-object-suffixes),$(@:.d=$o)) $@,' \
$(sed-remove-objpfx) > $(@:.d=.T)
54 config.guess
View
@@ -56,7 +56,32 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
- echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//'`
+ cat <<EOF >dummy.s
+ .globl main
+ .ent main
+main:
+ .frame \$30,0,\$26,0
+ .prologue 0
+ .long 0x47e03d84
+ cmoveq \$4,0,\$3
+ addl \$3,\$31,\$0
+ ret \$31,(\$26),1
+ .end main
+EOF
+ ${CC-cc} dummy.s -o dummy 2>/dev/null
+ if test "$?" = 0 ; then
+ ./dummy
+ case "$?" in
+ 1)
+ UNAME_MACHINE="alphaev5"
+ ;;
+ 2)
+ UNAME_MACHINE="alphaev56"
+ ;;
+ esac
+ fi
+ rm -f dummy.s dummy
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//'`
exit 0 ;;
21064:Windows_NT:50:3)
echo alpha-dec-winnt3.5
@@ -457,7 +482,32 @@ EOF
esac
if test "${UNAME_MACHINE}" = "alpha" ; then
- echo alpha-unknown-linux-gnu ; exit 0
+ sed 's/^ //' <<EOF >dummy.s
+ .globl main
+ .ent main
+ main:
+ .frame \$30,0,\$26,0
+ .prologue 0
+ .long 0x47e03d84
+ cmoveq \$4,0,\$3
+ addl \$3,\$31,\$0
+ ret \$31,(\$26),1
+ .end main
+EOF
+ ${CC-cc} dummy.s -o dummy 2>/dev/null
+ if test "$?" = 0 ; then
+ ./dummy
+ case "$?" in
+ 1)
+ UNAME_MACHINE="alphaev5"
+ ;;
+ 2)
+ UNAME_MACHINE="alphaev56"
+ ;;
+ esac
+ fi
+ rm -f dummy.s dummy
+ echo ${UNAME_MACHINE}-unknown-linux-gnu ; exit 0
elif test "${UNAME_MACHINE}" = "mips" ; then
cat >dummy.c <<EOF
main(argc, argv)
18 config.sub
View
@@ -152,9 +152,9 @@ case $basic_machine in
tahoe | i860 | m68k | m68000 | m88k | ns32k | arm \
| arme[lb] | pyramid | mn10200 | mn10300 \
| tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \
- | alpha | we32k | ns16k | clipper | i370 | sh \
- | powerpc | powerpcle | 1750a | dsp16xx | mips64 | mipsel \
- | pdp11 | mips64el | mips64orion | mips64orionel \
+ | alpha | alphaev5 | alphaev56 | we32k | ns16k | clipper \
+ | i370 | sh | powerpc | powerpcle | 1750a | dsp16xx | pdp11 \
+ | mips64 | mipsel | mips64el | mips64orion | mips64orionel \
| sparc | sparclet | sparclite | sparc64)
basic_machine=$basic_machine-unknown
;;
@@ -172,11 +172,13 @@ case $basic_machine in
# Recognize the basic CPU types with company name.
vax-* | tahoe-* | i[3456]86-* | i860-* | m68k-* | m68000-* | m88k-* \
| sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \
- | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \
- | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \
- | hppa-* | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \
- | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \
- | pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \
+ | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
+ | power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \
+ | xmp-* | ymp-* | hppa-* | hppa1.0-* | hppa1.1-* \
+ | alpha-* | alphaev5-* | alphaev56-* | we32k-* | cydra-* \
+ | ns16k-* | pn-* | np1-* | xps100-* | clipper-* | orion-* \
+ | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
+ | sparc64-* | mips64-* | mipsel-* \
| mips64el-* | mips64orion-* | mips64orionel-* | f301-*)
;;
# Recognize the various machine names and aliases which stand
110 configure
View
@@ -816,6 +816,8 @@ case "$machine" in
a29k | am29000) base_machine=a29k machine=a29k ;;
alpha*) base_machine=alpha machine=alpha/$machine ;;
arm*) base_machine=arm machine=arm/$machine ;;
+c3[012]) base_machine=cx0 machine=cx0/c30 ;;
+c4[04]) base_machine=cx0 machine=cx0/c40 ;;
hppa*) base_machine=hppa machine=hppa/$machine ;;
i[3456]86) base_machine=i386 machine=i386/$machine ;;
m680?0) base_machine=m68k machine=m68k/$machine ;;
@@ -834,7 +836,7 @@ esac
# This can take a while to compute.
sysdep_dir=$srcdir/sysdeps
echo $ac_n "checking sysdep dirs""... $ac_c" 1>&6
-echo "configure:838: checking sysdep dirs" >&5
+echo "configure:840: 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'`"
@@ -1035,7 +1037,7 @@ echo "$ac_t""sysdeps/generic sysdeps/stub" 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:1039: checking for a BSD compatible install" >&5
+echo "configure:1041: 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
@@ -1089,7 +1091,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:1093: checking whether ln -s works" >&5
+echo "configure:1095: 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
@@ -1114,7 +1116,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:1118: checking for $ac_word" >&5
+echo "configure:1120: 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
@@ -1147,7 +1149,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:1151: checking for $ac_word" >&5
+echo "configure:1153: 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
@@ -1176,7 +1178,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:1180: checking for $ac_word" >&5
+echo "configure:1182: 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
@@ -1224,7 +1226,7 @@ fi
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1228: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1230: 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.
@@ -1234,11 +1236,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 1238 "configure"
+#line 1240 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:1242: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1244: \"$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
@@ -1261,13 +1263,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:1265: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1267: 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:1271: checking whether we are using GNU C" >&5
+echo "configure:1273: 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
@@ -1276,7 +1278,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1280: \"$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:1282: \"$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
@@ -1293,7 +1295,7 @@ if test $ac_cv_prog_gcc = yes; then
yes;
#endif
EOF
- if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1297: \"$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:1299: \"$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
@@ -1305,7 +1307,7 @@ else
fi
echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:1309: checking build system type" >&5
+echo "configure:1311: checking build system type" >&5
build_alias=$build
case "$build_alias" in
@@ -1328,7 +1330,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:1332: checking for $ac_word" >&5
+echo "configure:1334: 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
@@ -1359,7 +1361,7 @@ done
fi
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1363: checking how to run the C preprocessor" >&5
+echo "configure:1365: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -1374,13 +1376,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 1378 "configure"
+#line 1380 "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:1384: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1386: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
:
@@ -1391,13 +1393,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 1395 "configure"
+#line 1397 "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:1401: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1403: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
:
@@ -1428,7 +1430,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:1432: checking for $ac_word" >&5
+echo "configure:1434: 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
@@ -1459,7 +1461,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:1463: checking for $ac_word" >&5
+echo "configure:1465: 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
@@ -1490,7 +1492,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:1494: checking for $ac_word" >&5
+echo "configure:1496: 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
@@ -1525,7 +1527,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:1529: checking for $ac_word" >&5
+echo "configure:1531: 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
@@ -1566,7 +1568,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:1570: checking for $ac_word" >&5
+echo "configure:1572: 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
@@ -1608,7 +1610,7 @@ fi
echo $ac_n "checking for signed size_t type""... $ac_c" 1>&6
-echo "configure:1612: checking for signed size_t type" >&5
+echo "configure:1614: 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
@@ -1632,12 +1634,12 @@ EOF
fi
echo $ac_n "checking for libc-friendly stddef.h""... $ac_c" 1>&6
-echo "configure:1636: checking for libc-friendly stddef.h" >&5
+echo "configure:1638: 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 1641 "configure"
+#line 1643 "configure"
#include "confdefs.h"
#define __need_size_t
#define __need_wchar_t
@@ -1652,7 +1654,7 @@ size_t size; wchar_t wchar;
if (&size == NULL || &wchar == NULL) abort ();
; return 0; }
EOF
-if { (eval echo configure:1656: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1658: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libc_cv_friendly_stddef=yes
else
@@ -1671,7 +1673,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:1675: checking whether we need to use -P to assemble .S files" >&5
+echo "configure:1677: 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
@@ -1694,7 +1696,7 @@ asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
fi
echo $ac_n "checking for assembler global-symbol directive""... $ac_c" 1>&6
-echo "configure:1698: checking for assembler global-symbol directive" >&5
+echo "configure:1700: 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
@@ -1724,7 +1726,7 @@ EOF
fi
echo $ac_n "checking for .set assembler directive""... $ac_c" 1>&6
-echo "configure:1728: checking for .set assembler directive" >&5
+echo "configure:1730: 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
@@ -1758,7 +1760,7 @@ EOF
fi
echo $ac_n "checking for .symver assembler directive""... $ac_c" 1>&6
-echo "configure:1762: checking for .symver assembler directive" >&5
+echo "configure:1764: 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
@@ -1777,7 +1779,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:1781: checking for ld --version-script" >&5
+echo "configure:1783: 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
@@ -1796,7 +1798,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:1800: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
+ 1>&5'; { (eval echo configure:1802: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; };
then
libc_cv_ld_version_script_option=yes
else
@@ -1826,7 +1828,7 @@ fi
if test $elf = yes; then
echo $ac_n "checking for .previous assembler directive""... $ac_c" 1>&6
-echo "configure:1830: checking for .previous assembler directive" >&5
+echo "configure:1832: 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
@@ -1834,7 +1836,7 @@ else
.section foo_section
.previous
EOF
- if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:1838: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+ if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:1840: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_asm_previous_directive=yes
else
libc_cv_asm_previous_directive=no
@@ -1850,7 +1852,7 @@ EOF
else
echo $ac_n "checking for .popsection assembler directive""... $ac_c" 1>&6
-echo "configure:1854: checking for .popsection assembler directive" >&5
+echo "configure:1856: 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
@@ -1858,7 +1860,7 @@ else
.pushsection foo_section
.popsection
EOF
- if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:1862: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+ if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:1864: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_asm_popsection_directive=yes
else
libc_cv_asm_popsection_directive=no
@@ -1878,12 +1880,12 @@ fi
if test $elf != yes; then
echo $ac_n "checking for .init and .fini sections""... $ac_c" 1>&6
-echo "configure:1882: checking for .init and .fini sections" >&5
+echo "configure:1884: 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 1887 "configure"
+#line 1889 "configure"
#include "confdefs.h"
int main() {
@@ -1892,7 +1894,7 @@ asm (".section .init");
asm (".text");
; return 0; }
EOF
-if { (eval echo configure:1896: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1898: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libc_cv_have_initfini=yes
else
@@ -1917,19 +1919,19 @@ if test $elf = yes; then
libc_cv_asm_underscores=no
else
echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6
-echo "configure:1921: checking for _ prefix on C symbol names" >&5
+echo "configure:1923: 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 1926 "configure"
+#line 1928 "configure"
#include "confdefs.h"
asm ("_glibc_foobar:");
int main() {
glibc_foobar ();
; return 0; }
EOF
-if { (eval echo configure:1933: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1935: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
libc_cv_asm_underscores=yes
else
@@ -1956,7 +1958,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:1960: checking for assembler .weak directive" >&5
+echo "configure:1962: 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
@@ -1979,7 +1981,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:1983: checking for assembler .weakext directive" >&5
+echo "configure:1985: 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
@@ -2016,7 +2018,7 @@ EOF
fi
echo $ac_n "checking for ld --no-whole-archive""... $ac_c" 1>&6
-echo "configure:2020: checking for ld --no-whole-archive" >&5
+echo "configure:2022: 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
@@ -2027,7 +2029,7 @@ __throw () {}
EOF
if { ac_try='${CC-cc} $CFLAGS
-nostdlib -nostartfiles -Wl,--no-whole-archive
- -o conftest conftest.c 1>&5'; { (eval echo configure:2031: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+ -o conftest conftest.c 1>&5'; { (eval echo configure:2033: \"$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
@@ -2038,7 +2040,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:2042: checking for gcc -fno-exceptions" >&5
+echo "configure:2044: 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
@@ -2049,7 +2051,7 @@ __throw () {}
EOF
if { ac_try='${CC-cc} $CFLAGS
-nostdlib -nostartfiles -fno-exceptions
- -o conftest conftest.c 1>&5'; { (eval echo configure:2053: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
+ -o conftest conftest.c 1>&5'; { (eval echo configure:2055: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_gcc_no_exceptions=yes
else
libc_cv_gcc_no_exceptions=no
@@ -2101,7 +2103,7 @@ if test "$uname" = "sysdeps/generic"; then
fi
echo $ac_n "checking OS release for uname""... $ac_c" 1>&6
-echo "configure:2105: checking OS release for uname" >&5
+echo "configure:2107: 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
@@ -2123,7 +2125,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:2127: checking OS version for uname" >&5
+echo "configure:2129: 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
@@ -2145,7 +2147,7 @@ else
fi
echo $ac_n "checking stdio selection""... $ac_c" 1>&6
-echo "configure:2149: checking stdio selection" >&5
+echo "configure:2151: checking stdio selection" >&5
case $stdio in
libio) cat >> confdefs.h <<\EOF
2  configure.in
View
@@ -149,6 +149,8 @@ case "$machine" in
a29k | am29000) base_machine=a29k machine=a29k ;;
alpha*) base_machine=alpha machine=alpha/$machine ;;
arm*) base_machine=arm machine=arm/$machine ;;
+c3[012]) base_machine=cx0 machine=cx0/c30 ;;
+c4[04]) base_machine=cx0 machine=cx0/c40 ;;
hppa*) base_machine=hppa machine=hppa/$machine ;;
i[3456]86) base_machine=i386 machine=i386/$machine ;;
m680?0) base_machine=m68k machine=m68k/$machine ;;
2  inet/Makefile
View
@@ -27,7 +27,7 @@ headers := netinet/ether.h netinet/in.h netinet/if_ether.h \
distribute := netgroup.h
-routines := ntohl ntohs htonl htons \
+routines := htonl htons \
inet_lnaof inet_mkadr \
inet_netof inet_ntoa inet_net herrno \
gethstbyad gethstbyad_r gethstbynm gethstbynm2 gethstbynm2_r \
35 inet/netinet/in.h
View
@@ -210,9 +210,13 @@ struct ipv6_mreq
this was a short-sighted decision since on different systems the types
may have different representations but the values are always the same. */
+extern u_int32_t __ntohl __P ((u_int32_t __netlong));
extern u_int32_t ntohl __P ((u_int32_t __netlong));
+extern u_int16_t __ntohs __P ((u_int16_t __netshort));
extern u_int16_t ntohs __P ((u_int16_t __netshort));
+extern u_int32_t __htonl __P ((u_int32_t __hostlong));
extern u_int32_t htonl __P ((u_int32_t __hostlong));
+extern u_int16_t __htons __P ((u_int16_t __hostshort));
extern u_int16_t htons __P ((u_int16_t __hostshort));
#include <endian.h>
@@ -220,10 +224,33 @@ extern u_int16_t htons __P ((u_int16_t __hostshort));
#if __BYTE_ORDER == __BIG_ENDIAN
/* The host byte order is the same as network byte order,
so these functions are all just identity. */
-#define ntohl(x) (x)
-#define ntohs(x) (x)
-#define htonl(x) (x)
-#define htons(x) (x)
+# define ntohl(x) (x)
+# define ntohs(x) (x)
+# define htonl(x) (x)
+# define htons(x) (x)
+#else
+# if __BYTE_ORDER == __LITTLE_ENDIAN && defined __OPTIMIZE__
+# define ntohl(x) (__builtin_constant_p (x) \
+ ? __constant_htontohl (x) : __ntohl (x))
+# define ntohs(x) (__builtin_constant_p (x) \
+ ? __constant_htontohs (x) : __ntohs (x))
+# define htonl(x) (__builtin_constant_p (x) \
+ ? __constant_htontohl (x) : __htonl (x))
+# define htons(x) (__builtin_constant_p (x) \
+ ? __constant_htontohl (x) : __htonl (x))
+
+# define __constant_htontohl(x) \
+ ((((x) & 0xff000000) >> 24) | \
+ (((x) & 0x00ff0000) >> 8) | \
+ (((x) & 0x0000ff00) << 8) | \
+ (((x) & 0x000000ff) << 24))
+# define __constant_htontohs(x) \
+ ((((x) & 0x0000ff00) >> 8) | \
+ (((x) & 0x000000ff) << 8))
+
+/* Now get machine dependent optimized versions for the real work. */
+# include <bits/htontoh.h>
+# endif
#endif
#define IN6_IS_ADDR_UNSPECIFIED(a) \
3  libc.map
View
@@ -11,6 +11,7 @@ GLIBC_2.0 {
_nl_current_LC_COLLATE; __collate_element_hash;
__collate_element_strings; __collate_symbol_classes;
__collate_symbol_hash; __collate_symbol_strings;
+ _obstack;
# helper functions
__errno_location; __libc_init_first; __h_errno_location;
@@ -81,7 +82,7 @@ GLIBC_2.0 {
_IO_str_underflow; _IO_str_init_static; _IO_str_init_readonly;
_IO_str_seekoff; _IO_str_pbackfail; _IO_list_all; _IO_file_jumps;
_IO_peekc_locked;
- _rpc_dtablesize;
+ _rpc_dtablesize; _null_auth; _seterr_reply;
# all functions and variables in the normal name space
a*; b*; c*; d*; e*; f*; g*; h*; i*; j*; k*; l*; m*;
12 math/libm-test.c
View
@@ -134,6 +134,8 @@
#define PRINT 1
#define NO_PRINT 0
+/* Various constants (we must supply them precalculated for accuracy). */
+#define M_PI_6 .52359877559829887308L
static int noErrors;
@@ -1058,7 +1060,7 @@ cos_test (void)
FUNC(cos) (minus_infty),
INVALID_EXCEPTION);
- check_eps ("cos (pi/3) == 0.5", FUNC(cos) (M_PI / 3.0),
+ check_eps ("cos (pi/3) == 0.5", FUNC(cos) (M_PI_6 * 2.0),
0.5, CHOOSE (4e-18L, 1e-15L, 1e-7L));
check_eps ("cos (pi/2) == 0", FUNC(cos) (M_PI_2),
0, CHOOSE (1e-19L, 1e-16L, 1e-7L));
@@ -1711,8 +1713,8 @@ sin_test (void)
FUNC(sin) (minus_infty),
INVALID_EXCEPTION);
- check_eps ("sin (pi/6) == 0.5", FUNC(sin) (M_PI / 6.0), 0.5,
- CHOOSE (4e-18L, 0, 0));
+ check_eps ("sin (pi/6) == 0.5", FUNC(sin) (M_PI_6),
+ 0.5,CHOOSE (4e-18L, 0, 0));
check ("sin (pi/2) == 1", FUNC(sin) (M_PI_2), 1);
}
@@ -1772,11 +1774,11 @@ sincos_test (void)
check_eps ("sincos (pi/2, &sin, &cos) puts 0 in cos", cos_res, 0,
CHOOSE (1e-18L, 1e-16, 1e-7));
- FUNC(sincos) (M_PI / 6.0, &sin_res, &cos_res);
+ FUNC(sincos) (M_PI_6, &sin_res, &cos_res);
check_eps ("sincos (pi/6, &sin, &cos) puts 0.5 in sin", sin_res, 0.5,
CHOOSE (5e-18L, 0, 0));
- FUNC(sincos) (M_PI / 3.0, &sin_res, &cos_res);
+ FUNC(sincos) (M_PI_6*2.0, &sin_res, &cos_res);
check_eps ("sincos (pi/3, &sin, &cos) puts 0.5 in cos", cos_res, 0.5,
CHOOSE (5e-18L, 1e-15, 1e-7));
4 math/libm.map
View
@@ -98,7 +98,6 @@ GLIBC_2.0 {
fesetenv; fesetexceptflag; fesetround;
fetestexcept; feupdateenv;
-
# global variables
_LIB_VERSION; signgam;
@@ -109,6 +108,9 @@ GLIBC_2.0 {
__log1p;
+ # symbols used in macros from sysdeps/powerpc/bits/fenv.h
+ __fe_dfl_env; __fe_enabled_env; __fe_nonieee_env; __fe_nomask_env;
+
local:
*;
};
94 nis/nss_compat/compat-grp.c
View
@@ -218,6 +218,10 @@ getgrent_next_nis (struct group *result, ent_t *ent, char *buffer,
do
{
+ char *save_oldkey;
+ int save_oldlen;
+ bool_t save_nis_first;
+
if (ent->nis_first)
{
if (yp_first (domain, "group.byname", &outkey, &outkeylen,
@@ -226,7 +230,9 @@ getgrent_next_nis (struct group *result, ent_t *ent, char *buffer,
ent->nis = 0;
return NSS_STATUS_UNAVAIL;
}
-
+ save_oldkey = ent->oldkey;
+ save_oldlen = ent->oldkeylen;
+ save_nis_first = TRUE;
ent->oldkey = outkey;
ent->oldkeylen = outkeylen;
ent->nis_first = FALSE;
@@ -241,7 +247,9 @@ getgrent_next_nis (struct group *result, ent_t *ent, char *buffer,
return NSS_STATUS_NOTFOUND;
}
- free (ent->oldkey);
+ save_oldkey = ent->oldkey;
+ save_oldlen = ent->oldkeylen;
+ save_nis_first = FALSE;
ent->oldkey = outkey;
ent->oldkeylen = outkeylen;
}
@@ -255,8 +263,21 @@ getgrent_next_nis (struct group *result, ent_t *ent, char *buffer,
while (isspace (*p))
++p;
- parse_res = _nss_files_parse_grent (p, result, data, buflen);
-
+ if ((parse_res = _nss_files_parse_grent (p, result, data, buflen)) == -1)
+ {
+ free (ent->oldkey);
+ ent->oldkey = save_oldkey;
+ ent->oldkeylen = save_oldlen;
+ ent->nis_first = save_nis_first;
+ __set_errno (ERANGE);
+ return NSS_STATUS_TRYAGAIN;
+ }
+ else
+ {
+ if (!save_nis_first)
+ free (save_oldkey);
+ }
+
if (parse_res &&
in_blacklist (result->gr_name, strlen (result->gr_name), ent))
parse_res = 0; /* if result->gr_name in blacklist,search next entry */
@@ -274,8 +295,13 @@ getgrent_next_nisplus (struct group *result, ent_t *ent, char *buffer,
do
{
+ nis_result *save_oldres;
+ bool_t save_nis_first;
+
if (ent->nis_first)
{
+ save_oldres = ent->result;
+ save_nis_first = TRUE;
ent->result = nis_first_entry(grptable);
if (niserr2nss (ent->result->status) != NSS_STATUS_SUCCESS)
{
@@ -288,8 +314,9 @@ getgrent_next_nisplus (struct group *result, ent_t *ent, char *buffer,
{
nis_result *res;
+ save_oldres = ent->result;
+ save_nis_first = FALSE;
res = nis_next_entry(grptable, &ent->result->cookie);
- nis_freeresult (ent->result);
ent->result = res;
if (niserr2nss (ent->result->status) != NSS_STATUS_SUCCESS)
{
@@ -297,8 +324,21 @@ getgrent_next_nisplus (struct group *result, ent_t *ent, char *buffer,
return niserr2nss (ent->result->status);
}
}
- parse_res = _nss_nisplus_parse_grent (ent->result, 0, result, buffer,
- buflen);
+ if ((parse_res = _nss_nisplus_parse_grent (ent->result, 0, result,
+ buffer, buflen)) == -1)
+ {
+ nis_freeresult (ent->result);
+ ent->result = save_oldres;
+ ent->nis_first = save_nis_first;
+ __set_errno (ERANGE);
+ return NSS_STATUS_TRYAGAIN;
+ }
+ else
+ {
+ if (!save_nis_first)
+ nis_freeresult (save_oldres);
+ }
+
if (parse_res &&
in_blacklist (result->gr_name, strlen (result->gr_name), ent))
parse_res = 0; /* if result->gr_name in blacklist,search next entry */
@@ -330,7 +370,13 @@ getgrent_next_file_plusgroup (struct group *result, char *buffer,
nis_freeresult (res);
return status;
}
- parse_res = _nss_nisplus_parse_grent (res, 0, result, buffer, buflen);
+ if ((parse_res = _nss_nisplus_parse_grent (res, 0, result, buffer,
+ buflen)) == -1)
+ {
+ __set_errno (ERANGE);
+ nis_freeresult (res);
+ return NSS_STATUS_TRYAGAIN;
+ }
nis_freeresult (res);
}
else /* Use NIS */
@@ -350,7 +396,11 @@ getgrent_next_file_plusgroup (struct group *result, char *buffer,
free (outval);
while (isspace (*p))
p++;
- parse_res = _nss_files_parse_grent (p, result, data, buflen);
+ if ((parse_res = _nss_files_parse_grent (p, result, data, buflen)) == -1)
+ {
+ __set_errno (ERANGE);
+ return NSS_STATUS_TRYAGAIN;
+ }
}
if (parse_res)
@@ -368,13 +418,24 @@ getgrent_next_file (struct group *result, ent_t *ent,
struct parser_data *data = (void *) buffer;
while (1)
{
+ fpos_t pos;
+ int parse_res = 0;
char *p;
do
{
+ fgetpos (ent->stream, &pos);
p = fgets (buffer, buflen, ent->stream);
if (p == NULL)
- return NSS_STATUS_NOTFOUND;
+ {
+ if (feof (ent->stream))
+ return NSS_STATUS_NOTFOUND;
+ else
+ {
+ __set_errno (ERANGE);
+ return NSS_STATUS_TRYAGAIN;
+ }
+ }
/* Terminate the line for any case. */
buffer[buflen - 1] = '\0';
@@ -383,11 +444,18 @@ getgrent_next_file (struct group *result, ent_t *ent,
while (isspace (*p))
++p;
}
- /* Ignore empty and comment lines. */
- while (*p == '\0' || *p == '#' ||
+ while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- !_nss_files_parse_grent (p, result, data, buflen));
+ !(parse_res = _nss_files_parse_grent (p, result, data, buflen)));
+
+ if (parse_res == -1)
+ {
+ /* The parser ran out of space. */
+ fsetpos (ent->stream, &pos);
+ __set_errno (ERANGE);
+ return NSS_STATUS_TRYAGAIN;
+ }
if (result->gr_name[0] != '+' && result->gr_name[0] != '-')
/* This is a real entry. */
123 nis/nss_compat/compat-pwd.c
View
@@ -272,6 +272,9 @@ internal_endpwent (ent_t *ent)
ent->stream = NULL;
}
+ if (ent->netgroup)
+ __internal_endnetgrent (&ent->netgrdata);
+
ent->nis = ent->first = ent->netgroup = 0;
if (ent->oldkey != NULL)
@@ -303,9 +306,6 @@ _nss_compat_endpwent (void)
__libc_lock_lock (lock);
- if (ext_ent.netgroup)
- __internal_endnetgrent (&ext_ent.netgrdata);
-
result = internal_endpwent (&ext_ent);
__libc_lock_unlock (lock);
@@ -339,6 +339,10 @@ getpwent_next_nis_netgr (struct passwd *result, ent_t *ent, char *group,
while (1)
{
+ char *saved_cursor;
+ int parse_res;
+
+ saved_cursor = ent->netgrdata.cursor;
status = __internal_getnetgrent_r (&host, &user, &domain,
&ent->netgrdata, buffer, buflen);
if (status != 1)
@@ -372,7 +376,13 @@ getpwent_next_nis_netgr (struct passwd *result, ent_t *ent, char *group,
while (isspace (*p))
p++;
free (outval);
- if (_nss_files_parse_pwent (p, result, data, buflen))
+ if ((parse_res = _nss_files_parse_pwent (p, result, data, buflen)) == -1)
+ {
+ ent->netgrdata.cursor = saved_cursor;
+ return NSS_STATUS_TRYAGAIN;
+ }
+
+ if (parse_res)
{
copy_pwd_changes (result, &ent->pwd, p2, p2len);
break;
@@ -410,6 +420,9 @@ getpwent_next_nisplus_netgr (struct passwd *result, ent_t *ent, char *group,
while (1)
{
+ char *saved_cursor;
+
+ saved_cursor = ent->netgrdata.cursor;
status = __internal_getnetgrent_r (&host, &user, &domain,
&ent->netgrdata, buffer, buflen);
if (status != 1)
@@ -419,13 +432,13 @@ getpwent_next_nisplus_netgr (struct passwd *result, ent_t *ent, char *group,
give_pwd_free (&ent->pwd);
return NSS_STATUS_RETURN;
}
-
+
if (user == NULL || user[0] == '-')
continue;
-
+
if (domain != NULL && strcmp (ypdomain, domain) != 0)
continue;
-
+
p2len = pwd_need_buflen (&ent->pwd);
if (p2len > buflen)
{
@@ -444,7 +457,13 @@ getpwent_next_nisplus_netgr (struct passwd *result, ent_t *ent, char *group,
nis_freeresult (nisres);
continue;
}
- parse_res = _nss_nisplus_parse_pwent (nisres, result, buffer, buflen);
+ if ((parse_res = _nss_nisplus_parse_pwent (nisres, result, buffer,
+ buflen)) == -1)
+ {
+ nis_freeresult (nisres);
+ ent->netgrdata.cursor = saved_cursor;
+ return NSS_STATUS_TRYAGAIN;
+ }
nis_freeresult (nisres);
if (parse_res)
@@ -485,8 +504,14 @@ getpwent_next_nisplus (struct passwd *result, ent_t *ent, char *buffer,
buflen -= p2len;
do
{
+ bool_t saved_first;
+ nis_result *saved_res;
+
if (ent->first)
{
+ saved_first = TRUE;
+ saved_res = ent->result;
+
ent->result = nis_first_entry(pwdtable);
if (niserr2nss (ent->result->status) != NSS_STATUS_SUCCESS)
{
@@ -501,17 +526,32 @@ getpwent_next_nisplus (struct passwd *result, ent_t *ent, char *buffer,
nis_result *res;
res = nis_next_entry(pwdtable, &ent->result->cookie);
- nis_freeresult (ent->result);
+ saved_res = ent->result;
+ saved_first = FALSE;
ent->result = res;
if (niserr2nss (ent->result->status) != NSS_STATUS_SUCCESS)
{
ent->nis = 0;
+ nis_freeresult (saved_res);
give_pwd_free (&ent->pwd);
return niserr2nss (ent->result->status);
}
}
- parse_res = _nss_nisplus_parse_pwent (ent->result, result, buffer,
- buflen);
+ if ((parse_res = _nss_nisplus_parse_pwent (ent->result, result, buffer,
+ buflen)) == -1)
+ {
+ nis_freeresult (ent->result);
+ ent->result = saved_res;
+ ent->first = saved_first;
+ __set_errno (ERANGE);
+ return NSS_STATUS_TRYAGAIN;
+ }
+ else
+ {
+ if (!saved_first)
+ nis_freeresult (saved_res);
+ }
+
if (parse_res &&
in_blacklist (result->pw_name, strlen (result->pw_name), ent))
parse_res = 0; /* if result->pw_name in blacklist,search next entry */
@@ -549,6 +589,10 @@ getpwent_next_nis (struct passwd *result, ent_t *ent, char *buffer,
buflen -= p2len;
do
{
+ bool_t saved_first;
+ char *saved_oldkey;
+ int saved_oldlen;
+
if (ent->first)
{
if (yp_first (domain, "passwd.byname", &outkey, &outkeylen,
@@ -558,7 +602,10 @@ getpwent_next_nis (struct passwd *result, ent_t *ent, char *buffer,
give_pwd_free (&ent->pwd);
return NSS_STATUS_UNAVAIL;
}
-
+
+ saved_first = TRUE;
+ saved_oldkey = ent->oldkey;
+ saved_oldlen = ent->oldkeylen;
ent->oldkey = outkey;
ent->oldkeylen = outkeylen;
ent->first = FALSE;
@@ -574,7 +621,9 @@ getpwent_next_nis (struct passwd *result, ent_t *ent, char *buffer,
return NSS_STATUS_NOTFOUND;
}
- free (ent->oldkey);
+ saved_first = FALSE;
+ saved_oldkey = ent->oldkey;
+ saved_oldlen = ent->oldkeylen;
ent->oldkey = outkey;
ent->oldkeylen = outkeylen;
}
@@ -587,7 +636,20 @@ getpwent_next_nis (struct passwd *result, ent_t *ent, char *buffer,
while (isspace (*p))
++p;
- parse_res = _nss_files_parse_pwent (p, result, data, buflen);
+ if ((parse_res = _nss_files_parse_pwent (p, result, data, buflen)) == -1)
+ {
+ free (ent->oldkey);
+ ent->oldkey = saved_oldkey;
+ ent->oldkeylen = saved_oldlen;
+ ent->first = saved_first;
+ __set_errno (ERANGE);
+ return NSS_STATUS_TRYAGAIN;
+ }
+ else
+ {
+ if (!saved_first)
+ free (saved_oldkey);
+ }
if (parse_res &&
in_blacklist (result->pw_name, strlen (result->pw_name), ent))
parse_res = 0;
@@ -637,7 +699,13 @@ getpwent_next_file_plususer (struct passwd *result, char *buffer,
nis_freeresult (res);
return status;
}
- parse_res = _nss_nisplus_parse_pwent (res, result, buffer, buflen);
+ if ((parse_res = _nss_nisplus_parse_pwent (res, result, buffer,
+ buflen)) == -1)
+ {
+ nis_freeresult (res);
+ __set_errno (ERANGE);
+ return NSS_STATUS_TRYAGAIN;
+ }
nis_freeresult (res);
}
else /* Use NIS */
@@ -645,10 +713,10 @@ getpwent_next_file_plususer (struct passwd *result, char *buffer,
char *domain;
char *outval;
int outvallen;
-
+
if (yp_get_default_domain (&domain) != YPERR_SUCCESS)
return NSS_STATUS_TRYAGAIN;
-
+
if (yp_match (domain, "passwd.byname", &result->pw_name[1],
strlen (result->pw_name) - 1, &outval, &outvallen)
!= YPERR_SUCCESS)
@@ -658,10 +726,14 @@ getpwent_next_file_plususer (struct passwd *result, char *buffer,
free (outval);
while (isspace (*p))
p++;
- parse_res = _nss_files_parse_pwent (p, result, data, buflen);
+ if ((parse_res = _nss_files_parse_pwent (p, result, data, buflen)) == -1)
+ {
+ __set_errno (ERANGE);
+ return NSS_STATUS_TRYAGAIN;
+ }
}
- if (parse_res)
+ if (parse_res > 0)
{
copy_pwd_changes (result, &pwd, p, plen);
give_pwd_free (&pwd);
@@ -684,10 +756,13 @@ getpwent_next_file (struct passwd *result, ent_t *ent,
struct parser_data *data = (void *) buffer;
while (1)
{
+ fpos_t pos;
char *p;
+ int parse_res;
do
{
+ fgetpos (ent->stream, &pos);
p = fgets (buffer, buflen, ent->stream);
if (p == NULL)
return NSS_STATUS_NOTFOUND;
@@ -702,7 +777,15 @@ getpwent_next_file (struct passwd *result, ent_t *ent,
while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- !_nss_files_parse_pwent (p, result, data, buflen));
+ !(parse_res = _nss_files_parse_pwent (p, result, data, buflen)));
+
+ if (parse_res == -1)
+ {
+ /* The parser ran out of space. */
+ fsetpos (ent->stream, &pos);
+ __set_errno (ERANGE);
+ return NSS_STATUS_TRYAGAIN;
+ }
if (result->pw_name[0] != '+' && result->pw_name[0] != '-')
/* This is a real entry. */
104 nis/nss_compat/compat-spwd.c
View
@@ -292,6 +292,10 @@ getspent_next_nis_netgr (struct spwd *result, ent_t *ent, char *group,
while (1)
{
+ char *saved_cursor;
+ int parse_res;
+
+ saved_cursor = ent->netgrdata.cursor;
status = __internal_getnetgrent_r (&host, &user, &domain,
&ent->netgrdata, buffer, buflen);
if (status != 1)
@@ -301,10 +305,10 @@ getspent_next_nis_netgr (struct spwd *result, ent_t *ent, char *group,
give_spwd_free (&ent->pwd);
return NSS_STATUS_RETURN;
}
-
+
if (user == NULL || user[0] == '-')
continue;
-
+
if (domain != NULL && strcmp (ypdomain, domain) != 0)
continue;
@@ -325,7 +329,13 @@ getspent_next_nis_netgr (struct spwd *result, ent_t *ent, char *group,
while (isspace (*p))
p++;
free (outval);
- if (_nss_files_parse_spent (p, result, data, buflen))
+ if ((parse_res = _nss_files_parse_spent (p, result, data, buflen)) == -1)
+ {
+ ent->netgrdata.cursor = saved_cursor;
+ return NSS_STATUS_TRYAGAIN;
+ }
+
+ if (parse_res)
{
copy_spwd_changes (result, &ent->pwd, p2, p2len);
break;
@@ -363,6 +373,9 @@ getspent_next_nisplus_netgr (struct spwd *result, ent_t *ent, char *group,
while (1)
{
+ char *saved_cursor;
+
+ saved_cursor = ent->netgrdata.cursor;
status = __internal_getnetgrent_r (&host, &user, &domain,
&ent->netgrdata, buffer, buflen);
if (status != 1)
@@ -397,7 +410,12 @@ getspent_next_nisplus_netgr (struct spwd *result, ent_t *ent, char *group,
nis_freeresult (nisres);
continue;
}
- parse_res = _nss_nisplus_parse_spent (nisres, result, buffer, buflen);
+ if ((parse_res = _nss_nisplus_parse_spent (nisres, result, buffer,
+ buflen)) == -1)
+ {
+ nis_freeresult (nisres);
+ return NSS_STATUS_TRYAGAIN;
+ }
nis_freeresult (nisres);
if (parse_res)
@@ -438,8 +456,14 @@ getspent_next_nisplus (struct spwd *result, ent_t *ent, char *buffer,
buflen -= p2len;
do
{
+ bool_t saved_first;
+ nis_result *saved_res;
+
if (ent->first)
{
+ saved_first = TRUE;
+ saved_res = ent->result;
+
ent->result = nis_first_entry(pwdtable);
if (niserr2nss (ent->result->status) != NSS_STATUS_SUCCESS)
{
@@ -453,18 +477,33 @@ getspent_next_nisplus (struct spwd *result, ent_t *ent, char *buffer,
{
nis_result *res;
+ saved_first = FALSE;
+ saved_res = ent->result;
+
res = nis_next_entry(pwdtable, &ent->result->cookie);
- nis_freeresult (ent->result);
ent->result = res;
if (niserr2nss (ent->result->status) != NSS_STATUS_SUCCESS)
{
+ nis_freeresult (saved_res);
ent->nis = 0;
give_spwd_free (&ent->pwd);
return niserr2nss (ent->result->status);
}
}
- parse_res = _nss_nisplus_parse_spent (ent->result, result, buffer,
- buflen);
+ if ((parse_res = _nss_nisplus_parse_spent (ent->result, result, buffer,
+ buflen)) == -1)
+ {
+ ent->first = saved_first;
+ nis_freeresult (ent->result);
+ ent->result = saved_res;
+ __set_errno (ERANGE);
+ return NSS_STATUS_TRYAGAIN;
+ }
+ else
+ {
+ if (!saved_first)
+ nis_freeresult (saved_res);
+ }
if (parse_res &&
in_blacklist (result->sp_namp, strlen (result->sp_namp), ent))
parse_res = 0; /* if result->pw_name in blacklist,search next entry */
@@ -503,6 +542,10 @@ getspent_next_nis (struct spwd *result, ent_t *ent,
buflen -= p2len;
do
{
+ bool_t saved_first;
+ char *saved_oldkey;
+ int saved_oldlen;
+
if (ent->first)
{
if (yp_first (domain, "shadow.byname", &outkey, &outkeylen,
@@ -512,7 +555,9 @@ getspent_next_nis (struct spwd *result, ent_t *ent,
give_spwd_free (&ent->pwd);
return NSS_STATUS_UNAVAIL;
}
-
+ saved_first = TRUE;
+ saved_oldkey = ent->oldkey;
+ saved_oldlen = ent->oldkeylen;
ent->oldkey = outkey;
ent->oldkeylen = outkeylen;
ent->first = FALSE;
@@ -528,7 +573,9 @@ getspent_next_nis (struct spwd *result, ent_t *ent,
return NSS_STATUS_NOTFOUND;
}
- free (ent->oldkey);
+ saved_first = FALSE;
+ saved_oldkey = ent->oldkey;
+ saved_oldlen = ent->oldkeylen;
ent->oldkey = outkey;
ent->oldkeylen = outkeylen;
}
@@ -541,7 +588,20 @@ getspent_next_nis (struct spwd *result, ent_t *ent,
while (isspace (*p))
++p;
- parse_res = _nss_files_parse_spent (p, result, data, buflen);
+ if ((parse_res = _nss_files_parse_spent (p, result, data, buflen)) == -1)
+ {
+ free (ent->oldkey);
+ ent->oldkey = saved_oldkey;
+ ent->oldkeylen = saved_oldlen;
+ ent->first = saved_first;
+ __set_errno (ERANGE);
+ return NSS_STATUS_TRYAGAIN;
+ }
+ else
+ {
+ if (!saved_first)
+ free (saved_oldkey);
+ }
if (parse_res &&
in_blacklist (result->sp_namp, strlen (result->sp_namp), ent))
parse_res = 0;
@@ -591,7 +651,12 @@ getspent_next_file_plususer (struct spwd *result, char *buffer,
nis_freeresult (res);
return status;
}
- parse_res = _nss_nisplus_parse_spent (res, result, buffer, buflen);
+ if ((parse_res = _nss_nisplus_parse_spent (res, result, buffer,
+ buflen)) == -1)
+ {
+ nis_freeresult (res);
+ return NSS_STATUS_TRYAGAIN;
+ }
nis_freeresult (res);
}
else /* Use NIS */
@@ -612,7 +677,8 @@ getspent_next_file_plususer (struct spwd *result, char *buffer,
free (outval);
while (isspace (*p))
p++;
- parse_res = _nss_files_parse_spent (p, result, data, buflen);
+ if ((parse_res = _nss_files_parse_spent (p, result, data, buflen)) == -1)
+ return NSS_STATUS_TRYAGAIN;
}
if (parse_res)
@@ -638,10 +704,13 @@ getspent_next_file (struct spwd *result, ent_t *ent,
struct parser_data *data = (void *) buffer;
while (1)
{
+ fpos_t pos;
+ int parse_res = 0;
char *p;
do
{
+ fgetpos (ent->stream, &pos);
p = fgets (buffer, buflen, ent->stream);
if (p == NULL)
return NSS_STATUS_NOTFOUND;
@@ -656,8 +725,17 @@ getspent_next_file (struct spwd *result, ent_t *ent,
while (*p == '\0' || *p == '#' /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
- || !_nss_files_parse_spent (p, result, data, buflen));
+ || !(parse_res = _nss_files_parse_spent (p, result, data,
+ buflen)));
+ if (parse_res == -1)
+ {
+ /* The parser ran out of space. */
+ fsetpos (ent->stream, &pos);
+ __set_errno (ERANGE);
+ return NSS_STATUS_TRYAGAIN;
+ }
+
if (result->sp_namp[0] != '+' && result->sp_namp[0] != '-')
/* This is a real entry. */
break;
17 nis/nss_nis/nis-alias.c
View
@@ -184,9 +184,10 @@ internal_nis_getaliasent_r (struct aliasent *alias, char *buffer,
++p;
free (result);
- parse_res = _nss_nis_parse_aliasent (outkey, p, alias, buffer, buflen);
- if (parse_res == -1)
+ if ((parse_res = _nss_nis_parse_aliasent (outkey, p, alias,
+ buffer, buflen)) == -1)
{
+ free (outkey);
__set_errno (ERANGE);
return NSS_STATUS_TRYAGAIN;
}
@@ -258,12 +259,12 @@ _nss_nis_getaliasbyname_r (const char *name, struct aliasent *alias,
free (result);
alias->alias_local = 0;
- parse_res = _nss_nis_parse_aliasent (name, p, alias, buffer, buflen);
- if (parse_res == -1)
+ if ((parse_res = _nss_nis_parse_aliasent (name, p, alias, buffer,
+ buflen)) == -1)
return NSS_STATUS_TRYAGAIN;
+
+ if (parse_res)
+ return NSS_STATUS_SUCCESS;
else
- if (parse_res == 0)
- return NSS_STATUS_NOTFOUND;
- else
- return NSS_STATUS_SUCCESS;
+ return NSS_STATUS_NOTFOUND;
}
29 nis/nss_nis/nis-ethers.c
View
@@ -159,17 +159,16 @@ internal_nis_getetherent_r (struct ether *eth, char *buffer, size_t buflen)
if (next == NULL)
return NSS_STATUS_NOTFOUND;
p = strcpy (buffer, next->val);
- next = next->next;
while (isspace (*p))
++p;
- parse_res = _nss_files_parse_etherent (p, eth, data, buflen);
- if (!parse_res && errno == ERANGE)
- return NSS_STATUS_TRYAGAIN;
+ if ((parse_res = _nss_files_parse_etherent (p, eth, data, buflen)) == -1)
+ return NSS_STATUS_TRYAGAIN;
+ next = next->next;
}
while (!parse_res);
-
+
return NSS_STATUS_SUCCESS;
}
@@ -228,15 +227,11 @@ _nss_nis_gethostton_r (const char *name, struct ether *eth,
++p;
free (result);
- parse_res = _nss_files_parse_etherent (p, eth, data, buflen);
+ if ((parse_res = _nss_files_parse_etherent (p, eth, data, buflen)) == -1)
+ return NSS_STATUS_TRYAGAIN;
if (!parse_res)
- {
- if (errno == ERANGE)
- return NSS_STATUS_TRYAGAIN;
- else
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
else
return NSS_STATUS_SUCCESS;
}
@@ -291,15 +286,11 @@ _nss_nis_getntohost_r (struct ether_addr *addr, struct ether *eth,
++p;
free (result);
- parse_res = _nss_files_parse_etherent (p, eth, data, buflen);
+ if ((parse_res = _nss_files_parse_etherent (p, eth, data, buflen)) == -1)
+ return NSS_STATUS_TRYAGAIN;
if (!parse_res)
- {
- if (errno == ERANGE)
- return NSS_STATUS_TRYAGAIN;
- else
- return NSS_STATUS_NOTFOUND;
- }
+ return NSS_STATUS_NOTFOUND;
else
return NSS_STATUS_SUCCESS;
}
36 nis/nss_nis/nis-grp.c
View
@@ -121,9 +121,11 @@ internal_nis_getgrent_r (struct group *grp, char *buffer, size_t buflen)
++p;
free (result);
- parse_res = _nss_files_parse_grent (p, grp, data, buflen);
- if (parse_res < 1 && errno == ERANGE)
- return NSS_STATUS_TRYAGAIN;
+ if ((parse_res = _nss_files_parse_grent (p, grp, data, buflen)) == -1)
+ {
+ free (outkey);
+ return NSS_STATUS_TRYAGAIN;
+ }
free (oldkey);
oldkey = outkey;
@@ -190,17 +192,13 @@ _nss_nis_getgrnam_r (const char *name, struct group *grp,
++p;
free (result);
- parse_res = _nss_files_parse_grent (p, grp, data, buflen);
+ if ((parse_res = _nss_files_parse_grent (p, grp, data, buflen)) == -1)
+ return NSS_STATUS_TRYAGAIN;
- if (parse_res < 1)
- {
- if (errno == ERANGE)
- return NSS_STATUS_TRYAGAIN;
- else
- return NSS_STATUS_NOTFOUND;
- }
- else
+ if (parse_res)
return NSS_STATUS_SUCCESS;
+ else
+ return NSS_STATUS_NOTFOUND;
}
enum nss_status
@@ -241,15 +239,11 @@ _nss_nis_getgrgid_r (gid_t gid, struct group *grp,
++p;
free (result);
- parse_res = _nss_files_parse_grent (p, grp, data, buflen);
+ if ((parse_res = _nss_files_parse_grent (p, grp, data, buflen)) == -1)
+ return NSS_STATUS_TRYAGAIN;
- if (parse_res < 1)
- {
- if (errno == ERANGE)
- return NSS_STATUS_TRYAGAIN;
- else
- return NSS_STATUS_NOTFOUND;
- }
- else
+ if (parse_res)
return NSS_STATUS_SUCCESS;
+ else
+ return NSS_STATUS_NOTFOUND;
}
13 nis/nss_nis/nis-hosts.c
View
@@ -199,9 +199,9 @@ internal_nis_gethostent_r (struct hostent *host, char *buffer,
++p;
free (result);
- parse_res = parse_line (p, host, data, buflen);
- if (!parse_res && errno == ERANGE)
+ if ((parse_res = parse_line (p, host, data, buflen)) == -1)
{
+ free (outkey);
*h_errnop = NETDB_INTERNAL;;
return NSS_STATUS_TRYAGAIN;
}
@@ -287,9 +287,9 @@ _nss_nis_gethostbyname2_r (const char *name, int af, struct hostent *host,
parse_res = parse_line (p, host, data, buflen);
- if (!parse_res || host->h_addrtype != af)
+ if (parse_res < 1 || host->h_addrtype != af)
{
- if (!parse_res && errno == ERANGE)
+ if (parse_res == -1)
{
*h_errnop = NETDB_INTERNAL;
return NSS_STATUS_TRYAGAIN;
@@ -377,10 +377,9 @@ _nss_nis_gethostbyaddr_r (char *addr, int addrlen, int type,
free (result);
parse_res = parse_line (p, host, data, buflen);
-
- if (!parse_res)
+ if (parse_res < 1)
{
- if (errno == ERANGE)
+ if (parse_res == -1)
{
*h_errnop = NETDB_INTERNAL;
return NSS_STATUS_TRYAGAIN;
12 nis/nss_nis/nis-network.c
View
@@ -126,9 +126,9 @@ internal_nis_getnetent_r (struct netent *net, char *buffer, size_t buflen,
++p;
free (result);
- parse_res = _nss_files_parse_netent (p, net, data, buflen);
- if (!parse_res && errno == ERANGE)
+ if ((parse_res = _nss_files_parse_netent (p, net, data, buflen)) == -1)
{
+ free (outkey);
*herrnop = NETDB_INTERNAL;
return NSS_STATUS_TRYAGAIN;
}
@@ -206,10 +206,10 @@ _nss_nis_getnetbyname_r (const char *name, struct netent *net,
parse_res = _nss_files_parse_netent (p, net, data, buflen);
- if (!parse_res)
+ if (parse_res < 1)
{
*herrnop = NETDB_INTERNAL;
- if (errno == ERANGE)
+ if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
return NSS_STATUS_NOTFOUND;
@@ -286,10 +286,10 @@ _nss_nis_getnetbyaddr_r (unsigned long addr, int type, struct netent *net,
parse_res = _nss_files_parse_netent (p, net, data, buflen);
- if (!parse_res)
+ if (parse_res < 1)
{
*herrnop = NETDB_INTERNAL;
- if (errno == ERANGE)
+ if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
return NSS_STATUS_NOTFOUND;
36 nis/nss_nis/nis-proto.c
View
@@ -152,17 +152,17 @@ internal_nis_getprotoent_r (struct protoent *proto,
if (next == NULL)
return NSS_STATUS_NOTFOUND;
p = strcpy (buffer, next->val);
- next = next->next;
while (isspace (*p))
++p;
- parse_res = _nss_files_parse_protoent (p, proto, data, buflen);
- if (!parse_res && errno == ERANGE)
+ if ((parse_res = _nss_files_parse_protoent (p, proto, data,
+ buflen)) == -1)
return NSS_STATUS_TRYAGAIN;
+ next = next->next;
}
while (!parse_res);
-
+
return NSS_STATUS_SUCCESS;
}
@@ -221,17 +221,13 @@ _nss_nis_getprotobyname_r (const char *name, struct protoent *proto,
++p;
free (result);
- parse_res = _nss_files_parse_protoent (p, proto, data, buflen);
+ if ((parse_res = _nss_files_parse_protoent (p, proto, data, buflen)) == -1)
+ return NSS_STATUS_TRYAGAIN;
- if (!parse_res)
- {
- if (errno == ERANGE)
- return NSS_STATUS_TRYAGAIN;
- else
- return NSS_STATUS_NOTFOUND;
- }
- else
+ if (parse_res)
return NSS_STATUS_SUCCESS;
+ else
+ return NSS_STATUS_NOTFOUND;
}
enum nss_status
@@ -272,15 +268,11 @@ _nss_nis_getprotobynumber_r (int number, struct protoent *proto,
++p;
free (result);
- parse_res = _nss_files_parse_protoent (p, proto, data, buflen);
+ if ((parse_res = _nss_files_parse_protoent (p, proto, data, buflen)) == -1)
+ return NSS_STATUS_TRYAGAIN;
- if (!parse_res)
- {
- if (errno == ERANGE)
- return NSS_STATUS_TRYAGAIN;
- else
- return NSS_STATUS_NOTFOUND;
- }
- else
+ if (parse_res)
return NSS_STATUS_SUCCESS;
+ else
+ return NSS_STATUS_NOTFOUND;
}
18 nis/nss_nis/nis-pwd.c
View
@@ -121,16 +121,18 @@ internal_nis_getpwent_r (struct passwd *pwd, char *buffer, size_t buflen)
++p;
free (result);
- parse_res = _nss_files_parse_pwent (p, pwd, data, buflen);
- if (!parse_res && errno == ERANGE)
- return NSS_STATUS_TRYAGAIN;
+ if ((parse_res = _nss_files_parse_pwent (p, pwd, data, buflen)) == -1)
+ {
+ free (outkey);
+ return NSS_STATUS_TRYAGAIN;
+ }
free (oldkey);
oldkey = outkey;
oldkeylen = keylen;
new_start = 0;
}
- while (!parse_res);
+ while (parse_res < 1);
return NSS_STATUS_SUCCESS;
}
@@ -192,9 +194,9 @@ _nss_nis_getpwnam_r (const char *name, struct passwd *pwd,
parse_res = _nss_files_parse_pwent (p, pwd, data, buflen);
- if (!parse_res)
+ if (parse_res < 1)
{
- if (errno == ERANGE)
+ if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
return NSS_STATUS_NOTFOUND;
@@ -243,9 +245,9 @@ _nss_nis_getpwuid_r (uid_t uid, struct passwd *pwd,
parse_res = _nss_files_parse_pwent (p, pwd, data, buflen);
- if (!parse_res)
+ if (parse_res < 1)
{
- if (errno == ERANGE)
+ if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
return NSS_STATUS_NOTFOUND;
9 nis/nss_nis/nis-rpc.c
View
@@ -169,13 +169,12 @@ internal_nis_getrpcent_r (struct rpcent *rpc, char *buffer, size_t buflen,
if (data->next == NULL)
return NSS_STATUS_NOTFOUND;
p = strcpy (buffer, data->next->val);
- data->next = data->next->next;
while (isspace (*p))
++p;
- parse_res = _nss_files_parse_rpcent (p, rpc, pdata, buflen);
- if (!parse_res && errno == ERANGE)
+ if ((parse_res = _nss_files_parse_rpcent (p, rpc, pdata, buflen)) == -1)
return NSS_STATUS_TRYAGAIN;
+ data->next = data->next->next;
}
while (!parse_res);
@@ -286,9 +285,9 @@ _nss_nis_getrpcbynumber_r (int number, struct rpcent *rpc,
parse_res = _nss_files_parse_rpcent (p, rpc, data, buflen);
- if (!parse_res)
+ if (parse_res < 1)
{
- if (errno == ERANGE)
+ if (parse_res == -1)
return NSS_STATUS_TRYAGAIN;
else
return NSS_STATUS_NOTFOUND;
8 nis/nss_nis/nis-service.c
View
@@ -169,13 +169,13 @@ internal_nis_getservent_r (struct servent *serv, char *buffer,
if (data->next == NULL)
return NSS_STATUS_NOTFOUND;
p = strcpy (buffer, data->next->val);
- data->next = data->next->next;
- while (isspace (*p))
+ while (isspace (*p))
++p;
- parse_res = _nss_files_parse_servent (p, serv, buffer, buflen);
- if (!parse_res && errno == ERANGE)
+ if ((parse_res = _nss_files_parse_servent (p, serv, buffer,
+ buflen)) == -1)
return NSS_STATUS_TRYAGAIN;
+ data->next = data->next->next;
}
while (!parse_res);
24 nis/nss_nis/nis-spwd.c
View
@@ -121,10 +121,12 @@ internal_nis_getspent_r (struct spwd *sp, char *buffer, size_t buflen)
++p;
free (result);
- parse_res = _nss_files_parse_spent (p, sp, data, buflen);
- if (!parse_res && errno == ERANGE)
- return NSS_STATUS_TRYAGAIN;
-
+ if ((parse_res = _nss_files_parse_spent (p, sp, data, buflen)) == -1)
+ {
+ free (outkey);
+ return NSS_STATUS_TRYAGAIN;
+ }
+
free (oldkey);
oldkey = outkey;
oldkeylen = keylen;