From 42be70d43174c6a6e80fbd25276d4eb04c6e5adf Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 15 Oct 2000 02:17:30 +0000 Subject: Update. 2000-10-28 Jes Sorensen * sysdeps/unix/sysv/linux/ia64/Versions: Export ioperm, iopl, inb, inw, inl, _inb, _inw, _inl, outb, outw, outl, _outb, _outw, _outl. Reported by Bill Nottingham. 2000-04-06 Andreas Schwab * sysdeps/ia64/dl-machine.h (TRAMPOLINE_TEMPLATE): Save and restore register r8 for functions that return a structure. 2000-10-12 Jakub Jelinek * math/libm-test.inc (M_PI_6l, M_E2l, M_E3l, M_2_SQRT_PIl, M_SQRT_PIl): Increase precision. (cbrt_test): If cbrt is not implemented, don't test it. Add L suffix to double constants in results which differ from their L suffixed counterparts. (exp10_test, fmod_test, frexp_test, hypot_test, sqrt_test): Likewise. * sysdeps/sparc/sparc64/fpu/libm-test-ulps: Update. 2000-10-11 Jakub Jelinek * inet/rexec.c (rexec_af): Convert rport to host order before passing it to snprintf. 2000-10-14 Ulrich Drepper * sysdeps/gnu/netinet/tcp.h: Use u_intXX_t types instead of uintXX_t since this is what defines and we include this header. Reported by Bernhard Rosenkraenzer . * intl/localealias.c (read_alias_file): Update string pointers in map[] if realloc() changed the values. Patch by Jakub Jelinek . * manual/stdio.texi: Update printf extension documentation after z became a valid modifier. Patch by Joseph S. Myers . * timezone/africa: Update from tzcode2000g and tzdata2000g. * timezone/asia: Likewise. * timezone/australasia: Likewise. * timezone/backward: Likewise. * timezone/europe: Likewise. * timezone/iso3166.tab: Likewise. * timezone/northamerica: Likewise. * timezone/southamerica: Likewise. * timezone/zone.tab: Likewise. --- ChangeLog | 51 +++++++++++++++++++++++++++ inet/rexec.c | 2 +- intl/localealias.c | 12 +++++++ manual/stdio.texi | 6 ++-- math/libm-test.inc | 42 ++++++++++++---------- sysdeps/gnu/netinet/tcp.h | 60 ++++++++++++++++---------------- sysdeps/ia64/dl-machine.h | 13 +++++-- sysdeps/sparc/sparc64/fpu/libm-test-ulps | 14 +++++--- sysdeps/unix/sysv/linux/ia64/Versions | 6 ++++ 9 files changed, 149 insertions(+), 57 deletions(-) diff --git a/ChangeLog b/ChangeLog index ce8e48a9d1..a0c8b77368 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,54 @@ +2000-10-28 Jes Sorensen + + * sysdeps/unix/sysv/linux/ia64/Versions: Export ioperm, iopl, inb, + inw, inl, _inb, _inw, _inl, outb, outw, outl, _outb, _outw, + _outl. Reported by Bill Nottingham. + +2000-04-06 Andreas Schwab + + * sysdeps/ia64/dl-machine.h (TRAMPOLINE_TEMPLATE): Save and + restore register r8 for functions that return a structure. + +2000-10-12 Jakub Jelinek + + * math/libm-test.inc (M_PI_6l, M_E2l, M_E3l, M_2_SQRT_PIl, + M_SQRT_PIl): Increase precision. + (cbrt_test): If cbrt is not implemented, don't test it. + Add L suffix to double constants in results which differ from their + L suffixed counterparts. + (exp10_test, fmod_test, frexp_test, hypot_test, sqrt_test): Likewise. + + * sysdeps/sparc/sparc64/fpu/libm-test-ulps: Update. + +2000-10-11 Jakub Jelinek + + * inet/rexec.c (rexec_af): Convert rport to host order before + passing it to snprintf. + +2000-10-14 Ulrich Drepper + + * sysdeps/gnu/netinet/tcp.h: Use u_intXX_t types instead of + uintXX_t since this is what defines and we include + this header. Reported by Bernhard Rosenkraenzer . + + * intl/localealias.c (read_alias_file): Update string pointers + in map[] if realloc() changed the values. + Patch by Jakub Jelinek . + + * manual/stdio.texi: Update printf extension documentation after + z became a valid modifier. + Patch by Joseph S. Myers . + + * timezone/africa: Update from tzcode2000g and tzdata2000g. + * timezone/asia: Likewise. + * timezone/australasia: Likewise. + * timezone/backward: Likewise. + * timezone/europe: Likewise. + * timezone/iso3166.tab: Likewise. + * timezone/northamerica: Likewise. + * timezone/southamerica: Likewise. + * timezone/zone.tab: Likewise. + 2000-10-14 Geoffrey Keating * sysdeps/unix/sysv/linux/powerpc/syscalls.list: Add fcntl() diff --git a/inet/rexec.c b/inet/rexec.c index decee94e6d..4eae8f79ee 100644 --- a/inet/rexec.c +++ b/inet/rexec.c @@ -65,7 +65,7 @@ rexec_af(ahost, rport, name, pass, cmd, fd2p, af) int gai; char servbuff[NI_MAXSERV]; - snprintf(servbuff, sizeof(servbuff), "%d", rport); + snprintf(servbuff, sizeof(servbuff), "%d", ntohs(rport)); servbuff[sizeof(servbuff) - 1] = '\0'; memset(&hints, 0, sizeof(hints)); diff --git a/intl/localealias.c b/intl/localealias.c index 57c693dcde..426db49b97 100644 --- a/intl/localealias.c +++ b/intl/localealias.c @@ -351,6 +351,18 @@ read_alias_file (fname, fname_len) FREE_BLOCKS (block_list); return added; } + + if (__builtin_expect (string_space != new_pool, 0)) + { + size_t i; + + for (i = 0; i < nmap; i++) + { + map[i].alias += new_pool - string_space; + map[i].value += new_pool - string_space; + } + } + string_space = new_pool; string_space_max = new_size; } diff --git a/manual/stdio.texi b/manual/stdio.texi index 5c37698fc6..e3e3918731 100644 --- a/manual/stdio.texi +++ b/manual/stdio.texi @@ -2098,11 +2098,13 @@ The function to register a new output conversion is @comment GNU @deftypefun int register_printf_function (int @var{spec}, printf_function @var{handler-function}, printf_arginfo_function @var{arginfo-function}) This function defines the conversion specifier character @var{spec}. -Thus, if @var{spec} is @code{'z'}, it defines the conversion @samp{%z}. +Thus, if @var{spec} is @code{'Y'}, it defines the conversion @samp{%Y}. You can redefine the built-in conversions like @samp{%s}, but flag characters like @samp{#} and type modifiers like @samp{l} can never be used as conversions; calling @code{register_printf_function} for those -characters has no effect. +characters has no effect. It is advisable not to use lowercase letters, +since the ISO C standard warns that additional lowercase letters may be +standardized in future editions of the standard. The @var{handler-function} is the function called by @code{printf} and friends when this conversion appears in a template string. diff --git a/math/libm-test.inc b/math/libm-test.inc index 9f882d3b72..f4df889312 100644 --- a/math/libm-test.inc +++ b/math/libm-test.inc @@ -134,11 +134,11 @@ #define IGNORE_ZERO_INF_SIGN 0x10 /* Various constants (we must supply them precalculated for accuracy). */ -#define M_PI_6l .52359877559829887308L -#define M_E2l 7.389056098930650227230L -#define M_E3l 20.08553692318766774093L -#define M_2_SQRT_PIl 3.5449077018110320545963L /* 2 sqrt (M_PIl) */ -#define M_SQRT_PIl 1.77245385090551602729817L /* sqrt (M_PIl) */ +#define M_PI_6l .52359877559829887307710723054658383L +#define M_E2l 7.389056098930650227230427460575008L +#define M_E3l 20.085536923187667740928529654581719L +#define M_2_SQRT_PIl 3.5449077018110320545963349666822903L /* 2 sqrt (M_PIl) */ +#define M_SQRT_PIl 1.7724538509055160272981674833411451L /* sqrt (M_PIl) */ #define M_LOG_SQRT_PIl 0.572364942924700087072L /* log(sqrt(M_PIl)) */ #define M_LOG_2_SQRT_PIl 1.265512123484645396489L /* log(2*sqrt(M_PIl)) */ #define M_PI_34l (M_PIl - M_PI_4l) /* 3*pi/4 */ @@ -1429,6 +1429,12 @@ catanh_test (void) static void cbrt_test (void) { + errno = 0; + FUNC(cbrt) (8); + if (errno == ENOSYS) + /* Function not implemented. */ + return; + START (cbrt); TEST_f_f (cbrt, 0.0, 0.0); @@ -1438,10 +1444,10 @@ cbrt_test (void) TEST_f_f (cbrt, minus_infty, minus_infty); TEST_f_f (cbrt, nan_value, nan_value); - TEST_f_f (cbrt, -0.001, -0.1); + TEST_f_f (cbrt, -0.001, -0.1L); TEST_f_f (cbrt, 8, 2); TEST_f_f (cbrt, -27.0, -3.0); - TEST_f_f (cbrt, 0.970299, 0.99); + TEST_f_f (cbrt, 0.970299, 0.99L); TEST_f_f (cbrt, 0.7, 0.8879040017426007084L); END (cbrt); @@ -2385,7 +2391,7 @@ exp10_test (void) TEST_f_f (exp10, minus_infty, 0); TEST_f_f (exp10, nan_value, nan_value); TEST_f_f (exp10, 3, 1000); - TEST_f_f (exp10, -1, 0.1); + TEST_f_f (exp10, -1, 0.1L); TEST_f_f (exp10, 1e6, plus_infty); TEST_f_f (exp10, -1e6, 0); TEST_f_f (exp10, 0.7, 5.0118723362727228500L); @@ -2649,10 +2655,10 @@ fmod_test (void) TEST_ff_f (fmod, nan_value, nan_value, nan_value); - TEST_ff_f (fmod, 6.5, 2.3, 1.9); - TEST_ff_f (fmod, -6.5, 2.3, -1.9); - TEST_ff_f (fmod, 6.5, -2.3, 1.9); - TEST_ff_f (fmod, -6.5, -2.3, -1.9); + TEST_ff_f (fmod, 6.5, 2.3, 1.9L); + TEST_ff_f (fmod, -6.5, 2.3, -1.9L); + TEST_ff_f (fmod, 6.5, -2.3, 1.9L); + TEST_ff_f (fmod, -6.5, -2.3, -1.9L); END (fmod); } @@ -2687,8 +2693,8 @@ frexp_test (void) TEST_fI_f1 (frexp, 0.0, 0.0, 0.0); TEST_fI_f1 (frexp, minus_zero, minus_zero, 0.0); - TEST_fI_f1 (frexp, 12.8, 0.8, 4); - TEST_fI_f1 (frexp, -27.34, -0.854375, 5); + TEST_fI_f1 (frexp, 12.8, 0.8L, 4); + TEST_fI_f1 (frexp, -27.34, -0.854375L, 5); END (frexp); } @@ -2756,9 +2762,9 @@ hypot_test (void) TEST_ff_f (hypot, -12.4, -0.7, 12.41974234837422060118L); /* hypot (x,0) == fabs (x) */ - TEST_ff_f (hypot, 0.7, 0, 0.7); - TEST_ff_f (hypot, -0.7, 0, 0.7); - TEST_ff_f (hypot, -5.7e7, 0, 5.7e7); + TEST_ff_f (hypot, 0.7, 0, 0.7L); + TEST_ff_f (hypot, -0.7, 0, 0.7L); + TEST_ff_f (hypot, -5.7e7, 0, 5.7e7L); TEST_ff_f (hypot, 0.7, 1.2, 1.3892443989449804508L); @@ -3869,7 +3875,7 @@ sqrt_test (void) TEST_f_f (sqrt, 2, M_SQRT2l); TEST_f_f (sqrt, 0.25, 0.5); TEST_f_f (sqrt, 6642.25, 81.5); - TEST_f_f (sqrt, 15239.9025, 123.45); + TEST_f_f (sqrt, 15239.9025, 123.45L); TEST_f_f (sqrt, 0.7, 0.83666002653407554798L); END (sqrt); diff --git a/sysdeps/gnu/netinet/tcp.h b/sysdeps/gnu/netinet/tcp.h index 6d983600e1..ddb1f8b86a 100644 --- a/sysdeps/gnu/netinet/tcp.h +++ b/sysdeps/gnu/netinet/tcp.h @@ -183,40 +183,40 @@ enum tcp_ca_state struct tcp_info { - uint8_t tcpi_state; - uint8_t tcpi_ca_state; - uint8_t tcpi_retransmits; - uint8_t tcpi_probes; - uint8_t tcpi_backoff; - uint8_t tcpi_options; - uint8_t tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4; - - uint32_t tcpi_rto; - uint32_t tcpi_ato; - uint32_t tcpi_snd_mss; - uint32_t tcpi_rcv_mss; - - uint32_t tcpi_unacked; - uint32_t tcpi_sacked; - uint32_t tcpi_lost; - uint32_t tcpi_retrans; - uint32_t tcpi_fackets; + u_int8_t tcpi_state; + u_int8_t tcpi_ca_state; + u_int8_t tcpi_retransmits; + u_int8_t tcpi_probes; + u_int8_t tcpi_backoff; + u_int8_t tcpi_options; + u_int8_t tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4; + + u_int32_t tcpi_rto; + u_int32_t tcpi_ato; + u_int32_t tcpi_snd_mss; + u_int32_t tcpi_rcv_mss; + + u_int32_t tcpi_unacked; + u_int32_t tcpi_sacked; + u_int32_t tcpi_lost; + u_int32_t tcpi_retrans; + u_int32_t tcpi_fackets; /* Times. */ - uint32_t tcpi_last_data_sent; - uint32_t tcpi_last_ack_sent; /* Not remembered, sorry. */ - uint32_t tcpi_last_data_recv; - uint32_t tcpi_last_ack_recv; + u_int32_t tcpi_last_data_sent; + u_int32_t tcpi_last_ack_sent; /* Not remembered, sorry. */ + u_int32_t tcpi_last_data_recv; + u_int32_t tcpi_last_ack_recv; /* Metrics. */ - uint32_t tcpi_pmtu; - uint32_t tcpi_rcv_ssthresh; - uint32_t tcpi_rtt; - uint32_t tcpi_rttvar; - uint32_t tcpi_snd_ssthresh; - uint32_t tcpi_snd_cwnd; - uint32_t tcpi_advmss; - uint32_t tcpi_reordering; + u_int32_t tcpi_pmtu; + u_int32_t tcpi_rcv_ssthresh; + u_int32_t tcpi_rtt; + u_int32_t tcpi_rttvar; + u_int32_t tcpi_snd_ssthresh; + u_int32_t tcpi_snd_cwnd; + u_int32_t tcpi_advmss; + u_int32_t tcpi_reordering; }; __END_DECLS diff --git a/sysdeps/ia64/dl-machine.h b/sysdeps/ia64/dl-machine.h index 1c37b24b4b..5c4870dc9b 100644 --- a/sysdeps/ia64/dl-machine.h +++ b/sysdeps/ia64/dl-machine.h @@ -163,7 +163,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile) .proc " #tramp_name "# " #tramp_name ": { .mmi - alloc loc0 = ar.pfs, 8, 2, 3, 0 + alloc loc0 = ar.pfs, 8, 3, 3, 0 adds r2 = -144, r12 adds r3 = -128, r12 } @@ -173,6 +173,11 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile) mov out2 = b0 /* needed by fixup_profile */ ;; } + { .mfb + mov loc2 = r8 /* preserve struct value register */ + nop.f 0 + nop.b 0 + } { .mmi stf.spill [r2] = f8, 32 stf.spill [r3] = f9, 32 @@ -226,11 +231,15 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile) adds r12 = 160, r12 ;; } + { .mii + ld8 gp = [ret0] + mov r8 = loc2 /* restore struct value register */ + ;; + } /* An alloc is needed for the break system call to work. We don't care about the old value of the pfs register. */ { .mmb alloc r2 = ar.pfs, 0, 0, 8, 0 - ld8 gp = [ret0] br.sptk.many b6 ;; } diff --git a/sysdeps/sparc/sparc64/fpu/libm-test-ulps b/sysdeps/sparc/sparc64/fpu/libm-test-ulps index 7b594a804a..868690e064 100644 --- a/sysdeps/sparc/sparc64/fpu/libm-test-ulps +++ b/sysdeps/sparc/sparc64/fpu/libm-test-ulps @@ -279,18 +279,22 @@ double: 1 float: 0.5 idouble: 1 ifloat: 0.5 +ildouble: 1 +ldouble: 1 Test "cos (M_PI_6l * 4.0) == -0.5": double: 2 float: 1 idouble: 2 ifloat: 1 +ildouble: 1 +ldouble: 1 Test "cos (pi/2) == 0": double: 0.2758 float: 0.3667 idouble: 0.2758 ifloat: 0.3667 -ildouble: 0.2251 -ldouble: 0.2251 +ildouble: 0.2252 +ldouble: 0.2252 # cpow Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i": @@ -607,6 +611,8 @@ double: 1 float: 0.5 idouble: 1 ifloat: 0.5 +ildouble: 1 +ldouble: 1 Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.866025403784438646764 in sin_res": double: 1 float: 1 @@ -617,8 +623,8 @@ double: 0.2758 float: 0.3667 idouble: 0.2758 ifloat: 0.3667 -ildouble: 0.2251 -ldouble: 0.2251 +ildouble: 0.2252 +ldouble: 0.2252 Test "sincos (pi/6, &sin_res, &cos_res) puts 0.866025403784438646764 in cos_res": float: 1 ifloat: 1 diff --git a/sysdeps/unix/sysv/linux/ia64/Versions b/sysdeps/unix/sysv/linux/ia64/Versions index 24ce6019c3..f8a9143549 100644 --- a/sysdeps/unix/sysv/linux/ia64/Versions +++ b/sysdeps/unix/sysv/linux/ia64/Versions @@ -6,6 +6,12 @@ ld { } libc { GLIBC_2.2 { + ioperm; iopl; + inb; inw; inl; + _inb; _inw; _inl; + outb; outw; _outl; + _outb; _outw; _outl; + # linuxthreads __clone2; } -- cgit v1.2.3