diff -durpN glibc-2.3.1/aclocal.m4 glibc-2.3.2/aclocal.m4 --- glibc-2.3.1/aclocal.m4 2002-09-29 10:45:42.000000000 -0700 +++ glibc-2.3.2/aclocal.m4 2002-11-14 14:53:32.000000000 -0800 @@ -3,20 +3,29 @@ dnl which appears in configure.in before dnl Each sysdep configure.in does GLIBC_PROVIDES first, to avoid any dnl AC_REQUIREs or AC_BEFOREs duplicating their code. dnl -define([AC_FD_MSG],6)dnl Autoconf lossage. -define([AC_FD_CC],5)dnl Autoconf lossage. -AC_DEFUN([GLIBC_PROVIDES], [dnl +define([GLIBC_PROVIDES], [dnl +AC_PROVIDE([_AS_ECHO_N_PREPARE])dnl +AC_PROVIDE([_AS_CR_PREPARE])dnl +AC_PROVIDE([_AS_TR_SH_PREPARE])dnl AC_PROVIDE([AC_PROG_INSTALL])dnl AC_PROVIDE([AC_PROG_RANLIB])dnl AC_PROVIDE([AC_PROG_CC])dnl AC_PROVIDE([AC_PROG_CPP])dnl -define([AC_LANG], [C])dnl +AC_PROVIDE([_AS_PATH_SEPARATOR_PREPARE])dnl +AC_PROVIDE([_AS_TEST_PREPARE])dnl +define([AS_MESSAGE_LOG_FD],5)dnl +define([AS_MESSAGE_FD],6)dnl +dnl Ripped out of AS_INIT, which does more cruft we do not want. +m4_wrap([m4_divert_pop([BODY])[]]) +m4_divert_push([BODY])[]dnl +dnl End of ripped out of AS_INIT. # This file is generated from configure.in by Autoconf. DO NOT EDIT! +define([_AC_LANG], [C])dnl ])dnl dnl dnl Check for a symbol dnl -AC_DEFUN(AC_CHECK_SYMBOL, [dnl +AC_DEFUN([AC_CHECK_SYMBOL], [dnl AC_MSG_CHECKING(for $1) AC_CACHE_VAL(ac_cv_check_symbol_$1, [dnl AC_TRY_LINK(, @@ -36,7 +45,7 @@ dnl dnl Locate a program and check that its version is acceptable. dnl AC_PROG_CHECK_VER(var, namelist, version-switch, dnl [version-extract-regexp], version-glob [, do-if-fail]) -AC_DEFUN(AC_CHECK_PROG_VER, +AC_DEFUN([AC_CHECK_PROG_VER], [AC_CHECK_PROGS([$1], [$2]) if test -z "[$]$1"; then ac_verc_fail=yes @@ -63,42 +72,10 @@ fi]) ]) dnl These modifications are to allow for an empty cross compiler tree. -dnl In the situation that cross-linking is impossible, the variable -dnl `cross_linkable' will be substituted with "yes". -dnl The vercheck macros are expected to have been called already. -AC_DEFUN(AC_PROG_CC_LOCAL, -[AC_BEFORE([$0], [AC_PROG_CPP])dnl - -AC_PROG_CC_WORKS_LOCAL -AC_PROG_CC_GNU -if test $ac_cv_prog_gcc != yes; then - AC_MSG_ERROR([GNU libc must be compiled using GNU CC]) -fi -]) - -AC_DEFUN(AC_PROG_CC_WORKS_LOCAL, -[AC_MSG_CHECKING([whether the C compiler ($CC $CFLAGS $LDFLAGS) works]) -AC_CACHE_VAL(ac_cv_prog_cc_works, -[AC_LANG_SAVE -AC_LANG_C -AC_TRY_COMPILER([main(){return(0);}], ac_cv_prog_cc_works, ac_cv_prog_cc_cross) -AC_LANG_RESTORE]) -AC_MSG_RESULT($ac_cv_prog_cc_works) -if test $ac_cv_prog_cc_works = no; then - cross_linkable=no - ac_cv_prog_cc_cross=yes -dnl AC_MSG_ERROR([installation or configuration problem: C compiler cannot create executables.]) -else - cross_linkable=yes -fi -AC_CACHE_CHECK( -[whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler], -ac_cv_prog_cc_cross, [:]) -AC_SUBST(cross_linkable) -cross_compiling=$ac_cv_prog_cc_cross +define([_AC_COMPILER_EXEEXT], [EXEEXT= ]) -AC_DEFUN(LIBC_PROG_FOO_GNU, +AC_DEFUN([LIBC_PROG_FOO_GNU], [# Most GNU programs take a -v and spit out some text including # the word 'GNU'. Some try to read stdin, so give them /dev/null. if $1 -o conftest -v &1 | grep GNU > /dev/null 2>&1; then @@ -108,7 +85,7 @@ else fi rm -fr contest*]) -AC_DEFUN(LIBC_PROG_BINUTILS, +AC_DEFUN([LIBC_PROG_BINUTILS], [# Was a --with-binutils option given? if test -n "$path_binutils"; then # Make absolute; ensure a single trailing slash. @@ -119,6 +96,8 @@ AS=`$CC -print-prog-name=as` LD=`$CC -print-prog-name=ld` AR=`$CC -print-prog-name=ar` AC_SUBST(AR) +OBJDUMP=`$CC -print-prog-name=objdump` +AC_SUBST(OBJDUMP) # ranlib has to be treated a bit differently since it might not exist at all. ac_ranlib=`$CC -print-prog-name=ranlib` diff -durpN glibc-2.3.1/argp/argp-fmtstream.c glibc-2.3.2/argp/argp-fmtstream.c --- glibc-2.3.1/argp/argp-fmtstream.c 2002-09-23 22:11:41.000000000 -0700 +++ glibc-2.3.2/argp/argp-fmtstream.c 2003-01-07 19:52:18.000000000 -0800 @@ -1,5 +1,5 @@ /* Word-wrapping and line-truncating streams - Copyright (C) 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1997,1998,1999,2001,2002,2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -87,9 +87,12 @@ __argp_make_fmtstream (FILE *stream, return fs; } +#if 0 +/* Not exported. */ #ifdef weak_alias weak_alias (__argp_make_fmtstream, argp_make_fmtstream) #endif +#endif /* Flush FS to its stream, and free it (but don't close the stream). */ void @@ -108,9 +111,12 @@ __argp_fmtstream_free (argp_fmtstream_t free (fs->buf); free (fs); } +#if 0 +/* Not exported. */ #ifdef weak_alias weak_alias (__argp_fmtstream_free, argp_fmtstream_free) #endif +#endif /* Process FS's buffer so that line wrapping is done from POINT_OFFS to the end of its buffer. This code is mostly from glibc stdio/linewrap.c. */ @@ -424,8 +430,11 @@ __argp_fmtstream_printf (struct argp_fmt return out; } +#if 0 +/* Not exported. */ #ifdef weak_alias weak_alias (__argp_fmtstream_printf, argp_fmtstream_printf) #endif +#endif #endif /* !ARGP_FMTSTREAM_USE_LINEWRAP */ diff -durpN glibc-2.3.1/argp/argp-fs-xinl.c glibc-2.3.2/argp/argp-fs-xinl.c --- glibc-2.3.1/argp/argp-fs-xinl.c 2001-07-07 12:20:51.000000000 -0700 +++ glibc-2.3.2/argp/argp-fs-xinl.c 2003-01-07 22:31:10.000000000 -0800 @@ -1,5 +1,5 @@ /* Real definitions for extern inline functions in argp-fmtstream.h - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -27,6 +27,8 @@ #define __OPTIMIZE__ #include "argp-fmtstream.h" +#if 0 +/* Not exported. */ /* Add weak aliases. */ #if _LIBC - 0 && !defined (ARGP_FMTSTREAM_USE_LINEWRAP) && defined (weak_alias) @@ -39,3 +41,4 @@ weak_alias (__argp_fmtstream_set_wmargin weak_alias (__argp_fmtstream_point, argp_fmtstream_point) #endif +#endif diff -durpN glibc-2.3.1/argp/argp.h glibc-2.3.2/argp/argp.h --- glibc-2.3.1/argp/argp.h 2002-03-11 00:31:59.000000000 -0800 +++ glibc-2.3.2/argp/argp.h 2003-02-28 17:09:18.000000000 -0800 @@ -1,5 +1,5 @@ /* Hierarchial argument parsing, layered over getopt. - Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc. + Copyright (C) 1995,1996,1997,1998,1999,2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -96,7 +96,7 @@ struct argp_option is set, then the option NAME field is displayed unmodified (e.g., no `--' prefix is added) at the left-margin (where a *short* option would normally be displayed), and the documentation string in the normal place. For - purposes of sorting, any leading whitespace and puncuation is ignored, + purposes of sorting, any leading whitespace and punctuation is ignored, except that if the first non-whitespace character is not `-', this entry is displayed after all options (and OPTION_DOC entries with a leading `-') in the same group. */ diff -durpN glibc-2.3.1/argp/Makefile glibc-2.3.2/argp/Makefile --- glibc-2.3.1/argp/Makefile 2001-07-07 12:20:51.000000000 -0700 +++ glibc-2.3.2/argp/Makefile 2002-12-04 11:45:21.000000000 -0800 @@ -1,4 +1,4 @@ -# Copyright (C) 1997 Free Software Foundation, Inc. +# Copyright (C) 1997, 2002 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 @@ -26,6 +26,6 @@ distribute = argp-fmtstream.h argp-namef routines = $(addprefix argp-, ba fmtstream fs-xinl help parse pv \ pvh xinl eexst) -tests = argp-test +tests = argp-test tst-argp1 include ../Rules diff -durpN glibc-2.3.1/argp/tst-argp1.c glibc-2.3.2/argp/tst-argp1.c --- glibc-2.3.1/argp/tst-argp1.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/argp/tst-argp1.c 2002-12-04 14:45:02.000000000 -0800 @@ -0,0 +1,115 @@ +/* Copyright (C) 2002 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 2002. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include + + + + +#define OPT_TO_THREAD 300 +#define OPT_TO_PROCESS 301 +#define OPT_SYNC_SIGNAL 302 +#define OPT_SYNC_JOIN 303 +#define OPT_TOPLEVEL 304 + + +static const struct argp_option options[] = + { + { NULL, 0, NULL, 0, "\ +This is a test for threads so we allow ther user to selection the number of \ +threads which are used at any one time. Independently the total number of \ +rounds can be selected. This is the total number of threads which will have \ +run when the process terminates:" }, + { "threads", 't', "NUMBER", 0, "Number of threads used at once" }, + { "starts", 's', "NUMBER", 0, "Total number of working threads" }, + { "toplevel", OPT_TOPLEVEL, "NUMBER", 0, + "Number of toplevel threads which start the other threads; this \ +implies --sync-join" }, + + { NULL, 0, NULL, 0, "\ +Each thread can do one of two things: sleep or do work. The latter is 100% \ +CPU bound. The work load is the probability a thread does work. All values \ +from zero to 100 (inclusive) are valid. How often each thread repeats this \ +can be determined by the number of rounds. The work cost determines how long \ +each work session (not sleeping) takes. If it is zero a thread would \ +effectively nothing. By setting the number of rounds to zero the thread \ +does no work at all and pure thread creation times can be measured." }, + { "workload", 'w', "PERCENT", 0, "Percentage of time spent working" }, + { "workcost", 'c', "NUMBER", 0, + "Factor in the cost of each round of working" }, + { "rounds", 'r', "NUMBER", 0, "Number of rounds each thread runs" }, + + { NULL, 0, NULL, 0, "\ +There are a number of different methods how thread creation can be \ +synchronized. Synchronization is necessary since the number of concurrently \ +running threads is limited." }, + { "sync-signal", OPT_SYNC_SIGNAL, NULL, 0, + "Synchronize using a signal (default)" }, + { "sync-join", OPT_SYNC_JOIN, NULL, 0, "Synchronize using pthread_join" }, + + { NULL, 0, NULL, 0, "\ +One parameter for each threads execution is the size of the stack. If this \ +parameter is not used the system's default stack size is used. If many \ +threads are used the stack size should be chosen quite small." }, + { "stacksize", 'S', "BYTES", 0, "Size of threads stack" }, + { "guardsize", 'g', "BYTES", 0, + "Size of stack guard area; must fit into the stack" }, + + { NULL, 0, NULL, 0, "Signal options:" }, + { "to-thread", OPT_TO_THREAD, NULL, 0, "Send signal to main thread" }, + { "to-process", OPT_TO_PROCESS, NULL, 0, + "Send signal to process (default)" }, + + { NULL, 0, NULL, 0, "Administrative options:" }, + { "progress", 'p', NULL, 0, "Show signs of progress" }, + { "timing", 'T', NULL, 0, + "Measure time from startup to the last thread finishing" }, + { NULL, 0, NULL, 0, NULL } + }; + +/* Prototype for option handler. */ +static error_t parse_opt (int key, char *arg, struct argp_state *state); + +/* Data structure to communicate with argp functions. */ +static struct argp argp = +{ + options, parse_opt +}; + + +int +main (void) +{ + int argc = 2; + char *argv[3] = { (char *) "tst-argp1", (char *) "--help", NULL }; + int remaining; + + /* Parse and process arguments. */ + argp_parse (&argp, argc, argv, 0, &remaining, NULL); + + return 0; +} + + +/* Handle program arguments. */ +static error_t +parse_opt (int key, char *arg, struct argp_state *state) +{ + return ARGP_ERR_UNKNOWN; +} diff -durpN glibc-2.3.1/catgets/gencat.c glibc-2.3.2/catgets/gencat.c --- glibc-2.3.1/catgets/gencat.c 2002-06-29 13:52:35.000000000 -0700 +++ glibc-2.3.2/catgets/gencat.c 2003-02-22 15:09:59.000000000 -0800 @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-1999, 2000, 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1996-2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -197,7 +197,7 @@ main (int argc, char *argv[]) if (result != NULL) write_out (result, output_name, header_name); - return EXIT_SUCCESS; + return error_message_count != 0; } @@ -247,7 +247,7 @@ print_version (FILE *stream, struct argp Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\ -"), "2002"); +"), "2003"); fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper"); } @@ -613,11 +613,40 @@ this is the first definition")); { /* Oh, oh. There is already a message with this number in the message set. */ - error_at_line (0, 0, fname, start_line, - gettext ("duplicated message number")); - error_at_line (0, 0, runp->fname, runp->line, - gettext ("this is the first definition")); - message_number = 0; + if (runp->symbol == NULL) + { + /* The existing message had its number specified + by the user. Fatal collision type uh, oh. */ + error_at_line (0, 0, fname, start_line, + gettext ("duplicated message number")); + error_at_line (0, 0, runp->fname, runp->line, + gettext ("this is the first definition")); + message_number = 0; + } + else + { + /* Collision was with number auto-assigned to a + symbolic. Change existing symbolic number + and move to end the list (if not already there). */ + runp->number = ++current->current_set->last_message; + + if (runp->next != NULL) + { + struct message_list *endp; + + if (lastp == NULL) + current->current_set->messages=runp->next; + else + lastp->next=runp->next; + + endp = runp->next; + while (endp->next != NULL) + endp = endp->next; + + endp->next = runp; + runp->next = NULL; + } + } } ident = NULL; /* We don't have a symbol. */ diff -durpN glibc-2.3.1/catgets/Makefile glibc-2.3.2/catgets/Makefile --- glibc-2.3.1/catgets/Makefile 2002-07-25 00:23:17.000000000 -0700 +++ glibc-2.3.2/catgets/Makefile 2003-02-22 12:03:48.000000000 -0800 @@ -1,4 +1,4 @@ -# Copyright (C) 1996,1997,1998,1999,2000,2002 Free Software Foundation, Inc. +# Copyright (C) 1996-2000, 2002, 2003 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,7 +22,7 @@ subdir := catgets headers = nl_types.h -distribute = catgetsinfo.h config.h xopen-msg.sed test1.msg \ +distribute = catgetsinfo.h config.h xopen-msg.sed test1.msg test2.msg \ test-gencat.sh sample.SJIS routines = catgets open_catalog others = gencat @@ -47,19 +47,25 @@ catgets-CPPFLAGS := -DNLSPATH='"$(msgcat CPPFLAGS-gencat = -DNOT_IN_libc -generated = de.msg test1.cat test1.h sample.SJIS.cat test-gencat.h +generated = de.msg test1.cat test1.h test2.cat test2.h sample.SJIS.cat \ + test-gencat.h generated-dirs = de tst-catgets-ENV = NLSPATH="$(objpfx)%l/%N.cat" LANG=de ifneq ($(cross-compiling),yes) -tests: $(objpfx)de/libc.cat $(objpfx)test1.cat $(objpfx)test-gencat.out +tests: $(objpfx)de/libc.cat $(objpfx)test1.cat $(objpfx)test2.cat \ + $(objpfx)test-gencat.out # This test just checks whether the program produces any error or not. # The result is not tested. $(objpfx)test1.cat: test1.msg $(objpfx)gencat LC_ALL=hr_HR.ISO-8859-2 LOCPATH=$(common-objpfx)localedata \ GCONV_PATH=$(common-objpfx)iconvdata \ $(built-program-cmd) -H $(objpfx)test1.h $@ $< +$(objpfx)test2.cat: test2.msg $(objpfx)gencat + LOCPATH=$(common-objpfx)localedata \ + GCONV_PATH=$(common-objpfx)iconvdata \ + $(built-program-cmd) -H $(objpfx)test2.h $@ $< $(objpfx)de/libc.cat: $(objpfx)de.msg $(objpfx)gencat $(make-target-directory) LC_ALL=de_DE.ISO-8859-1 LOCPATH=$(common-objpfx)localedata \ diff -durpN glibc-2.3.1/catgets/test2.msg glibc-2.3.2/catgets/test2.msg --- glibc-2.3.1/catgets/test2.msg 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/catgets/test2.msg 2003-02-22 11:09:34.000000000 -0800 @@ -0,0 +1,8 @@ +$set 42 +$ Two messages with auto-assigned numbers. +Number1 Auto-assigned #1 +Number2 Auto-assigned #2 +$ Three messages with explicitly assigned numbers. +0 Explicitly assigned #1 +1 Explicitly assigned #2 +2 Explicitly assigned #3 diff -durpN glibc-2.3.1/ChangeLog glibc-2.3.2/ChangeLog --- glibc-2.3.1/ChangeLog 2002-10-10 00:27:41.000000000 -0700 +++ glibc-2.3.2/ChangeLog 2003-02-28 17:10:14.000000000 -0800 @@ -1,3 +1,5619 @@ +2003-03-01 GOTO Masanori + + * argp/argp.h: Fix a typo. + Reported by H.S.Teoh . + + * manual/terminal.texi: Fix cfmakeraw() definition from int to void. + +2003-02-27 Pat Rankin + + * posix/regexec.c (proceed_next_node): Cast re_string_get_buffer to + char *. + (get_subexp): Likewise. + +2003-03-01 GOTO Masanori + + * sysdeps/unix/sysv/linux/sparc/bits/fcntl.h (O_DIRECT): Define. + +2003-02-26 Steven Munroe + + * sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h (O_DIRECT): Define. + +2003-02-27 Roland McGrath + + * sysdeps/powerpc/powerpc64/dl-machine.h (elf_machine_rela): Remove + special case for dl_rtld_map in R_PPC64_RELATIVE; it's harmless to + repeat it and avoids the test for the common case. + Clean up and fix calculations for TLS relocs. + + * sysdeps/powerpc/powerpc64/dl-tls.h: Moved to ... + * sysdeps/powerpc/dl-tls.h: ... here. + (TLS_TP_OFFSET): New macro. + + * sunrpc/svc_udp.c (svcudp_recv): Add a cast to last change. + +2003-02-27 Ulrich Drepper + + * sysdeps/i386/fpu/libm-test-ulps: Increase ULPs for yn due to + code generation changes in recent gcc. + +2003-02-26 Steven Munroe + + * sysdeps/powerpc/fpu/fpu_control.h (_FPU_GETCW, _FPU_SETCW): + Rename argument to avoid symbol conflict. + + * sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h + [__USE_GNU] (O_DIRECT): New macro. + +2003-02-24 David Mosberger + + * sysdeps/unix/sysv/linux/ia64/sysdep.S (__syscall_error): Fix + unwind info. + +2003-02-27 Ulrich Drepper + + * resolv/res_libc.c [USE___THREAD] (_res): Don't need the + initializer anymore now that res_thread_freeres is more careful. + + * sunrpc/svc_udp.c (svcudp_recv): Remove all control messages + except the PKTINFO. Reset interface in PKTINFO. + Patch by Neil Brown [PR libc/4973]. + +2003-02-25 Steven Munroe + + * elf/elf.h: Add new R_PPC64_* relocs for TLS. + * elf/tls-macros.h [__powerpc64__] (TLS_LE, TLS_IE, TLS_LD, TLS_GD): + Define. + * sysdeps/powerpc/powerpc64/elf/configure.in: New file. + * sysdeps/powerpc/powerpc64/elf/configure: New file (generated). + * sysdeps/powerpc/powerpc64/dl-machine.h: Support new TLS relocs. + * sysdeps/powerpc/powerpc64/dl-tls.h: New file. + + * sysdeps/powerpc/elf/libc-start.c (__libc_start_main): + Do DL_SYSDEP_OSCHECK here, matching 2002-12-01 change to generic file. + +2003-02-25 Andreas Jaeger + + * manual/memory.texi (Malloc Tunable Parameters): Clarify + behaviour of M_MMAP_THRESHOLD. + +2003-02-25 Roland McGrath + + * resolv/res_init.c (res_thread_freeres): Bail out if _res.nscount is + zero, inidicating _res was not initialized yet. + +2003-02-24 Ulrich Drepper + + * sysdeps/unix/sysv/linux/ttyname_r.c (__ttyname_r): Remove EACCES + test. + +2003-02-24 Roland McGrath + + * sysdeps/posix/pause.c: Add LIBC_CANCEL_HANDLED. + +2003-02-23 Roland McGrath + + * sysdeps/posix/pause.c: New file. + * sysdeps/unix/common/pause.c: File removed. + +2003-02-23 Ulrich Drepper + + * sysdeps/generic/bits/confname.h: Remove #ifs. + + * posix/Makefile (CFLAGS-regex.c): Remove RE_ENABLE_I18N definition. + * posix/regex_internal.h (RE_ENABLE_I18N): Pretty printing. + + * resolv/res_libc.c [USE___THREAD] (_res): Initialize _vcsock + element to -1. + +2003-02-22 Ulrich Drepper + + * sysdeps/generic/dl-sysdep.c: Avoid warning. + +2003-02-22 Roland McGrath + + * resolv/tst-leaks.c: New file by Daniel Jacobowitz . + * resolv/Makefile (tests): Add tst-leaks. + ($(objpfx)tst-leaks): Depend on $(objpfx)libresolv.so. + (tst-leaks-ENV): New variable. + ($(objpfx)mtrace-tst-leaks): New target. + (tests): Depend on it. + + * include/libc-internal.h: Declare __libc_thread_freeres. + + * Makerules: Fix last change to use $($(subdir)-version) when set. + + * Makerules (install-lib-nosubdir): Depend on installed + libfoo-X.Y.Z.so and libfoo.so.NN files so they are installed + regardless of the libfoo.so target's dependencies. + + * MakeTAGS (sub-make-vars): New variable, includes generating=t. + Use that in $(MAKE) calls. + +2003-02-22 Ulrich Drepper + + * catgets/gencat.c (read_input_file): Collision between + auto-assigned numbers and user-defined nubmers is not fatal. + Handle it. + Patch by Michael M. Lampkin . + * catgets/Makefile: Add rules to run test2.msg test. + * catgets/test2.msg: New file. + + * catgets/gencat.c (main): Return 1 if messages have been printed. + + * iconv/iconv_prog.c (main): Unify messages. + + * stdlib/strtod.c (INTERNAL): Remove bogus clearing of second word + when shifting retval. + * stdlib/tst-strtod.c (main): Add strtold test case. + Reported by Fred J. Tydeman . + +2003-02-21 Roland McGrath + + * malloc/thread-freeres.c: Conditionalize on _LIBC_REENTRANT. + * sunrpc/rpc_thread.c: Likewise for text_set_element use. + (__rpc_thread_destroy): Add it to __libc_subfreeres too. + + * include/resolv.h: Add libc_hidden_proto for __res_nclose. + * resolv/res_init.c (__res_nclose): Add libc_hidden_def. + (res_thread_freeres): New function, on __libc_thread_subfreeres and + __libc_subfreeres. + + * malloc/Versions (libc: GLIBC_PRIVATE): Add __libc_thread_freeres. + * malloc/thread-freeres.c: New file. + * malloc/Makefile (aux): Add it. + * sunrpc/Versions (libc: GLIBC_PRIVATE): Removed. + * sunrpc/rpc_thread.c (__rpc_thread_destroy): Put in special section + "__libc_thread_freeres_fn" and add to __libc_thread_subfreeres set. + + * sysdeps/unix/sysv/linux/i386/geteuid.c (__geteuid): Typo fix. + * sysdeps/unix/sysv/linux/i386/getgid.c (__getgid): Typo fix. + +2003-02-21 Roland McGrath + + * sysdeps/mach/hurd/opendir.c (__opendir): Use O_NONBLOCK in open. + + * iconvdata/Makefile (tests): Add bug-iconv3 only if + [$(have-thread-library) = yes]. + +2003-02-21 Ulrich Drepper + + * sysdeps/unix/sysv/linux/bits/signum.h (__SIGRTMAX): Define as _NSIG. + + * sysdeps/unix/sysv/linux/i386/getuid.c: Use INTERNAL_SYSCALL and do + not chechk for errors (unless testing for 32bit variant). + * sysdeps/unix/sysv/linux/i386/getgid.c: Likewise. + * sysdeps/unix/sysv/linux/i386/geteuid.c: Likewise. + * sysdeps/unix/sysv/linux/i386/getegid.c: Likewise. + +2003-02-21 Jakub Jelinek + + * sysdeps/x86_64/dl-machine.h (elf_machine_rela) : + Check for signed overflow, not unsigned. + + * sysdeps/sparc/sparc64/elf/configure.in: New file. + * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile (sysdep-CFLAGS): + Use -fcall-used-g6, not -fcall-used-g7. + +2003-02-21 Andreas Jaeger + + * sysdeps/x86_64/fpu/fesetenv.c (fesetenv): Fix setting of default + mode. + + * sysdeps/x86_64/fpu/fsetexcptflg.c (fesetexceptflag): Do not + clear whole mxcsr but only exceptions. + +2003-02-21 Roland McGrath + + * Makerules: Filter $(install-lib-ldscripts) out of list of targets + for libfoo.so that need $(make-link) rules. + +2003-02-21 Roland McGrath + + * sysdeps/mach/hurd/bits/typesizes.h (__DEV_T_TYPE): Use __U32_TYPE + to match existing struct stat layout in mig protocols. + +2003-02-20 Ulrich Drepper + + * version.h (VERSION): Bump to 2.3.2. + + * elf/Makefile (distribute): Add reldep9.c, tst-array1.exp, + tst-array2.exp, tst-array4.exp, tst-array2dep.c, check-textrel.c, + and dl-sysdep.h. + * sysdeps/generic/Dist: Add sysdep-cancel.h. + * sysdeps/powerpc/nofpu/Dist: Add soft-supp.h. + * sysdeps/unix/Dist: Add s-proto-bp.S and s-proto-cancel.S. + * sysdeps/unix/sysv/linux/Dist: Add pathconf.h. + * sysdeps/unix/sysv/linux/i386/Dist: Add bp-thunk.h. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/Dist: Add fe_nomask.c and + ucontext_i.h. + * Makefile (distribute): Add include/stubs-prologue.h, + include/gnu/stubs.h, scripts/merge-abilist.awk, and + scripts/extract-abilist.awk. + +2003-02-20 Roland McGrath + + * math/Makefile (distribute): Don't add generated files. + +2003-02-20 Ulrich Drepper + + * math/Makefile: Rearrange variable definitions slightly to get + definition in the right order. + +2003-02-20 Roland McGrath + + * Makerules: Clean up conditional around include of tls.make. + * Make-dist: Export generating=t to prevent using that. + (+distinfo): Likewise for $(shell $(MAKE) ...) runs. + +2003-02-20 Ulrich Drepper + + * inet/rcmd.c (rresvport_af): Avoid using invliad values. Wrap + around in search if port IPPORT_RESERVED/2 has been test. + +2002-02-20 Paolo Bonzini + + * posix/regcomp.c: Remove inclusions. + * posix/regexec.c: Likewise. + * posix/regex_internal.c: Likewise. + * posix/regex_internal.h: Add inclusions here. + * posix/regex.c: Only include sys/types.h before regex.h. Include + regex_internal.h here. Include regex_internal.c before regcomp.c + and regexec.c (might expose more opportunities to the C compiler). + + * posix/regcomp.c (parse_expression): Fix construct rejected by SGI CC. + + * posix/regex_internal.h [!_LIBC] (__mempcpy): Fix typo. + [!_LIBC] (__wcrtomb): New definition. + [!_LIBC]: Conditionalize enabling of I18N on HAVE_WCSCOLL and + HAVE_LOCALE_H as well. + +2003-02-20 Ulrich Drepper + + * sysdeps/unix/sysv/linux/tcsetattr.c (tcsetattr): Remove obsolete + patch to check for system call errors. + +2002-07-24 Philip Blundell + + * sysdeps/unix/sysv/linux/arm/ioperm.c (init_iosys): Yield ENODEV + on unknown systems. + +2003-02-20 Franz Sirl + + * sysdeps/powerpc/powerpc32/atomicity.h: Remove compiler workaround. + * sysdeps/unix/sysv/linux/kernel-features.h + (__ASSUME_NEW_PRCTL_SYSCALL): Defined for ppc32 too. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fe_nomask.c: Use prctl + if possible. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: Avoid short + interprocedure branches. + * sysdeps/powerpc/soft-fp/Dist (sim-full.c, fenv_const.c): Move to... + * sysdeps/powerpc/nofpu/Dist: ...here. + * sysdeps/unix/sysv/linux/powerpc/Dist (fe_nomask.c): Move to... + * sysdeps/unix/sysv/linux/powerpc/powerpc32/Dist: ...here. + * sysdeps/unix/sysv/linux/s390/s390-64/Dist (kernel_stat.h): Delete. + * sysdeps/unix/sysv/linux/sparc/Dist (bits/utmpx.h): Delete. + * sysdeps/unix/sysv/linux/x86_64/Dist (bits/utmpx.h): Delete. + +2003-02-18 Alan Modra + + * sysdeps/powerpc/powerpc32/sysdep.h (HIDDEN_JUMPTARGET): Redefine. + +2003-02-20 Philip Blundell + + * sysdeps/unix/sysv/linux/arm/sysdep.h (INLINE_SYSCALL): Add + missing arguments to INTERNAL_SYSCALL_ERROR_P and + INTERNAL_SYSCALL_ERRNO. + +2003-02-20 Martin Schwidefsky + + * sysdeps/unix/sysv/linux/s390/s390-32/chown.c (__real_chown): Test + for __ASSUME_32BITUIDS. + +2003-02-20 Andreas Schwab + + * sysdeps/unix/sysv/linux/m68k/bits/mman.h: Add MADV_* and + POSIX_MADV_* constants. + +2003-02-20 Kaz Kojima + + * sysdeps/unix/sysv/linux/sh/pread.c: New file. + * sysdeps/unix/sysv/linux/sh/pread64.c: New file. + * sysdeps/unix/sysv/linux/sh/pwrite.c: New file. + * sysdeps/unix/sysv/linux/sh/pwrite64.c: New file. + +2003-02-19 Jiro Sekiba + + * iconvdata/utf-16.c (gconv_end): Fix range of low surrogate. + +2003-02-16 Roland McGrath + + * signal/signal.h: Include , not . + +2003-02-19 Ulrich Drepper + + * stdlib/strtod.c (INTERNAL): Up the safety margin for cutting off + decimal input digits. + * stdlib/tst-strtod.c (main): Add test for strtof bug. + +2003-02-18 Ulrich Drepper + + * sysdeps/unix/sysv/linux/ttyname_r.c (__ttyname_r): Recognize + invalid file descriptors and missing access permissions. + +2003-02-17 Ulrich Drepper + + * nss/getXXbyYY_r.c (REENTRANT_NAME): Return 0 if no entry has + been found. + + * sysdeps/posix/sysconf.c (__sysconf): Test for LOGIN_NAME_MAX and + TTY_NAME_MAX and not the _POSIX_* minimal value macros. + * sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX + and LOGIN_NAME_MAX. + +2003-02-17 Kevin B. Hendricks + Franz Sirl + + * sysdeps/powerpc/elf/libc-start.c: Handle NONTLS_INIT_TP. + * sysdeps/powerpc/powerpc32/__longjmp.S: Remove R2 handling. + * sysdeps/powerpc/powerpc32/setjmp.S: Likewise. + * sysdeps/powerpc/powerpc32/fpu/__longjmp.S: Likewise. + * sysdeps/powerpc/powerpc32/fpu/setjmp.S: Likewise. + +2003-02-17 Franz Sirl + + * sysdeps/unix/sysv/linux/powerpc/ftruncate64.c: Delete. + * sysdeps/unix/sysv/linux/powerpc/truncate64.c: Delete. + * sysdeps/unix/sysv/linux/powerpc/pread64.c: Delete. + * sysdeps/unix/sysv/linux/powerpc/pread.c: Delete. + * sysdeps/unix/sysv/linux/powerpc/pwrite64.c: Delete. + * sysdeps/unix/sysv/linux/powerpc/pwrite.c: Delete. + + * sysdeps/unix/sysv/linux/powerpc/fe_nomask.c: Move file... + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fe_nomask.c: ...here. + * sysdeps/unix/sysv/linux/powerpc/glob64.c: Move file... + * sysdeps/unix/sysv/linux/powerpc/powerpc32/glob64.c: ...here. + + * sysdeps/unix/sysv/linux/tcgetattr.c: Use INLINE_SYSCALL. + * sysdeps/unix/sysv/linux/tcsetattr.c: Likewise. + * sysdeps/unix/sysv/linux/powerpc/tcgetattr.c: Delete. + * sysdeps/unix/sysv/linux/powerpc/tcsetattr.c: Delete. + +2003-02-14 Thorsten Kukuk + + * nss/getent.c (print_hosts): Print all IP addresses of one host. + +2003-02-15 Roland McGrath + + * sysdeps/mach/hurd/tls.h: New file. + * sysdeps/mach/hurd/i386/tls.h: New file. + + * mach/errsystems.awk: Include in generated output. + + * sysdeps/mach/Makefile (mach-before-compile rule): Pass generating=t, + use target mach-before-compile instead of generated. + (mach-before-compile): New target. + * Makerules: Disable use of tls.make if $(generating) is set. + * mach/Makefile: Include mach-syscalls.mk even if no_deps=t. + * sysdeps/mach/hurd/Makefile: Make generated hurd headers depend on + mach-shortcuts.h so mach/ generation happens before hurd/. + +2003-02-14 Ulrich Drepper + + * sysdeps/i386/fpu/s_nextafterl.c: Decrement high word of mantissa + of demorm correctly if low word is zero. + Reported by Fred J. Tydeman . + * math/libm-test.inc (nextafter_test): New test, but disabled due + to gcc bug. + + * sysdeps/generic/libc-start.c [HAVE_PTR_NTHREADS]: Decrement thread + counter and only call __exit_thread if this is not the last thread. + +2003-02-13 Jakub Jelinek + + * sysdeps/alpha/dl-machine.h (elf_machine_rela): Add instead of + subtracting map->l_tls_offset. + +2003-02-12 Ulrich Drepper + + * sysdeps/generic/bits/confname.h: Define _CS_GNU_LIBC_VERSION and + _CS_GNU_LIBPTHREAD_VERSION. + * posix/conststr.c: Handle these new values. + * posix/getconf.c: Likewise. + + * sysdeps/mips/dl-machine.h (ELF_MACHINE_RUNTIME_TRAMPOLINE): Fix + masking of version index. + Patch by Lance Larsh . + +2003-02-11 Ulrich Drepper + + * nss/nss_files/files-hosts.c (HOST_DB_LOOKUP): Compute alignment + correctly. Reported by Thorsten Kukuk. + +2003-02-10 Ulrich Drepper + + * elf/Makefile (check-textrel-CFLAGS): Pass _XOPEN_SOURCE and + _BSD_SOURCE to compiler. + * elf/check-textrel.c (SWAP): Add parenthesis to avoid warnings. + Patches by Alan Modra. + +2003-02-08 Ulrich Drepper + + * io/ftwtest.c: Get current working directory before and after the + nftw call and make sure they match. + +2003-02-08 Jim Meyering + + * io/ftw.c (ftw_startup): When using FTW_CHDIR, always remember + the current directory, not just when DIR contains a slash. + Reported by Manoj Srivastava. + +2003-02-07 Jim Meyering + + * io/ftw.c: Add autoconf-recommended block of alloca-related code. + Include autoconf-recommended block of dirent/NAMELEN-related + definitions and includes. Use NAMELEN throughout, rather than + _D_EXACT_NAMLEN. + [_LIBC]: Define NAMELEN to _D_EXACT_NAMLEN. + [!_LIBC] (__getcwd): Define to xgetcwd and declare xgetcwd. + (stpcpy): Declare, if necessary. + (mempcpy): Define, if necessary. + [!_LIBC] (__stpcpy, __mempcpy): Define. + [!_LIBC] (LXSTAT, XSTAT): Define. + (lstat) [!LIBC && !LSTAT_FOLLOWS_SLASHED_SYMLINK]: Define to rpl_lstat. + (find_object): Don't use c99-style struct initializer. + Tweak wording in a couple comments. + +2003-02-07 Kaz Kojima + + * elf/tls-macros.h: Add non-PIC TLS macros and fix clobber list + for SH. + * sysdeps/unix/sysv/linux/sh/brk.c: Add SYSCALL_INST_PAD + after the trapa instruction. + * sysdeps/unix/sysv/linux/sh/clone.S (__clone): Add additional + parameters. + * sysdeps/unix/sysv/linux/sh/sh4/sysdep.h: New file. + (NEED_SYSCALL_INST_PAD): Define. + * sysdeps/unix/sysv/linux/sh/sys/user.h (start_thread): Undef to + avoid to use definition for the kernel. + * sysdeps/unix/sysv/linux/sh/sysdep.h (SYSCALL_ERROR_HANDLER): + Save and restore the frame pointer. + (SYSCALL_INST_PAD): Define. + (INLINE_SYSCALL): Make use of INTERNAL_SYSCALL. + (INTERNAL_SYSCALL): Make use of ERR parameter. Add SYSCALL_INST_PAD + after trapa instruction. + (INTERNAL_SYSCALL_DECL, INTERNAL_SYSCALL_ERRNO, + INTERNAL_SYSCALL_ERROR_P): Adjust accordingly. + +2003-02-07 Jakub Jelinek + + * resolv/res_libc.c (_res): Ensure _res is not common symbol, + so that it can have aliases. + * inet/herrno.c (h_errno): Put it into .bss not .data section. + +2003-02-07 Ulrich Drepper + + * elf/dl-runtime.c (fixup): Correct typo in version index computation. + (profile_fixup): Likewise. + Patch by Lance Larsh . + +2002-11-24 Robert Love + + * posix/sched.h: Second parameter of sched_setaffinity and + sched_getaffinity is `unsigned int', not `unsigned long'. + * sysdeps/generic/sched_setaffinity.c: Likewise. + * sysdeps/generic/sched_getaffinity.c: Likewise. + +2003-02-05 Ulrich Drepper + + * debug/catchsegv.sh: Fix typo in error messsage. + Reported by John Levon . + + * sysdeps/unix/sysv/linux/posix_fadvise.c: New file. + * sysdeps/unix/sysv/linux/syscalls.list: Add posix_fadvise64 syscall. + * sysdeps/unix/sysv/linux/alpha/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise. + + * libio/putwc_u.c: Use _IO_putwc_unlocked, not _IO_putc_unlocked. + Patch by Moritz Schulte . + +2003-02-05 Jim Meyering + + Fix a heap-corrupting bug. + * io/ftw.c: Include . + (PATH_MAX) [!defined PATH_MAX]: Define to 1024. + (process_entry): Allocate enough space to hold the resulting + file name. Don't presume that 2*dirbufsize is enough. + (ftw_startup): Always use PATH_MAX to compute buffer size, now that + it is guaranteed to be defined. + +2003-02-04 Ulrich Drepper + + * iconvdata/Makefile: Add rules to build and run bug-iconv3. + * iconvdata/bug-iconv3.c: New file. + +2003-02-04 Martin Schwidefsky + + * sysdeps/unix/sysv/linux/s390/system.c: New file. + +2003-02-03 Jakub Jelinek + + * sysdeps/sparc/sparc32/elf/configure.in (BROKEN_SPARC_WDISP22): New + check. + * config.h.in (BROKEN_SPARC_WDISP22): Add. + +2003-02-03 Ulrich Drepper + + * sysdeps/i386/i686/memmove.S: New file. + +2003-01-31 Steven Munroe + + * sysdeps/unix/sysv/linux/powerpc/powerpc64/fe_nomask.c: + Include kernel-features.h + * sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S: Likewise. + +2003-02-02 Jakub Jelinek + + * elf/tls-macros.h [sparc] (TLS_LD, TLS_GD): Add "cc" clobbers. + +2003-01-25 Jim Meyering + + * io/ftw.c (object_compare): Compare inode numbers before device + numbers, since the former are much more likely to differ. + +2003-02-01 Ulrich Drepper + + * time/tzfile.c (__tzfile_compute): Change return value type to + void. Adjust return statements. + * include/time.h (__tzfile_compute): Adjust prototype. + +2003-02-01 Jim Meyering + + * time/tzset.c (__tz_convert): Remove dead code; __tzfile_compute + always returns 1. + +2003-01-31 Steven Munroe + + * sysdeps/unix/sysv/linux/powerpc/powerpc64/fe_nomask.c + [!__ASSUME_NEW_PRCTL_SYSCALL]: Noop prctl syscall and set ENOSYS. + +2003-01-31 Steven Munroe + + * sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S + [!__ASSUME_NEW_RT_SIGRETURN_SYSCALL]: Generate ENOSYS stub. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S + [!__ASSUME_NEW_RT_SIGRETURN_SYSCALL]: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S + [!__ASSUME_NEW_RT_SIGRETURN_SYSCALL]: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S + [!__ASSUME_NEW_RT_SIGRETURN_SYSCALL]: Likewise. + +2003-01-31 Steven Munroe + + * sysdeps/unix/sysv/linux/configure.in: Change arch_minimum_kernel + back to 2.4.19 for powerpc64. + * sysdeps/unix/sysv/linux/kernel-features.h + (__ASSUME_NEW_PRCTL_SYSCALL): Define for powerpc64. + (__ASSUME_NEW_RT_SIGRETURN_SYSCALL): Define for powerpc64. + +2003-02-01 Ulrich Drepper + + * wcsmbs/wcscpy.c (wcscpy): Add alternative implementation for + platforms with strange alignment requirements on wchar_t. + +2003-01-31 Andreas Schwab + + * sysdeps/unix/sysv/linux/alpha/syscalls.list: Remove __GI_* + aliases, already added by make-syscalls.sh. + * sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/hppa/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/x86_64/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/syscalls.list: Likewise. + * sysdeps/unix/inet/syscalls.list: Likewise. + * sysdeps/unix/syscalls.list: Likewise. + +2003-01-31 Andreas Schwab + + * sysdeps/m68k/Makefile (sysdep-CFLAGS): Don't define, not needed + any more. + +2003-01-30 Jakub Jelinek + + * sysdeps/unix/sysv/linux/s390/s390-64/clone.S (__clone): Use lg, + not l to load tls from stack. + +2003-01-30 Roland McGrath + + * sysdeps/generic/dl-tls.c (_dl_allocate_tls_init): Move check for + null argument before all else. + Reported by Martin Schwidefsky . + +2003-01-30 Jakub Jelinek + + * sysdeps/powerpc/powerpc32/dl-machine.h (elf_machine_lazy_rel): + Move to RESOLVE protected part of the header. + * sysdeps/powerpc/powerpc64/dl-machine.h (elf_machine_lazy_rel): + Likewise. + +2003-01-30 Ulrich Drepper + + * stdio-common/Makefile (tests): Add bug15. + (bug15-ENV): Define. + * stdio-common/bug15.c: New file. + +2002-10-07 Wolfram Gloger + + * malloc/malloc.c (sYSMALLOc): Only check for breakage due + to foreign sbrk()'s if arena is contiguous. Bug report from + Bruno Haible . + +2003-01-30 Jakub Jelinek + + * sysdeps/s390/libc-tls.c: Include stdlib.h. + +2003-01-30 Jakub Jelinek + + * stdio-common/vfprintf.c (vfprintf): Only subtract lowest 3 bits of + ps.__count. + +2003-01-30 Ulrich Drepper + + * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: Fix storing and + restoring of %r6. + * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: Likewise. Use + 64-bit load. + Patch by Martin Schwidefsky . + +2003-01-30 Jakub Jelinek + + * elf/dl-reloc.c (CHECK_STATIC_TLS): Move _dl_signal_error... + (allocate_static_tls): ...here. Add __attribute_noinline__. + Don't return on failure. + (_dl_reloc_bad_type): Add __attribute_noinline__. + * elf/do-rel.h (elf_dynamic_do_rel): Add + __attribute__((always_inline)). + * elf/dynamic-link.h (elf_machine_rel, elf_machine_rela, + elf_machine_rel_relative, elf_machine_rela_relative, + elf_machine_lazy_rel): Add prototypes with + __attribute__((always_inline)). + +2003-01-29 David Mosberger + + * elf/dl-support.c (_dl_aux_init): Handle AT_SYSINFO. + +2003-01-29 Roland McGrath + + * configure.in: Barf if configured in $srcdir. + +2003-01-28 Steven Munroe + + * sysdeps/unix/sysv/linux/powerpc/powerpc64/fe_nomask.c + (__fe_nomask_env): Change __prctl call to INTERNAL_SYSCALL. + +2003-01-28 Martin Schwidefsky + + * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: Reorder additional + clone parameters to match the order used on ia32. + * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: Likewise. + +2003-01-27 Martin Schwidefsky + + * elf/elf.h: Add new s390 relocs. + * elf/tls-macros.h: Add s390 versions. + * sysdeps/s390/Versions [GLIBC_2.3] (ld): Export __tls_get_offset. + * sysdeps/s390/dl-tls.h: New file. + * sysdeps/s390/libc-tls.c: New file. + * sysdeps/s390/s390-32/dl-machine.h (elf_machine_type_class): Add TLS + relocs for class PLT. + (elf_machine_rela): Handle TLS relocs. + * sysdeps/s390/s390-64/dl-machine.h: Likewise. + * sysdeps/s390/s390-32/elf/configure.in: Add TLS check. + * sysdeps/s390/s390-64/elf/configure.in: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: Add support for + CLONE_CHILD_*TID flags. + * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/mmap.S: Use branch with 32 + bit offset. + * sysdeps/unix/sysv/linux/s390/s390-64/socket.S: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/syscall.S: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S (__syscall_error): + Support USE___THREAD. Define RTLD_PRIVATE_ERRNO variant. + * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S (__syscall_error): + Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: + (SYSCALL_ERROR_LABEL): Move define next to SYSCALL_ERROR_HANDLER. + (SYSCALL_ERROR_HANDLER): Add USE___THREAD and RTLD_PRIVATE_ERRNO + variants. + * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: + (SYSCALL_ERROR_LABEL): Move define next to SYSCALL_ERROR_HANDLER. Use + direct branch to syscall_error for !PIC and PIC && !_LIBC_REENTRANT. + (SYSCALL_ERROR_HANDLER): Add USE___THREAD and RTLD_PRIVATE_ERRNO + variants. + +2003-01-28 Ulrich Drepper + + * sysdeps/unix/common/pause.c (do_pause): New function. Split + from __libc_pause. Implement using sigsuspend. + (__libc_pause): Call do_pause to do the real work. + + * sysdeps/posix/sigpause.c (do_sigpause): Check range of + sig_or_mask parameter is is_sig != 0. + +2003-01-21 Philip Blundell + + * sysdeps/unix/sysv/linux/bits/ioctls.h (SIOCSIFNAME): Define. + +2003-01-27 Steven Munroe + + * stdio-common/Makefile: Add bug14-ENV to set LOCPATH for make check. + +2003-01-27 Ulrich Drepper + + * stdio-common/bug14.c: Use official name for the locale. + + * stdio-common/vfprintf.c [USE_IN_LIBIO]: Use _IO_cleanup_region_start + instead of __libc_cleanup_region_start and _IO_cleanup_region_end + instead of __libc_cleanup_region_end. + + * sysdeps/unix/sysv/linux/i386/system.c (CLEANUP_HANDLER): Pass 1 + as first parameter to __libc_cleanup_region_start. + + * sysdeps/unix/sysv/linux/powerpc/powerpc64/fe_nomask.c + (__fe_nomask_env): Use __prctl not prctl. + * sysdeps/unix/sysv/linux/syscalls.list: Add __prctl alias for + prctl syscall. + + * elf/dl-reloc.c (CHECK_STATIC_TLS): Improve error message. + + * elf/dl-open.c (_dl_tls_static_size): Bump to 2048. + + * elf/dl-reloc.c (allocate_static_tls): Avoid arithmetic + wrap-around in test. + +2003-01-26 Andreas Schwab + + * sysdeps/wordsize-32/divdi3.c: Export the functions only as + compatibility symbols. Remove INTDEF for __divdi3. + * sysdeps/wordsize-32/lldiv.c: Don't use __divdi3_internal. + * sysdeps/powerpc/powerpc32/divdi3.c: Remove. + * sysdeps/powerpc/powerpc32/Makefile (CPPFLAGS-divdi3.c): Don't + define. + * sysdeps/powerpc/powerpc32/Dist: Remove divdi3.c. + +2003-01-24 Jakub Jelinek + + * elf/tls-macros.h: Add SPARC 32-bit definitions. + * sysdeps/sparc/sparc32/elf/configure.in: Add TLS check. + * sysdeps/sparc/sparc32/dl-machine.h: Add dl_machine_h guards + for the first half of the header. Include tls.h. + (elf_machine_type_class): Return ELF_RTYPE_CLASS_PLT for TLS + relocs too. + (elf_machine_rela): Handle TLS relocs. + * sysdeps/sparc/dl-tls.h: New file. + + * sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Add cancellation + support. + + * sysdeps/sparc/sparc32/sparcv9/hp-timing.h: Use %g6 instead of %g7. + * sysdeps/sparc/sparc32/memchr.S: Likewise. + * sysdeps/sparc/sparc32/memcpy.S: Likewise. + * sysdeps/sparc/sparc32/strcat.S: Likewise. + * sysdeps/sparc/sparc32/strchr.S: Likewise. + * sysdeps/sparc/sparc32/strcmp.S: Likewise. + * sysdeps/sparc/sparc32/strcpy.S: Likewise. + * sysdeps/sparc/sparc64/sparcv9b/memcpy.S: Likewise. + * sysdeps/sparc/sparc64/hp-timing.h: Likewise. + * sysdeps/sparc/sparc64/memcpy.S: Likewise. + * sysdeps/sparc/sparc64/stpcpy.S: Likewise. + * sysdeps/sparc/sparc64/stpncpy.S: Likewise. + * sysdeps/sparc/sparc64/strcat.S: Likewise. + * sysdeps/sparc/sparc64/strchr.S: Likewise. + * sysdeps/sparc/sparc64/strcmp.S: Likewise. + * sysdeps/sparc/sparc64/strcpy.S: Likewise. + * sysdeps/sparc/sparc64/strncmp.S: Likewise. + * sysdeps/sparc/sparc64/strncpy.S: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise. + +2003-01-24 Andreas Schwab + + * elf/dl-close.c (_dl_close): Don't relocate DT_FINI_ARRAY + elements, and process them backwards. + * elf/Makefile ($(objpfx)tst-array4): New target. + ($(objpfx)tst-array4.out): Likewise. + (tests) [$(have-initfini-array) = yes]: Add tst-array4. + * elf/tst-array4.c: New file. + * elf/tst-array4.exp: Likewise. + +2003-01-24 Steven Munroe + + * sysdeps/unix/sysv/linux/powerpc/powerpc64/fe_nomask.c: New file. + +2003-01-27 Guido Guenther + + * sysdeps/unix/sysv/linux/mips/sysdep.h (SYSCALL_ERROR_LABEL): Define. + * sysdeps/unix/sysv/linux/mips/pread.c: Add support for + cancellation handling and handle both __NR_pread64 and __NR_pread. + * sysdeps/unix/sysv/linux/mips/pread64.c: Likewise. + * sysdeps/unix/sysv/linux/mips/pwrite.c: Add support for + cancellation handling and handle both __NR_pwrite64 and __NR_pwrite. + * sysdeps/unix/sysv/linux/mips/pwrite64.c: Likewise. + * sysdeps/unix/mips/sysdep.S: Don't set errno in the _LIBC_REENTRANT + case, use register names consistently. + +2003-01-27 Wolfram Gloger + + * malloc/hooks.c (mem2chunk_check): Check alignment of mem + pointer, not of the computed chunk. Bug report from Carlos + O'Donell . + +2003-01-25 Andreas Schwab + + * sysdeps/m68k/dl-machine.h (_dl_start_user): Use pc-relative + addressing to save GOT entries. + +2003-01-21 Jakub Jelinek + + * sysdeps/unix/alpha/sysdep.h (inline_syscall0, + inline_syscall1, inline_syscall2, inline_syscall3, + inline_syscall4, inline_syscall5, inline_syscall6): Add __volatile__. + * sysdeps/unix/sysv/linux/alpha/sysdep.h (INTERNAL_SYSCALL): Add + __attribute__((unused)) to ChEcK. + +2003-01-20 Martin Schwidefsky + + * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h (INTERNAL_SYSCALL): + Fix inline assembler constraints. + * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h (INTERNAL_SYSCALL): + Likewise. + + * sysdeps/s390/s390-64/Makefile (pic-ccflag): Use -fpic instead of + -fPIC. + +2003-01-20 Segher Boessenkool + + * sysdeps/ieee754/dbl-64/sincos32.c (__mpcos): Really + compute the cosine, not the sine, even if x > 0.8. + +2003-01-19 Ulrich Drepper + + * nis/nss_nis/nis-spwd.c: Make _nss_nis_endspent an alias of + _nss_nis_setspent. Work around the different prototypes. + * nis/nss_nis/nis-rpc.c (internal_nis_setrpcent): Use + internal_nis_endrpcent. + (internal_nis_endrpcent): Change return type to void. Change callers. + * nis/nss_nis/nis-pwd.c: Make _nss_nis_endpwent an alias of + _nss_nis_setpwent. Work around the different prototypes. + * nis/nss_nis/nis-proto.c (_nss_nis_endprotoent): Split out body + of the function to... + (internal_nis_endprotoent): ... here. New function. + (internal_nis_setprotoent): Use internal_nis_endprotoent. + * nis/nss_nis/nis-network.c: Make _nss_nis_endnetent an alias of + _nss_nis_setnetent. Work around the different prototypes. + * nis/nss_nis/nis-netgrp.c (_nss_nis_endnetgrent): Split out body + of the function to... + (internal_nis_endnetgrent): ... here. New function. + (_nss_nis_setnetgrent): Use internal_nis_endnetgrent. + +2003-01-19 Jim Meyering + + * time/strftime.c: (widen): Merge nearly-identical definitions. + (nl_get_alt_digit) [! defined my_strftime]: Define. + (my_strftime) [_NL_CURRENT]: Merge nearly-identical uses of + _nl_get_alt_digit and _nl_get_walt_digit. + +2003-01-19 Ulrich Drepper + + * time/strftime.c (my_strftime): Handle very large width + specifications for numeric values correctly. Improve checks for + overflow. + * time/Makefile (tests): Add tst-strftime. + * time/tst-strftime.c: New file. + +2003-01-18 Ulrich Drepper + + * nis/nss_nis/nis-hosts.c: Make _nss_nis_endhostent an alias of + _nss_nis_sethostent. Work around the different prototypes. + * nis/nss_nis/nis-grp.c: Make _nss_nis_endgrent an alias of + _nss_nis_setgrent. Work around the different prototypes. + * nis/nss_nis/nis-ethers.c (internal_nis_endetherent): New + function. Split out from _nss_nis_endetherent. + (internal_nis_setetherent): Use internal_nis_endetherent instead of + duplicating the code. + * nis/nss_nis/nis-alias.c: Make _nss_nss_nis_endaliasent an alias + of _nss_nis_setaliasent. + * nis/nss_nis/nis-service.c (internal_nis_setservent): Reuse + internal_nis_endservent code, don't duplicate it. + + * inet/rexec.c (rexec_af): Protect socket operations with + TEMP_FAILURE_RETRY. Use writev instead of multiple write. + * inet/rcmd.c (rcmd_af): Likewise. + +2003-01-17 Roland McGrath + + * math/libm-test.inc (sin_test, cos_test, sincos_test) [TEST_DOUBLE]: + Add test of value 0.80190127184058835. + + * elf/dl-open.c: Fix typo ifdef -> ifndef on _dl_tls_static_size defn. + +2003-01-17 Richard Henderson + + * sysdeps/alpha/dl-machine.h (elf_machine_type_class): Add TLS + relocs for class PLT. + * sysdeps/alpha/libc-tls.c: New file. + * sysdeps/unix/alpha/sysdep.S (EPILOGUE, GPSAVEREG): New. + (LOADGP) [!PIC]: Rewrite to preserve caller's gp. + +2003-01-17 Jakub Jelinek + + * sysdeps/unix/sysv/linux/ia64/dl-static.c (_dl_static_init): Use + __libc_lock_{,un}lock_recursive instead of __libc_lock_{,un}lock + on _dl_static_lock. + +2003-01-17 Andreas Jaeger + + * stdio-common/bug14.c: Include stdlib.h for exit prototype. + +2003-01-16 Steven Munroe + + * sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S: New file. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S: New file. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S: New file. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S: New file. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.h: New file. + * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h: New file. + * sysdeps/unix/sysv/linux/configure.in: Minimum kernel for PPC64 + is 2.4.21. + +2003-01-16 Ulrich Drepper + + * sysdeps/generic/glob.c (glob): Assume sysconf() always returns + values != -1 for _LIBC. Use extend_alloca to reallocate alloca'ed + buffers. + + * sysdeps/generic/sysconf.c: Unconditionally implement + _SC_GETPW_R_SIZE_MAX and _SC_GETGR_R_SIZE_MAX. + * sysdeps/posix/sysconf.c: Likewise. + +2003-01-16 Jakub Jelinek + + * posix/regcomp.c (parse_bracket_exp): If build_charclass fails, + set *err to the returned error, not to REG_ESPACE unconditionally. + (build_word_op): Likewise. + * posix/Makefile (tests): Add bug-regex16. + * posix/bug-regex16.c: New test. + +2003-01-16 Jakub Jelinek + + * elf/dl-load.c (_dl_map_object_from_fd): Use + GL(dl_tls_dtv_slotinfo_list) != NULL to check whether TLS has + been already initialized. + +2003-01-15 Dmitry V. Levin + + * sysdeps/unix/sysv/linux/ptsname.c: Fix typo in comment. + +2003-01-16 Jakub Jelinek + + * posix/regcomp.c (re_compile_internal): If clearing buffer, clear + allocated too. Reported by Al Viro . + +2003-01-16 Roland McGrath + + Tweak merged .abilist file format to merge duplicate symbols in + different sets into multi-version stanzas with new "| SET regexp..." + header continuation lines. + * scripts/merge-abilist.awk: Rewritten for new format. + * scripts/extract-abilist.awk: Likewise. + +2003-01-15 Ulrich Drepper + + * nscd/connections.c (nscd_run): Remove bogus return which isn't + necessary with gcc 3.2+. + (nscd_init): Don't use error() to print message, use dbg_log. + + * iconv/gconv_simple.c (STORE_REST): Explicitly store the total + expected size into state. + (UNPACK_BYTES): Do the reverse. + * iconv/loop.c: Use CLEAR_STATE if defined to clear __state element. + * wcsmbs/tst-mbrtowc.c (utf8_test_1): Add test for the bug. + Reported by Al Viro . + + * stdio-common/Makefile (tests): Add bug14. + * stdio-common/bug14.c: New file. + + * stdio-common/vfscanf.c: When recognizing multibyte characters in + string reset the byte counter after mbrtowc reported it is not a + partial character. Reported by Al Viro . + +2003-01-15 Steven Munroe + + * sysdeps/unix/sysv/linux/powerpc/powerpc64/socket.S: Include + sysdep-cancel.h, not sysdep.h. + +2003-01-15 Ulrich Drepper + + * nscd/connections.c (nscd_run): Protect accept call with + TEMP_FAILURE_RETRY. + +2003-01-15 Andreas Schwab + + * sysdeps/unix/Makefile: Include $(common-objpfx)s-proto-bp.d. + (common-generated): Add s-proto-bp.d. + * sysdeps/unix/make-syscalls.sh: Use s-proto-bp.d for dependencies + of bp thunks. + * sysdeps/unix/s-proto-bp.S: New file. + * sysdeps/generic/bp-thunks.h: Don't include here. + Use instead of . + * sysdeps/unix/sysv/linux/i386/bp-thunks.h: New file. + +2003-01-15 Roland McGrath + + * Makerules: Use -include for tls.make, suppresses warning. + Move gen-as-const-headers rules up so before-compile is set in time. + (sed-remove-dotdot): Fix to work right for subdirs or top dir. + +2003-01-15 Ulrich Drepper + + * nscd/nscd.c (main): Make code to close all file descriptors + faster and more robust. + + * nscd/nscd_getpw_r.c (nscd_getpw_r): Consolidate writing of the + request with one writev call. Protect all read calls with + TEMP_FAILURE_RETRY. + * nscd/nscd_getgr_r.c (nscd_getgr_r): Likewise. + * nscd/nscd_gethst_r.c (nscd_gethst_r): Likewise. + + * nscd/hstcache.c: Use extend_alloca to reallocate alloca'd buffer. + Protect writev calls with TEMP_FAILURE_RETRY. + * nscd/grpcache.c: Likewise. + * nscd/pwdcache.c: Likewise. + + * nscd/hstcache.c (addhstbynamev6): Don't interpret hostname as + IPv6 address in debug output. + +2003-01-14 Roland McGrath + + * Makerules (check-abi-%): Use two rules for $(common-objpfx) and + $(objpfx) directories, and get rid of vpath directives. The previous + arrangement resulted in files being written to the source directories + when run in a clean build. Find all .abilist files in $(..)abilist/. + (update-abi-%): Likewise. + (generated): Don't add .symlist files, they'll be intermediates. + + * sysdeps/generic/init-first.c: Add a comment. + + * elf/Makefile ($(objpfx)ld.so): Pass -z defs in link. + + * scripts/gen-as-const.awk: Grok lone "--" as a separator between + #includes and expressions. + + * scripts/merge-abilist.awk: Omit cpu-.*-os.*/modifier from merged + config list when it already contains cpu-.*-os.* without / part. + + * Makerules (sed-remove-dotdot): New variable. + ($(common-objpfx)%.make): Use it. Depend on $(before-compile). + ($(common-objpfx)%.h $(common-objpfx)%.h.d): Likewise. + (check-abi-config): New variable, append /tls or /notls to the tuple. + (check-abi-%): Use that for -v config value. + Find .abilist files in abilist/libfoo.abilist, not in subdir. + * Rules: Move bits/stdio_lim.h generation rules to Makerules. + +2003-01-14 Ulrich Drepper + + * manual/install.texi: Correct description of header preparation for + Linux build. Patch by mhwood@Ameritech.Net [PR libc/4941]. + +2003-01-14 Guido Guenther + + * sysdeps/unix/sysv/linux/mips/sysdep.h (INTERNAL_SYSCALL, + INTERNAL_SYSCALL_DECL, INTERNAL_SYSCALL_ERRNO, + INTERNAL_SYSCALL_ERROR_P, INLINE_SYSCALL): Define. + +2003-01-14 Steven Munroe + + * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h + (INTERNAL_SYSCALL): Make use of ERR parameter. + (INTERNAL_SYSCALL_DECL, INTERNAL_SYSCALL_ERRNO, + INTERNAL_SYSCALL_ERROR_P): Adjust accordingly. + (INLINE_SYSCALL): Make use of INTERNAL_SYSCALL. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: New file. + +2003-01-14 Ulrich Drepper + + * sunrpc/pm_getport.c (pmap_getport): Open TCP socket if protocol + == IPPROTO_TCP. + Patch by James Strandboge [PR libc/4943]. + + * sysdeps/unix/sysv/linux/i386/dl-procinfo.c (_dl_x86_cap_flags): + Fix entry for bit 31. + + * iconvdata/Makefile: Add rules to build IBM866NAV. + * iconvdata/ibm866nav.c: New file. + * iconvdata/tst-tables.sh: Add IBM866NAV. + * iconvdata/gconv-modules: Add entries for IBM866NAV. + +2003-01-13 Ulrich Drepper + + * string/tester.c (test_strcpy): Use the previously #if 0'ed code + to test void* parameters. + + * sysdeps/i386/i486/bits/string.h (__STRING_SMALLL_GET16): Cast + source pointer before dereferencing. + (__STRING_SMALLL_GET32): Likewise. + (__memset_gc): Add missing parenthesis around macro arguments. + Patch by Denis Zaitsev . + + * sysdeps/i386/i486/bits/string.h (__strspn_cg): Tell the compiler + that %eax is modified. Reported by Denis Zaitsev . + +2003-01-14 Jakub Jelinek + + * sysdeps/unix/alpha/sysdep.h (INLINE_SYSCALL): Undefined before + defining. + +2003-01-13 Martin Schwidefsky + + * sysdeps/s390/s390-64/initfini.c: Avoid unterminated string literals. + * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h (L): Don't define it + here. + * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h (L): Likewise. + +2003-01-13 Martin Schwidefsky + + * sysdeps/s390/s390-32/sysdep.h (JUMPTARGET): Move branch instructions + from here... + (PSEUDO): ... to here. + * sysdeps/s390/s390-64/sysdep.h (JUMPTARGET): Move branch instruction + from here... + (PSEUDO): ... to here. + +2003-01-13 Ulrich Drepper + + * locale/programs/charmap-dir.c (charmap_readdir): Use struct + dirent64 instead of struct dirent for dirent. Call readdir64 + instead of readdir. + + * locale/programs/locfile.c (siblings_uncached): Use struct + dirent64 instead of struct dirent for other_dentry. Call + readdir64 instead of readdir. + + * elf/ldconfig.c (direntry): Change type to struct dirent64. + (search_dir): Use readdir64 instead of readdir. + Patch by Zhangfan Xing . + +2003-01-12 Roland McGrath + + * hurd/lookup-retry.c (__hurd_file_name_lookup_retry): Use strtoul, + not strtol. The former is usable in ld.so, the latter not. + + * include/fcntl.h: Declare __libc_creat. + + * sysdeps/mach/hurd/Makefile (libmachuser-link.so-no-z-defs, + libhurduser-link.so-no-z-defs): New variables. + + * malloc/malloc.c: Revert last change. + * malloc/malloc.h (_int_*): Move these decls to ... + * include/malloc.h: ... here. Add attribute_hidden. + (_int_valloc): Declare it too. + +2003-01-12 Ulrich Drepper + + * elf/dl-close.c (_dl_close): Fix typo, must be == not = in + search for removed searchlist. Reported by Roland McGrath. + + * io/ftwtest-sh: Add test for case of symlink to nonexisting file + given as start file. + + * io/ftw.c (ftw_startup): Use correct name in check for symlink + without existing target. Patch by Jim Meyering. + + * Makerules (build-shlib-helper): Don't use -z defs linker option + if no-z-defs is defined either. + +2003-01-10 Martin Schwidefsky + + * sysdeps/unix/sysv/linux/s390/s390-64/kernel_stat.h: Remove unused + file. + +2003-01-10 Martin Schwidefsky + + * sysdeps/unix/sysv/linux/s390/s390-32/syscalls.list: Add vfork. + * sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list: Likewise. + +2003-01-12 Ulrich Drepper + + * io/ftwtest-sh: Add test case for relative path with /. at the end. + +2003-01-12 Jim Meyering + + * io/ftw.c (ftw_startup): When trying to stat the starting directory, + use the basename if we've already chdir'd into its parent directory. + +2003-01-12 Ulrich Drepper + + * io/ftw.c (process_entry): Use relative path when using chdir() + to change directory after call to ftw_dir. + * io/ftwtest-sh: Add test for relative path argument to nftw() + with FTW_CHDIR option. + +2002-01-12 Franz Sirl + + * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_VFORK_SYSCALL): + Define for powerpc. + * sysdeps/unix/sysv/linux/powerpc/syscall.S: Take register alignment + into account. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h + (INTERNAL_SYSCALL): Make use of ERR parameter. + (INTERNAL_SYSCALL_DECL, INTERNAL_SYSCALL_ERRNO, + INTERNAL_SYSCALL_ERROR_P): Adjust accordingly. + (INLINE_SYSCALL): Make use of INTERNAL_SYSCALL. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: New file. + +2002-01-09 Richard Henderson + + * sysdeps/alpha/dl-machine.h (elf_machine_rela): Compute + DTPREL64 and TPREL64 without loadbase applied. + +2002-01-09 Richard Henderson + + * sysdeps/unix/alpha/sysdep.S: Use correct definition of errno + for NOT_IN_libc. + + * sysdeps/unix/sysv/linux/alpha/sysdep.h: Move inline syscall bits... + * sysdeps/unix/alpha/sysdep.h: ... here. + (PSEUDO_LOADGP): Remove. + (PSEUDO_PROLOGUE): Load GP in non-pic case. + (SYSCALL_ERROR_LABEL): New. + (PSEUDO): Use it in error branch. + (PSEUDO_END): Add $syscall_error label. + +2003-01-12 Andreas Jaeger + + * math/bits/mathcalls.h: Round is a const function. + +2003-01-11 Jim Meyering + + * io/ftw.c [HAVE_CONFIG_H]: Include . + [HAVE_SYS_PARAM_H || _LIBC]: Guard inclusion of . + Include , not , if !_LIBC. + [!_LIBC] (__chdir, __closedir, __fchdir, __getcwd, __opendir): Define. + [!_LIBC] (__readdir64, __tdestroy, __tfind, __tsearch): Define. + [!_LIBC] (internal_function, dirent64, MAX): Define. + (__set_errno): Define if not already defined. + (open_dir_stream): When FTW_CHDIR is enabled, invoke opendir on + the basename, not the entire file name. + (process_entry): When FTW_CHDIR is enabled, invoke XSTAT or LXSTAT on + the basename, not the entire file name. + +2003-01-12 Ulrich Drepper + + * string/tester.c (test_strcpy): Disable last added strcpy until + it is fixed. + +2003-01-11 Philip Blundell + + * sysdeps/unix/sysv/linux/arm/socket.S: Add cancellation support. + +2003-01-11 Andreas Schwab + + * Makerules: Add vpath for %.dynsym and %.so so that the + implicit rule chaining for check-abi works. + +2003-01-11 Kaz Kojima + + * sysdeps/unix/sysv/linux/sh/sysdep.h (SYSCALL_ERROR_HANDLER): + Add non-PIC case. + +2003-01-11 Jakub Jelinek + + * elf/tls-macros.h [__ia64__] (__TLS_CALL_CLOBBERS): Define. + [__ia64__] (TLS_LE, TLS_IE): Fix typos. Add ;; at start of asm if + gp is used early. + [__ia64__] (TLS_LD, TLS_GD): Likewise. Use __TLS_CALL_CLOBBERS. + * elf/Makefile ($(objpfx)tst-tlsmod5.so, $(objpfx)tst-tlsmod6.so): + Ensure libc.so in DT_NEEDED. + * sysdeps/alpha/dl-machine.h (elf_machine_rela): Move + CHECK_STATIC_TLS before l_tls_offset use. + * sysdeps/i386/dl-machine.h (elf_machine_rel, elf_machine_rela): + Likewise. + * sysdeps/sh/dl-machine.h (elf_machine_rela): Likewise. + * sysdeps/generic/dl-tls.c (_dl_allocate_tls_storage) [TLS_DTV_AT_TP]: + Allocate TLS_PRE_TCB_SIZE bytes below result. + (_dl_deallocate_tls) [TLS_DTV_AT_TP]: Adjust before freeing. + * sysdeps/generic/libc-tls.c (__libc_setup_tls): If + TLS_INIT_TP_EXPENSIVE is not defined, allocate even if no PT_TLS + segment has been found. If TLS_DTV_AT_TP, allocate TLS_PRE_TCB_SIZE + bytes below result and add tcb_offset to memsz. + * sysdeps/ia64/dl-tls.h (__tls_get_addr): New prototype. + * sysdeps/ia64/dl-machine.h: Include tls.h. + (elf_machine_type_class): Return ELF_RTYPE_CLASS_PLT for TLS relocs + too. + (elf_machine_rela): Assume if sym_map != NULL sym is non-NULL too. + Handle R_IA64_DTPMOD*, R_IA64_DTPREL* and R_IA64_TPREL* relocations. + * sysdeps/ia64/libc-tls.c: New file. + +2003-01-10 Steven Munroe + + * sysdeps/powerpc/powerpc64/sysdep.h (PSEUDO_RET): Add branch hit. + * sysdeps/unix/sysv/linux/powerpc/bits/stat.h (STAT_VER_LINUX): + Fix type. Move definition out of #if. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/ftruncate64.c: New file. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c: New file. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/pread64.c: New file. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c: New file. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite64.c: New file. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/socket.S: Add cancellation + support. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list: Remove + ftruncate64, pread64, pwrite64, truncate64 entries. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h + (INLINE_SYSCALL): New version that supports function call like + syscalls. Add __builtin_expect. + (LOADARGS_n): Add argument size safety checks. + (INTERNAL_SYSCALL): New Macro. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/truncate64.c: New file. + * sysdeps/unix/sysv/linux/powerpc/sys/procfs.h [__PPC_ELF_H]: Avoid + redefinition of elf_fpreg_t and elf_fpregset_t. + +2003-01-12 Ulrich Drepper + + * elf/dl-close.c (_dl_close): Add several asserts. Correct and + simplify test for unloading. If loader of a DSO is unloaded do not + use its scope anymore. Fall back to own scope and adjust opencounts. + Fix several comments. + * elf/dl-deps.c (_dl_map_object_deps): Always allocate memory for + the l_searchlist, not only for l_initfini. + + * elf/dl-lookup.c (add_dependencies): Avoid creating relocation + dependencies if objects cannot be removed. Remove object with the + definition as not unloadable if necessary. + + * elf/reldep6.c: Create relocation dependency before closing the first + module. + +2003-01-10 Guido Günther + + * sysdeps/unix/mips/fork.S: Add PSEUDO_END. + * sysdeps/unix/mips/brk.S: Likewise. + * sysdeps/unix/mips/pipe.S: Likewise. + +2003-01-10 Andreas Schwab + + * sysdeps/unix/sysv/linux/m68k/getsysstats.c: New file. + + * sysdeps/unix/sysv/linux/m68k/vfork.S: Optimize for kernels which + are known to have the vfork syscall. + + * sysdeps/m68k/sysdep.h (JUMPTARGET): Undefine before defining it. + + * sysdeps/unix/sysv/linux/kernel-features.h + (__ASSUME_MMAP2_SYSCALL, __ASSUME_TRUNCATE64_SYSCALL) + (__ASSUME_STAT64_SYSCALL, __ASSUME_FCNTL64) + (__ASSUME_VFORK_SYSCALL): Define for m68k kernels >= 2.4.12. + +2003-01-09 Jakub Jelinek + + * elf/Makefile: Add rules to build and run reldep9 test. + * elf/reldep9.c: New file. + * elf/reldep9mod1.c: New file. + * elf/reldep9mod2.c: New file. + * elf/reldep9mod3.c: New file. + +2003-01-09 Jakub Jelinek + + * elf/Makefile: Add rules to build and run nodelete2 test. + * elf/nodelete2.c: New file. + * elf/nodel2mod1.c: New file. + * elf/nodel2mod2.c: New file. + * elf/nodel2mod3.c: New file. + +2003-01-09 Jakub Jelinek + + * posix/test-vfork.c (noop): Add __attribute_noinline__. + * sysdeps/generic/sysdep.h (JUMPTARGET): Define if not defined. + * sysdeps/i386/sysdep.h (JUMPTARGET): Undefine JUMPTARGET before + defining it. + * sysdeps/powerpc/powerpc32/sysdep.h (JUMPTARGET): Likewise. + * sysdeps/powerpc/powerpc64/sysdep.h (JUMPTARGET): Likewise. + * sysdeps/s390/s390-32/sysdep.h (JUMPTARGET): Likewise. + * sysdeps/s390/s390-64/sysdep.h (JUMPTARGET): Likewise. + * sysdeps/x86_64/sysdep.h (JUMPTARGET): Likewise. + +2003-01-09 Andreas Schwab + + * sysdeps/m68k/fpu/libm-test-ulps: Regenerated. + +2003-01-08 Ulrich Drepper + + * sysdeps/unix/sysv/linux/arm/sysdep.h (INTERNAL_SYSCALL, + INTERNAL_SYSCALL_ERROR_P, INTERNAL_SYSCALL_ERRNO): Add err + argument. + (INTERNAL_SYSCALL_DECL): Define. + +2003-01-06 Jakub Jelinek + + * sysdeps/unix/sysv/linux/ia64/sysdep.h (INTERNAL_SYSCALL, + INTERNAL_SYSCALL_ERROR_P, INTERNAL_SYSCALL_ERRNO): Add err + argument. + (INTERNAL_SYSCALL_DECL): Define. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/sysdep.h: Likewise. + * sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise. + (INLINE_SYSCALL): Adjust. + * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Likewise. + * sysdeps/unix/sysv/linux/m68k/sysdep.h: Likewise. + * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise. + * elf/dl-misc.c (_dl_debug_vdprintf): Add INTERNAL_SYSCALL_DECL, + add err argument to INTERNAL_SYSCALL* macros. + * sysdeps/unix/sysv/linux/i386/brk.c (__brk): Likewise. + * sysdeps/unix/sysv/linux/i386/system.c (cancel_handler): Likewise. + * sysdeps/unix/sysv/linux/m68k/brk.c (__brk): Likewise. + * sysdeps/unix/sysv/linux/m68k/getpagesize.c (__getpagesize): + Likewise. + * sysdeps/unix/sysv/linux/sigwait.c (do_sigwait): Likewise. + * sysdeps/unix/sysv/linux/i386/sigaction.c (__libc_sigaction): Use + INLINE_SYSCALL instead of INTERNAL_SYSCALL and setting errno. + +2003-01-07 Ulrich Drepper + + Unify symbols in user namespace exported by libc.so and libc.a. + * argp/argp-fmtstream.c: Don't define argp_make_fmtstream, + argp_fmtstream_free, and argp_fmtstream_printf. + * argp/argp-fs-xinl.c: Don't define argp_fmtstream_putc, + argp_fmtstream_puts, argp_fmtstream_write, argp_fmtstream_set_lmargin, + argp_fmtstream_set_rmargin, argp_fmtstream_set_wmargin, and + argp_fmtstream_point. + * gmon/gmon.c: Don't define write_profiling. + * libio/genops.c: Don't define _cleanup. + + * intl/explodename.c (_nl_find_language.c): Mark as static. + * intl/loadinfo.h: Remove _nl_find_language prototype. + + * libio/fileops.c (_IO_file_seekoff_maybe_mmap): Mark as static. + * libio/libioP.h: Remove declaration. + + * libio/iopopen.c (_IO_proc_jumps): Mark as static. + * libio/libioP.h: Remove declaration. + + * sysdeps/generic/unwind-dw2.c: Mark __frame_state_for with STATIC. + * sysdeps/generic/framestate.c: Define STATIC before including + unwind-dw2.c. + + * time/Versions [GLIBC_2.3.2] (libc): Export strptime_l. + +2003-01-06 Philip Blundell + + * sysdeps/unix/arm/sysdep.S (syscall_error): Optimise a little. + [__LIBC_REENTRANT]: Unify PIC and non-PIC cases. + + * sysdeps/unix/sysv/linux/arm/sysdep.h (PSEUDO): Remove .type + directive. + (PSEUDO_RET): Use SYSCALL_ERROR in place of __syscall_error. + (SYSCALL_ERROR): New. + (SYSCALL_ERROR_HANDLER) [NOT_IN_libc]: Provide local copy of error + handling code. + (INTERNAL_SYSCALL): Define. + (INLINE_SYSCALL): Use it. + (INTERNAL_SYSCALL_ERROR_P, INTERNAL_SYSCALL_ERRNO): Define. + * sysdeps/unix/sysv/linux/arm/socket.S (__socket): Use + SYSCALL_ERROR in place of __syscall_error. + +2003-01-07 Jakub Jelinek + + * sysdeps/ia64/bits/byteswap.h [__GNUC__ >= 2] (__bswap_16, + __bswap_32, __bswap_64): Put x into temporary variable + to avoid warnings. + [!__GNUC__] (__bswap_16, __bswap_32, __bswap_64): Change into static + (inline) functions. + * sysdeps/s390/bits/byteswap.h [__GNUC__ >= 2] (__bswap_16, + __bswap_32, __bswap_64): Put x into temporary variable + to avoid warnings. + [!__GNUC__] (__bswap_16, __bswap_32, __bswap_64): Change into static + (inline) functions. + * sysdeps/i386/bits/byteswap.h [!__GNUC__] (__bswap_16, __bswap_32): + Likewise. + +2003-01-07 Jakub Jelinek + + * sysdeps/unix/sysv/linux/alpha/adjtime.c (ntp_adjtime): New weak + alias. + +2003-01-07 Jakub Jelinek + + * elf/rtld.c (_rtld_global): Remove _dl_dynamic_weak initializer. + * elf/dl-support.c (_dl_dynamic_weak): Initialize to 0. + +2003-01-07 Ulrich Drepper + + * math/libm-test.inc (significand_test): New function. + (main): Call it. + +2003-01-06 Roland McGrath + + * sysdeps/i386/i486/bits/string.h (memset): Add parens around macro + arguments. + (memcpy, memrchr, strcpy, __stpcpy, strncpy, strcat): Likewise. + (strcmp, strncat, strncmp, strchr, __strchrnul, strchrnul): Likewise. + (index, strrchr, rindex, strcspn, strspn, strpbrk, strstr): Likewise. + + * string/tester.c (test_strcpy): Add test with `void *' arguments. + +2003-01-06 Ulrich Drepper + + * sysdeps/i386/fpu/s_significandl.c (__significandl): Really + return significand and not the exponent. + Reported by Nelson H. F. Beebe . + + * elf/dl-misc.c (_dl_debug_vdprintf): Help PPC port by explicitly + taking address of iov in INTERNAL_SYSCALL call. Patch by Franz Sirl. + + * malloc/malloc.c: Mark all _int_* functions as static. + +2003-01-06 Jakub Jelinek + + * sysdeps/unix/alpha/sysdep.h (PSEUDO): Use PSEUDO_PREPARE_ARGS. + * sysdeps/unix/sysv/linux/alpha/sigsuspend.S: Add cancellation + handling. + * sysdeps/unix/sysv/linux/alpha/select.S: Likewise. + +2003-01-06 Franz Sirl + + * sysdeps/powerpc/powerpc32/sysdep.h (PSEUDO_RET): Add branch hint. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/socket.S: Add cancellation + support. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list: Remove + ftruncate64, truncate64, pread64 and pwrite64 entries. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h + (INLINE_SYSCALL): Add __builtin_expect. + (LOADARGS_n): Add argument size safety checks. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/ftruncate64.c: New file. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/truncate64.c: New file. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c: New file. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c: New file. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c: New file. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c: New file. + +2003-01-06 Jakub Jelinek + + * sysdeps/generic/sysdep-cancel.h (LIBC_CANCEL_HANDLED): Define. + * sysdeps/generic/creat.c: Include sysdep-cancel.h. + (LIBC_CANCEL_HANDLED): Add. + + * sysdeps/unix/sysv/linux/alpha/sysdep.h + (inline_syscall_r0_constraint): Rename to... + (inline_syscall_r0_out_constraint): ... this. Add =. + (inline_syscall[0-6]): Use inline_syscall_r0_out_constraint. + +2003-01-06 Andreas Schwab + + * sysdeps/m68k/dl-machine.h (elf_machine_runtime_setup): Make + sure this is always inlined. + (elf_machine_rela): Likewise. + + * sysdeps/m68k/Makefile (sysdep-CFLAGS): Increase inline limit. + +2003-01-04 Roland McGrath + + * Makeconfig (+mkdep): Add -MP flag. + Suggested by Art Haas . + +2003-01-05 Andreas Schwab + + * sysdeps/m68k/Makefile (CFLAGS-.oS): Append -fPIC. + +2003-01-05 Kaz Kojima + + * sysdeps/unix/sysv/linux/sh/clone.S (__clone): Use + SYSCALL_ERROR_HANDLER. + * sysdeps/unix/sysv/linux/sh/pipe.S (__libc_pipe): Likewise. + * sysdeps/unix/sysv/linux/sh/socket.S (__socket): Likewise. + Add support for cancellation handling. + * sysdeps/unix/sysv/linux/sh/syscall.S (__syscall): Use + SYSCALL_ERROR_HANDLER. + * sysdeps/unix/sysv/linux/sh/vfork.S (__vfork): Likewise. + * sysdeps/unix/sysv/linux/sh/sysdep.h (PSEUDO): Likewise. + Add support for cancellation handling. + (SYSCALL_ERROR_HANDLER): Define PIC variants. + +2003-01-04 Franz Sirl + + * sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list: Mark + __syscall_pread64 and __syscall_pwrite64 cancelable. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h + (INTERNAL_SYSCALL): New macro. + (LOADARGS_0, LOADARGS_1): Fix. + +2003-01-05 Ulrich Drepper + + * Makerules (build-shlip-helper): Unless told otherwise, add + -Wl,-z,defs to linker command line. + * rt/Makefile (librt.so): Link with ld.so. + * dlfcn/Makefile (libdl.so): Likewise. + +2003-01-05 Jakub Jelinek + + * sysdeps/unix/sysv/linux/s390/s390-32/socket.S: Add support for + cancellation handling. + * sysdeps/unix/sysv/linux/s390/s390-64/socket.S: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/sigsuspend.c: Likewise. + +2003-01-04 Ulrich Drepper + + * sysdeps/unix/sysv/linux/i386/system.c (cancel_handler): Correct + order of parameters passed to kill. + +2003-01-04 Andreas Schwab + + * sysdeps/unix/sysv/linux/m68k/bits/stat.h: Add nanosecond fields. + +2002-01-03 Paul Eggert + + * malloc/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to + (void *) to avoid diagnostic with native c89 on SGI IRIX 6.5 + when compiling Bison 1.875's `bitset bset = obstack_alloc + (bobstack, bytes);'. Problem reported by Nelson H. F. Beebe. + +2003-01-04 Ulrich Drepper + + * sysdeps/posix/system.c (do_system): Minor optimizations. Remove + unnecessary code. + Correct reference counter in case SIGQUIT handler installation failed. + +2003-01-03 Ulrich Drepper + + * include/libc-symbols.h [HAVE_WEAK_SYMBOLS] (_weak_extern): + Define using _Pragma(weak ...). + +2003-01-03 Andreas Jaeger , Jakub Jelinek + + * resolv/res_libc.c: Provide declaration for __res_init_weak and + reorder declarations. + +2003-01-03 Art Haas + + * localedata/tests-mbwc/dat_iswalnum.c: Convert GCC extension + initializer syntax to C99. + * localedata/tests-mbwc/dat_iswalpha.c: Likewise. + * localedata/tests-mbwc/dat_iswcntrl.c: Likewise. + * localedata/tests-mbwc/dat_iswctype.c: Likewise. + * localedata/tests-mbwc/dat_iswdigit.c: Likewise. + * localedata/tests-mbwc/dat_iswgraph.c: Likewise. + * localedata/tests-mbwc/dat_iswlower.c: Likewise. + * localedata/tests-mbwc/dat_iswprint.c: Likewise. + * localedata/tests-mbwc/dat_iswpunct.c: Likewise. + * localedata/tests-mbwc/dat_iswspace.c: Likewise. + * localedata/tests-mbwc/dat_iswupper.c: Likewise. + * localedata/tests-mbwc/dat_iswxdigit.c: Likewise. + * localedata/tests-mbwc/dat_mblen.c: Likewise. + * localedata/tests-mbwc/dat_mbrlen.c: Likewise. + * localedata/tests-mbwc/dat_mbrtowc.c: Likewise. + * localedata/tests-mbwc/dat_mbsrtowcs.c: Likewise. + * localedata/tests-mbwc/dat_mbstowcs.c: Likewise. + * localedata/tests-mbwc/dat_mbtowc.c: Likewise. + * localedata/tests-mbwc/dat_strcoll.c: Likewise. + * localedata/tests-mbwc/dat_strfmon.c: Likewise. + * localedata/tests-mbwc/dat_strxfrm.c: Likewise. + * localedata/tests-mbwc/dat_swscanf.c: Likewise. + * localedata/tests-mbwc/dat_towctrans.c: Likewise. + * localedata/tests-mbwc/dat_towlower.c: Likewise. + * localedata/tests-mbwc/dat_towupper.c: Likewise. + * localedata/tests-mbwc/dat_wcrtomb.c: Likewise. + * localedata/tests-mbwc/dat_wcscat.c: Likewise. + * localedata/tests-mbwc/dat_wcschr.c: Likewise. + * localedata/tests-mbwc/dat_wcscmp.c: Likewise. + * localedata/tests-mbwc/dat_wcscoll.c: Likewise. + * localedata/tests-mbwc/dat_wcscpy.c: Likewise. + * localedata/tests-mbwc/dat_wcscspn.c: Likewise. + * localedata/tests-mbwc/dat_wcslen.c: Likewise. + * localedata/tests-mbwc/dat_wcsncat.c: Likewise. + * localedata/tests-mbwc/dat_wcsncmp.c: Likewise. + * localedata/tests-mbwc/dat_wcsncpy.c: Likewise. + * localedata/tests-mbwc/dat_wcspbrk.c: Likewise. + * localedata/tests-mbwc/dat_wcsrtombs.c: Likewise. + * localedata/tests-mbwc/dat_wcsspn.c: Likewise. + * localedata/tests-mbwc/dat_wcsstr.c: Likewise. + * localedata/tests-mbwc/dat_wcstod.c: Likewise. + * localedata/tests-mbwc/dat_wcstok.c: Likewise. + * localedata/tests-mbwc/dat_wcstombs.c: Likewise. + * localedata/tests-mbwc/dat_wcswidth.c: Likewise. + * localedata/tests-mbwc/dat_wcsxfrm.c: Likewise. + * localedata/tests-mbwc/dat_wctob.c: Likewise. + * localedata/tests-mbwc/dat_wctomb.c: Likewise. + * localedata/tests-mbwc/dat_wctrans.c: Likewise. + * localedata/tests-mbwc/dat_wctype.c: Likewise. + * localedata/tests-mbwc/dat_wcwidth.c: Likewise. + +2003-01-03 Richard Henderson + + * sysdeps/unix/sysv/linux/alpha/sysdep.h (inline_syscall_r0_asm): New. + (inline_syscall_r0_constraint): New. + (inline_syscall[0-6]): Use them. + +2003-01-03 Jakub Jelinek + + * sysdeps/generic/ldsodefs.h (_dl_allocate_tls, _dl_deallocate_tls): + Add rtld_hidden_proto. + * sysdeps/generic/dl-tls.c (_dl_deallocate_tls): Add rtld_hidden_def. + (_dl_allocate_tls): Likewise. Remove INTDEF. + +2002-07-05 Kaz Kojima + + * sysdeps/sh/memcpy.S: Optimize. Based on a patch by Toshiyasu + Morita . + * sysdeps/sh/memcpy.S: Likewise. + +2003-01-02 Ulrich Drepper + + * sysdeps/pthread/aio_suspend.c (aio_suspend): Don't quite remove + any, but unify the test. + +2003-01-02 Jakub Jelinek + + * sysdeps/unix/sysv/linux/arm/sigaction.c (__sigaction, + sigaction): Protect weak_alias and libc_hidden_weak with + #ifndef LIBC_SIGACTION. + * sysdeps/unix/sysv/linux/ia64/sigaction.c (__sigaction, + sigaction): Likewise. + * sysdeps/unix/sysv/linux/mips/sigaction.c (__sigaction, + sigaction): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/sigaction.c (__sigaction, + sigaction): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c (__sigaction, + sigaction): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c (__sigaction, + sigaction): Likewise. + * sysdeps/unix/sysv/linux/x86_64/sigaction.c (__sigaction, + sigaction): Likewise. + * sysdeps/unix/sysv/linux/i386/sigaction.c (__sigaction, + sigaction): Likewise. Remove SIGCANCEL handling here. + * sysdeps/unix/sysv/linux/sigaction.c (__sigaction, sigaction): + Likewise. + +2003-01-02 Art Haas + + * login/tst-utmp.c: Convert GCC extension initializer syntax to C99. + +2003-01-02 Ulrich Drepper + + * posix/getconf.c: Update copyright year. + * nss/getent.c: Likewise. + * nscd/nscd_nischeck.c: Likewise. + * iconv/iconvconfig.c: Likewise. + * iconv/iconv_prog.c: Likewise. + * elf/ldconfig.c: Likewise. + * catgets/gencat.c: Likewise. + * csu/version.c: Likewise. + * elf/ldd.bash.in: Likewise. + * elf/sprof.c (print_version): Likewise. + * locale/programs/locale.c: Likewise. + * locale/programs/localedef.c: Likewise. + * nscd/nscd.c (print_version): Likewise. + * debug/xtrace.sh: Likewise. + * malloc/memusage.sh: Likewise. + * malloc/mtrace.pl: Likewise. + +2003-01-01 Jakub Jelinek + + * io/sys/stat.h: Include time.h with __need_timespec even if + __USE_MISC is defined but __USE_XOPEN is not. + +2003-01-01 Andreas Jaeger + + * resolv/nss_dns/dns-host.c (_nss_dns_gethostbyaddr_r): Use union + type to avoid strict aliasing problem. + (_nss_dns_gethostbyname2_r): Likewise. + * resolv/nss_dns/dns-network.c (_nss_dns_getnetbyaddr_r): Likewise. + (_nss_dns_getnetbyname_r): Likewise. + * resolv/gethnamaddr.c (_gethtent): Likewise. + (gethostbyname2): Likewise. + +2002-12-31 Ulrich Drepper + + * string/string-inlines.c: Define __memcpy_g and __strchr_g macros + to avoid using the exported symbols. Define aliases with the + original names separately. + + * include/time.h: Add libc_hidden_proto for __strftime_l. + * include/wchar.h: Add libc_hidden_proto for __wcsftime_l. + * time/strftime.c: Always use libc_hidden_def if _LIBC. + + * libio/libioP.h: Add libc_hidden_proto for _IO_file_open. + * libio/fileops.c: Add libc_hidden_def for _IO_file_open. + + * malloc/mtrace.c: Add libc_hidden_proto and libc_hidden_def for + tr_break. + + * csu/Makefile (routines): Add dso_handle. + * csu/dso_handle.c: New file. + +2002-12-31 Roland McGrath + + * Makerules (compile.S, COMPILE.S): Remove -DASSEMBLER here. + Use $(S-CPPFLAGS) in place of $(asm-CPPFLAGS). + (S-CPPFLAGS): Add -DASSEMBLER here instead. + (generate-md5, +make-deps): Fix magic to get $(S-CPPFLAGS). + +2002-12-31 Ulrich Drepper + + * malloc/thread-m.h [SHARED] (thread_atfork): Assume __dso_handle + is available. + +2002-12-31 Andreas Jaeger + + * sysdeps/unix/sysv/linux/powerpc/powerpc32/kernel_stat.h: Sync + with Linux kernel. + * sysdeps/unix/sysv/linux/sparc/sparc32/kernel_stat.h: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/kernel_stat.h: Likewise. + * sysdeps/unix/sysv/linux/hppa/kernel_stat.h: Likewise. + + * sysdeps/unix/sysv/linux/kernel_stat.h + (_HAVE_STAT_NSEC,_HAVE_STAT_NSEC64): New. + + * sysdeps/unix/sysv/linux/xstatconv.c (xstat_conv): Re-add + __unused[1-3] since they're needed by some platforms. Handle + _HAVE_STAT_NSEC and _HAVE_STAT_NSEC64. + + * sysdeps/unix/sysv/linux/x86_64/bits/stat.h: Add nsec resolution + for structs stat and stat64. + * sysdeps/unix/sysv/linux/ia64/bits/stat.h: Likewise. + * sysdeps/unix/sysv/linux/powerpc/bits/stat.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/bits/stat.h: Likewise. + * sysdeps/unix/sysv/linux/s390/bits/stat.h: Likewise. + + * io/sys/stat.h [__USE_MISC]: Define __need_timespec for struct stat. + + * sysdeps/unix/sysv/linux/xstatconv.c (xstat_conv): Adjust for + nsec resolution changes. + (xstat64_conv): Likewise. + (xstat32_conv): Likewise. + + * sysdeps/unix/sysv/linux/kernel_stat.h: Add nsec resolution for + struct kernel_stat. + + * sysdeps/unix/sysv/linux/bits/stat.h: Add nsec resolution for + structs stat and stat64. + + * time/time.h (__timespec_defined): Define for __USE_MISC. + +2002-12-31 Ulrich Drepper + + * include/signal.h: Add libc_hidden_proto for __libc_current_sigrtmin + and __libc_current_sigrtmax. + +2002-12-31 Jakub Jelinek + + * include/errno.h (__errno_location): Add prototype. + Use libc_hidden_proto unconditionally. + * include/netdb.h (__h_errno_location): Use libc_hidden_proto + unconditionally. + * include/resolv.h (__res_state): Likewise. + + * hurd/errno-loc.c (__errno_location): Add libc_hidden_def. + * include/sys/socket.h (accept): Add libc_hidden_proto. + * include/errno.h (__errno_location): Likewise. + * include/netdb.h (__h_errno_location): Likewise. + * include/resolv.h (__res_state): Likewise. + * include/unistd.h (__lseek): Likewise. + * sysdeps/generic/errno-loc.c (__errno_location): Add libc_hidden_def. + * sysdeps/generic/herrno-loc.c (__h_errno_location): Likewise. + * sysdeps/generic/res-state.c (__res_state): Likewise. + * sysdeps/generic/accept.c (accept): Likewise. + * sysdeps/generic/lseek.c (__lseek): Likewise. + * sysdeps/generic/allocrtsig.c (__libc_current_sigrtmin, + __libc_current_sigrtmax): Likewise. + * sysdeps/mach/hurd/accept.c (accept): Likewise. + * sysdeps/mach/hurd/lseek.c (__lseek): Likewise. + * sysdeps/unix/sysv/aix/accept.c (accept): Likewise. + * sysdeps/unix/sysv/aix/lseek.c (__lseek): Likewise. + * sysdeps/unix/sysv/linux/accept.S (accept): Likewise. + * sysdeps/unix/inet/syscalls.list (__GI_accept): New alias to accept. + * sysdeps/unix/sysv/linux/alpha/syscalls.list (__GI_accept): Likewise. + * sysdeps/unix/sysv/linux/hppa/syscalls.list (__GI_accept): Likewise. + * sysdeps/unix/sysv/linux/ia64/syscalls.list (__GI___lseek): New + alias to llseek. + (__GI_accept): New alias to accept. + * sysdeps/unix/sysv/linux/mips/syscalls.list (__GI_accept): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (__GI___lseek): + New alias to llseek. + (__GI_accept): New alias to accept. + * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (__GI_accept): + Likewise. + * sysdeps/unix/sysv/linux/x86_64/syscalls.list (__GI_accept): + Likewise. + * sysdeps/unix/syscalls.list (__GI___lseek): New alias to lseek. + + * sysdeps/alpha/setjmp.S : Use libc_hidden_def(name) instead of + strong_alias (name, __GI_name). + * sysdeps/arm/bsd-_setjmp.S : Likewise. + * sysdeps/hppa/bsd-_setjmp.S : Likewise. + * sysdeps/i386/bsd-_setjmp.S : Likewise. + * sysdeps/mips/mips64/bsd-_setjmp.S : Likewise. + * sysdeps/mips/bsd-_setjmp.S : Likewise. + * sysdeps/powerpc/powerpc32/bsd-_setjmp.S : Likewise. + * sysdeps/powerpc/powerpc64/setjmp.S : Likewise. + * sysdeps/s390/s390-32/elf/setjmp.S : Likewise. + * sysdeps/s390/s390-32/bsd-_setjmp.S : Likewise. + * sysdeps/s390/s390-64/elf/setjmp.S : Likewise. + * sysdeps/s390/s390-64/bsd-_setjmp.S : Likewise. + * sysdeps/sh/bsd-_setjmp.S : Likewise. + * sysdeps/sparc/sparc32/setjmp.S : Likewise. + * sysdeps/unix/arm/fork.S : Likewise. + * sysdeps/unix/bsd/hp/m68k/vfork.S : Likewise. + * sysdeps/unix/bsd/i386/vfork.S : Likewise. + * sysdeps/unix/bsd/osf/alpha/fork.S : Likewise. + * sysdeps/unix/bsd/sun/m68k/vfork.S : Likewise. + * sysdeps/unix/bsd/ultrix4/mips/vfork.S : Likewise. + * sysdeps/unix/bsd/vax/vfork.S : Likewise. + * sysdeps/unix/i386/fork.S : Likewise. + * sysdeps/unix/mips/fork.S : Likewise. + * sysdeps/unix/sparc/fork.S : Likewise. + * sysdeps/unix/sparc/vfork.S : Likewise. + * sysdeps/unix/sysv/linux/arm/vfork.S : Likewise. + * sysdeps/unix/sysv/linux/cris/vfork.S : Likewise. + * sysdeps/unix/sysv/linux/i386/vfork.S : Likewise. + * sysdeps/unix/sysv/linux/ia64/fork.S : Likewise. + * sysdeps/unix/sysv/linux/ia64/setjmp.S : Likewise. + * sysdeps/unix/sysv/linux/ia64/vfork.S : Likewise. + * sysdeps/unix/sysv/linux/m68k/vfork.S : Likewise. + * sysdeps/unix/sysv/linux/sh/vfork.S : Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S : Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S : Likewise. + * sysdeps/unix/sysv/linux/sparc/fork.S : Likewise. + * sysdeps/unix/sysv/linux/sparc/vfork.S : Likewise. + * sysdeps/unix/sysv/linux/x86_64/vfork.S : Likewise. + * sysdeps/unix/fork.S : Likewise. + * sysdeps/vax/bsd-_setjmp.S : Likewise. + * sysdeps/x86_64/bsd-_setjmp.S : Likewise. + + * sysdeps/unix/sysv/linux/ia64/sysdep.h: Guard against multiple + inclusion. + +2002-12-31 Ulrich Drepper + + * include/unistd.h: Add libc_hidden_proto for __fork and __vfork. + * sysdeps/generic/fork.c: Add libc_hidden_def for __fork. + * sysdeps/mach/hurd/fork.c: Likewise. + * sysdeps/unix/sysv/aix/fork.c: Likewise. + * sysdeps/unix/fork.S: Add __GI___fork alias. + * sysdeps/unix/arm/fork.S: Likewise. + * sysdeps/unix/bsd/osf/alpha/fork.S: Likewise. + * sysdeps/unix/i386/fork.S: Likewise. + * sysdeps/unix/mips/fork.S: Likewise. + * sysdeps/unix/sparc/fork.S: Likewise. + * sysdeps/unix/sysv/linux/ia64/fork.S: Likewise. + * sysdeps/unix/sysv/linux/sparc/fork.S: Likewise. + * sysdeps/unix/sysv/linux/syscalls.list: Likewise. + * sysdeps/generic/vfork.c: Add libc_hidden_def for __vfork. + * sysdeps/unix/bsd/hp/m68k/vfork.S: Add __GI___vfork alias. + * sysdeps/unix/bsd/i386/vfork.S: Likewise. + * sysdeps/unix/bsd/sun/m68k/vfork.S: Likewise. + * sysdeps/unix/bsd/ultrix4/mips/vfork.S: Likewise. + * sysdeps/unix/bsd/vax/vfork.S: Likewise. + * sysdeps/unix/sparc/vfork.S: Likewise. + * sysdeps/unix/sysv/linux/arm/vfork.S: Likewise. + * sysdeps/unix/sysv/linux/cris/vfork.S: Likewise. + * sysdeps/unix/sysv/linux/i386/vfork.S: Likewise. + * sysdeps/unix/sysv/linux/ia64/vfork.S: Likewise. + * sysdeps/unix/sysv/linux/m68k/vfork.S: Likewise. + * sysdeps/unix/sysv/linux/sh/vfork.S: Likewise. + * sysdeps/unix/sysv/linux/sparc/vfork.S: Likewise. + * sysdeps/unix/sysv/linux/x86_64/vfork.S: Likewise. + + * include/time.h: Add libc_hidden_proto for __nanosleep. + * sysdeps/generic/nanosleep.c: Add libc_hidden_def for __nanosleep. + * sysdeps/mach/nanosleep.c: Likewise. + * sysdeps/unix/sysv/aix/nanosleep.c: Likewise. + * sysdeps/unix/sysv/linux/syscalls.list: Add __GI___nanosleep alias. + + * libio/libioP.h: Add libc_hidden_proto for _IO_list_lock, + _IO_list_unlock, and _IO_list_resetlock. + * libio/genops.c: Add libc_hidden_def for _IO_list_lock, + _IO_list_unlock, and _IO_list_resetlock. + + * libio/libioP.h: Add libc_hidden_proto for _IO_iter_begin, + _IO_iter_end, _IO_iter_next, and _IO_iter_file. + * libio/genops.c: Add libc_hidden_def for _IO_iter_begin, + _IO_iter_end, _IO_iter_next, and _IO_iter_file. + + * include/setjmp.h: Add libc_hidden_proto for __libc_longjmp. + * sysdeps/generic/longjmp.c: Add libc_hidden_def for __longjmp. + * sysdeps/unix/sysv/linux/sparc/sparc64/longjmp.S: Add + __GI___longjmp alias. + + * include/setjmp.h: Add libc_hidden_proto for _setjmp. + * sysdeps/alpha/setjmp.S: Add __GI__setjmp alias. + * sysdeps/arm/bsd-_setjmp.S: Likewise. + * sysdeps/generic/bsd-_setjmp.c: Likewise. + * sysdeps/hppa/bsd-_setjmp.S: Likewise. + * sysdeps/i386/bsd-_setjmp.S: Likewise. + * sysdeps/m68k/bsd-_setjmp.c: Likewise. + * sysdeps/mips/bsd-_setjmp.S: Likewise. + * sysdeps/mips/mips64/bsd-_setjmp.S: Likewise. + * sysdeps/powerpc/powerpc32/bsd-_setjmp.S: Likewise. + * sysdeps/powerpc/powerpc64/setjmp.S: Likewise. + * sysdeps/s390/s390-32/bsd-_setjmp.S: Likewise. + * sysdeps/s390/s390-32/elf/setjmp.S: Likewise. + * sysdeps/s390/s390-64/bsd-_setjmp.S: Likewise. + * sysdeps/s390/s390-64/elf/setjmp.S: Likewise. + * sysdeps/sh/bsd-_setjmp.S: Likewise. + * sysdeps/sparc/sparc32/setjmp.S: Likewise. + * sysdeps/unix/sysv/linux/ia64/setjmp.S: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S: Likewise. + * sysdeps/vax/bsd-_setjmp.S: Likewise. + * sysdeps/x86_64/bsd-_setjmp.S: Likewise. + +2002-12-30 Ulrich Drepper + + * malloc/thread-m.h (thread_atfork): Define using __register_atfork. + +2002-12-30 Roland McGrath + + * Rules (generated): Target removed. + * mach/Makefile (generated): Define it here instead. + + * math/Makefile (generated): Add m_*l and m_*f variants too. + +2002-12-30 Ulrich Drepper + + * elf/dl-close.c (_dl_close): Handle relocation dependencies among + the to-be-deleted objects right away instead of later separately. + The latter fails because the scope data structures of the DSO + might already be gone. + + * elf/Makefile: Add rules to build and run reldep8 test. + * elf/reldep8.c: New file. + * elf/reldep8mod1.c: New file. + * elf/reldep8mod2.c: New file. + * elf/reldep8mod3.c: New file. + Contributed by Jakub Jelinek. + +2002-12-24 GOTO Masanori + + * sysdeps/unix/sysv/linux/getdents.c (__GETDENTS): Fix condition + checking of return value ENOSYS from getdents64. + +2002-12-28 Andreas Schwab + + * sysdeps/unix/Makefile: Include $(common-objpfx)s-proto-cancel.d. + ($(common-objpfx)s-%.d): Generalized from + $(common-objpfx)s-proto.d rule. + (common-generated): Add s-proto-cancel.d. + * sysdeps/unix/make-syscalls.sh: Use s-proto-cancel.d for + cancellable syscalls. + * sysdeps/unix/s-proto-cancel.S: New file. + +2002-12-29 Roland McGrath + + * resolv/res_libc.c: Move _res defn magic after res_init defn + so _res macro is in effect for that code. + + * Makerules ($(common-objpfx)%.h $(common-objpfx)%.h.d): Fix sed + pattern for prepending $(..) so it doesn't affect $(foo). + + * math/Makefile (generated): Add $(addsuffix .c .S,$(calls:s_%=m_%)). + +2002-12-29 Jakub Jelinek + + * elf/cache.c (add_to_cache): Don't loop forever with 1ULL << 63 set + in hwcap. + +2002-12-28 Ulrich Drepper + + * misc/sys/cdefs.h (__attribute_deprecated__): New #define. + +2002-12-28 Andreas Jaeger + + * sysdeps/generic/readelflib.c (process_elf_file): Cast value to + avoid warning. + * sysdeps/generic/dl-cache.c (_dl_load_cache_lookup): Likewise. + +2002-12-27 Jakub Jelinek + + * inet/herrno.c (__h_errno_location): Remove. + * inet/Makefile (routines): Add herrno-loc. + * resolv/res_libc.c (__res_state): Remove. + * resolv/Makefile (routines): Add res-state. + * sysdeps/generic/herrno-loc.c: New file. + * sysdeps/generic/res-state.c: New file. + +2002-12-27 Jakub Jelinek + + * sysdeps/unix/sysv/linux/i386/sysdep.h (I386_USE_SYSENTER): + Only define if USE_DL_SYSINFO is defined. + +2002-12-22 Jakub Jelinek + + * sysdeps/unix/sysv/linux/ia64/sysdep.h (INLINE_SYSCALL, + INTERNAL_SYSCALL, INTERNAL_SYSCALL_ERROR_P, INTERNAL_SYSCALL_ERROR): + Define. Patch by Richard Henderson and Jes Sorensen. + (PSEUDO): Remove unnecessary ;;. + * elf/rtld.c (dl_main): Initialize TLS even if no PT_TLS segments + are found unless TLS_INIT_TP_EXPENSIVE. Use NONTLS_INIT_TP. + * sysdeps/generic/libc-tls.c (__libc_setup_tls): Use NONTLS_INIT_TP + if not initializing thread pointer. + [!USE_TLS && NONTLS_INIT_TP] (__pthread_initialize_minimal): New. + * sysdeps/generic/libc-start.c (__pthread_initialize_minimal): Don't + make it weak also if NONTLS_INIT_TP. + * sysdeps/unix/common/pause.c: Handle cancellation. + * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h [DONT_LOAD_G1] + (LOADSYSCALL): Remove. + (SYSCALL_ERROR_HANDLER_ENTRY): Define. + (SYSCALL_ERROR_HANDLER): Use it. + (PSEUDO): Don't jump around error handler. + * sysdeps/unix/sysv/linux/sparc/sparc32/pipe.S (__libc_pipe): Don't + jump around error handler. + * sysdeps/unix/sysv/linux/sparc/sparc32/syscall.S (syscall): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/socket.S (__socket): Branch + to __syscall_error_handler on failure. + * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h [DONT_LOAD_G1] + (LOADSYSCALL): Remove. + (SYSCALL_ERROR_HANDLER_ENTRY): Define. + (SYSCALL_ERROR_HANDLER): Use it. + (PSEUDO): Don't jump around error handler. + * sysdeps/unix/sysv/linux/sparc/sparc64/pipe.S (__libc_pipe): Don't + jump around error handler. + * sysdeps/unix/sysv/linux/sparc/sparc64/syscall.S (syscall): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/socket.S (__socket): Branch + to __syscall_error_handler on failure. + +2002-12-27 Roland McGrath + + * scripts/gen-as-const.awk: New file. + * Makefile (distribute): Add it. + * Makerules ($(common-objpfx)%.h %.h.d: %.sym): New pattern rule. + (before-compile): Add $(gen-as-const-headers:%.sym=$(common-objpfx)%.h) + to the list. + (+depfiles): Add $(addprefix $(common-objpfx),$(gen-as-const-headers)). + +2002-12-27 Andreas Schwab + + * sysdeps/unix/sysv/linux/m68k/socket.S: Add cancellation support. + +2002-12-27 Jakub Jelinek + + * malloc/arena.c (ptmalloc_init): Don't call next_env_entry if + _environ is NULL. + +2002-12-27 Andreas Schwab + + * Makerules ($(common-objpfx)%.make): Filter through + $(sed-remove-objpfx). + +2002-12-23 Roland McGrath + + * scripts/abilist.awk: Produce a more compact format, divided into + stanzas for each version set, the set name listed only once. + * scripts/extract-abilist.awk: New file. + * scripts/merge-abilist.awk: New file. + * Makerules (check-abi-%, update-abi-%): New pattern rules. + (update-abi, check-abi): New targets. + * Makefile (+subdir_targets): Add subdir_{check,update}-abi. + +2002-12-19 Roland McGrath + + * Makerules (%.symlist): Use LC_ALL=C when running awk script. + + * sysdeps/unix/sysv/linux/i386/brk.c (__brk): Cast result of + INTERNAL_SYSCALL. + +2002-12-21 Andreas Schwab + + * elf/check-textrel.c (handle_file): Swap p_type. + +2002-12-21 Andreas Schwab + + * sysdeps/unix/sysv/linux/m68k/sysdep.h (INTERNAL_SYSCALL): Define. + (INLINE_SYSCALL): Use it. + (INTERNAL_SYSCALL_ERROR_P, INTERNAL_SYSCALL_ERRNO): Define. + (SYSCALL_ERROR_HANDLER): Define RTLD_PRIVATE_ERRNO variant. + + * sysdeps/unix/sysv/linux/m68k/getpagesize.c: Use INTERNAL_SYSCALL. + * sysdeps/unix/sysv/linux/m68k/brk.c: Likewise. + +2002-12-20 Art Haas + + * sysdeps/gnu/siglist.c: Convert GCC extension initializer + syntax to C99. + +2002-12-21 Philip Blundell + + * sysdeps/arm/elf/start.S (_start): Optimise a little. Push stack + top as seventh arg to __libc_start_main. + Reported by paulnash@wildseed.com. + + * sysdeps/unix/sysv/linux/arm/clone.S: Small optimisation. + + * sysdeps/unix/sysv/linux/arm/sigcontextinfo.h: Elide + compatibility cruft when new enough kernel is assumed. + +2002-12-20 Jakub Jelinek + + * sysdeps/unix/sysv/linux/i386/brk.c (__brk): Use INTERNAL_SYSCALL + instead of INLINE_SYSCALL. + +2002-12-20 Ulrich Drepper + + * sysdeps/unix/sysv/linux/i386/sigaction.c (__libc_sigaction): Fix + typo. + + * sysdeps/unix/sysv/linux/alpha/bits/shm.h: Define SHM_HUGETLB. + * sysdeps/unix/sysv/linux/bits/shm.h: Likewise. + * sysdeps/unix/sysv/linux/hppa/bits/shm.h: Likewise. + * sysdeps/unix/sysv/linux/ia64/bits/shm.h: Likewise. + * sysdeps/unix/sysv/linux/mips/bits/shm.h: Likewise. + * sysdeps/unix/sysv/linux/powerpc/bits/shm.h: Likewise. + * sysdeps/unix/sysv/linux/s390/bits/shm.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/bits/shm.h: Likewise. + * sysdeps/unix/sysv/linux/x86_64/bits/shm.h: Likewise. + Patch by William Lee Irwin . + +2002-12-20 Andreas Schwab + + * locale/programs/ld-measurement.c (measurement_output): Fix + index calculation. + +2002-12-20 Ulrich Drepper + + * include/libio.h [_IO_MTSAFE_IO && _IO_lock_inexpensive]: + Redefine _IO_flockifle and _IO_funlockfile as inlines. + + * sysdeps/generic/dl-sysdep.c (_dl_important_hwcaps): For TLS + builds add "tls" in the search path. + * elf/ldconfig.c (is_hwcap_platform): Also recognize "tls". + (path_hwcap): Recognize "tls". + +2002-12-19 Ulrich Drepper + + * sysdeps/unix/sysv/linux/i386/system.c (cancel_handler): Use + __waitpid instead of waitpid. + + * sysdeps/unix/sysv/linux/i386/_exit.S: Use ENTER_KERNEL instead of + int $0x80. + * sysdeps/unix/sysv/linux/i386/getcontext.S: Likewise. + * sysdeps/unix/sysv/linux/i386/setcontext.S: Likewise. + * sysdeps/unix/sysv/linux/i386/swapcontext.S: Likewise. + + * sysdeps/unix/sysv/linux/i386/sysdep.h: Add support to use AT_SYSINFO + information for system calls. + + * sysdeps/generic/dl-sysdep.h: Define RTLD_PRIVATE_ERRNO to 1 only + for ld.so. + + * elf/rtld.c (_dl_start) [USE___THREAD]: Define initdtv. + +2002-12-19 Roland McGrath + + * iconvdata/ibm856.h: Convert GCC extension initializer syntax to C99. + * iconvdata/ibm922.h: Likewise. + * iconvdata/ibm930.h: Likewise. + * iconvdata/ibm932.h: Likewise. + * iconvdata/ibm933.h: Likewise. + * iconvdata/ibm935.h: Likewise. + * iconvdata/ibm937.h: Likewise. + * iconvdata/ibm939.h: Likewise. + * iconvdata/ibm943.h: Likewise. + * iconvdata/isiri-3342.h: Likewise. + +2002-12-19 Ulrich Drepper + + * test-skeleton.c (main): Make sure correct value is seen as + argv[0] after adjustment of argv, and argc. + + * elf/rtld.c: Don't initialize _dl_dynamic_weak to 1 if + RTLD_CORRECT_DYNAMIC_WEAK is defined. + +2002-12-19 Jakub Jelinek + + * nscd/connections.c (nscd_run): Shut up warning. + * tst-ungetc.c (assert): Undefined before redefining. + +2002-12-19 Ulrich Drepper + + * posix/regex.c: Use __builtin_expect even outside glibc if gcc 3 + is used. + +2002-12-17 Art Haas + + * iconvdata/cp737.h: Convert GCC extension initializer syntax to C99. + * iconvdata/cp775.h: Likewise. + * iconvdata/ibm1046.h: Likewise. + * iconvdata/ibm1124.h: Likewise. + * iconvdata/ibm1129.h: Likewise. + * iconvdata/ibm1132.h: Likewise. + * iconvdata/ibm1133.h: Likewise. + * iconvdata/ibm1160.h: Likewise. + * iconvdata/ibm1161.h: Likewise. + * iconvdata/ibm1162.h: Likewise. + * iconvdata/ibm1163.h: Likewise. + * iconvdata/ibm1164.h: Likewise. + +2002-12-19 Ulrich Drepper + + * sysdeps/unix/sysv/linux/i386/system.c: Define FORK only if + __ASSUME_CLONE_THREAD_FLAGS is defined. + * sysdeps/unix/sysv/linux/kernel-features.h + (__ASSUME_CLONE_THREAD_FLAGS): Define for x86 and kernel >= 2.5.50. + +2002-12-18 Ulrich Drepper + + * sysdeps/unix/sysv/linux/i386/brk.c: Use INTERNAL_SYSCALL instead + of asm. + * sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise. + + * elf/dl-support.c [NEED_DL_SYSINFO]: Define and initialize + _dl_sysinfo. + [DL_SYSINFO_IMPLEMENTATION]: If defined use it to generate the needed + code. + * elf/rtld.c [DL_NEED_SYSINFO]: Initialize _dl_sysinfo element of + _rtld_global. + [DL_SYSINFO_IMPLEMENTATION]: If defined use it to generate the needed + code. + * sysdeps/generic/dl-sysdep.c (_dl_sysdep_start) [NEED_DL_SYSINFO]: + Check for AT_SYSINFO and set _dl_sysinfo appropriately. + * sysdeps/generic/ldsodefs.h (struct rtld_global) [NEED_DL_SYSINFO]: + Add _dl_sysinfo. + +2002-12-18 Jakub Jelinek + + * misc/Versions [libc: GLIBC_2.3.1]: Move __libc_readv and + __libc_writev to... + [libc: GLIBC_PRIVATE]: ...here. + * sysvipc/Versions [libc: GLIBC_2.3.1]: Move __libc_msgrcv and + __libc_msgsnd to... + [libc: GLIBC_PRIVATE]: ...here. + +2002-12-18 Ulrich Drepper + + * sysdeps/unix/sysv/linux/i386/sysdep.h: Define ENTER_KERNEL macro. + Use it instead of directly int $0x80. + * sysdeps/unix/sysv/linux/i386/brk.c: Use ENTER_KERNEL. + * sysdeps/unix/sysv/linux/i386/mmap64.S: Likewise. + * sysdeps/unix/sysv/linux/i386/mmap.S: Likewise. + * sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise. + * sysdeps/unix/sysv/linux/i386/socket.S: Likewise. + * sysdeps/unix/sysv/linux/i386/syscall.S: Likewise. + +2002-12-17 Ulrich Drepper + + * malloc/malloc.c (mALLOPt): Make sure malloc is initialized. + + * elf/elf.h (AT_SYSINFO): New define. + * sysdeps/generic/dl-sysdep.c (_dl_show_auxv): Add support for + AT_SYSINFO. + +2002-12-17 Jakub Jelinek + + * sysdeps/unix/sysv/linux/alpha/syscalls.list (msgrcv, msgsnd): + Make cancelable. + * sysdeps/unix/sysv/linux/hppa/syscalls.list (msgrcv, msgsnd): + Likewise. + * sysdeps/unix/sysv/linux/ia64/syscalls.list (msgrcv, msgsnd): + Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (msgrcv, msgsnd): + Likewise. + * sysdeps/unix/sysv/linux/x86_64/syscalls.list (msgrcv, msgsnd): + Likewise. + * sysdeps/unix/sysv/linux/ia64/sigsuspend.c (__sigsuspend): Likewise. + + * malloc/thread-m.h (mutex_init, mutex_lock, mutex_trylock, + mutex_unlock): If not building NPTL, use __libc_maybe_call2 if + available, otherwise __libc_maybe_call. + * sysdeps/unix/sysv/linux/x86_64/recv.c: Add support for + cancellation handling. + * sysdeps/unix/sysv/linux/x86_64/send.c: Likewise. + +2002-12-17 Isamu Hasegawa + + * posix/regcomp.c (free_workarea_compile): Free the new member + ORG_INDICES. + (analyze): Initialize ORG_INDICES. + (duplicate_node_closure): Search for a existing node, which is + duplicated from the node ORG_DEST and satisfies the constraint + CONSTRAINT. And use it to avoid inifimite loop. + (search_duplicated_node): New function. + (duplicate_node): Store the index of the original node. + * posix/regex_internal.c (re_dfa_add_node): Realloc ORG_INDICES + if needed. + * posix/regex_internal.h (re_dfa_t): Add new members. + +2002-12-17 Ulrich Drepper + + * stdio-common/tst-fdopen.c: Undefine assert before redefining it. + +2002-12-16 Ulrich Drepper + + * sysdeps/posix/system.c (do_system): Add support for installation + of cancellation handlers. + * sysdeps/unix/sysv/linux/i386/system.c: New file. + + * stdlib/Makefile (tests): Add tst-system. + * stdlib/tst-system.c: New file. + + * sysdeps/unix/sysv/linux/i386/socket.S [NEED_CANCELLATION && + CENABLE]: Don't lose content of %ebx. + +2002-12-17 Jakub Jelinek + + * sysdeps/unix/sysv/linux/i386/socket.S: Use SINGLE_THREAD_P + macro instead of comparing %gs:MULTIPLE_THREADS_OFFSET directly. + +2002-12-16 Ulrich Drepper + + * sysdeps/posix/getaddrinfo.c (gaih_inet): If __nss_lookup_function + fails to return a function pointer don't use it. + +2002-12-16 Art Haas + + * io/ftw.c: Convert GCC extension initializer syntax to C99. + * iconvdata/iso-ir-165.c: Likewise. + * iconvdata/jis0208.c: Likewise. + * iconvdata/jis0212.c: Likewise. + +2002-12-16 Ulrich Drepper + + * sysdeps/unix/sysv/linux/syscalls.list: Add epoll_create, + epoll_ctl, and epoll_wait. + * sysdeps/unix/sysv/linux/Versions [libc: GLIBC_2.3.2]: Add + epoll_create, epoll_ctl, and epoll_wait. + * sysdeps/unix/sysv/linux/sys/epoll.h: New file. Written by + Davide Libenzi . + * sysdeps/unix/sysv/linux/Dist: Add sys/epoll.h. + * sysdeps/unix/sysv/linux/Makefile [subdir=misc] (sysdep_headers): + Add sys/epoll.h. + +2002-12-16 Art Haas + + * sysdeps/generic/bp-semctl.h: Convert GCC extension initializer + syntax to C99 + * sysdeps/unix/sysv/aix/settimer.c: Likewise. + * sysdeps/unix/sysv/aix/sleep.c: Likewise. + * sysdeps/unix/sysv/aix/usleep.c: Likewise. + +2002-12-16 Ulrich Drepper + + * stdio-common/Makefile (routines): Remove lockfile. Add + flockfile, ftrylockfile, and funlockfile. + * sysdeps/generic/lockfile.c: Removed. Each function has its own file. + * sysdeps/generic/flockfile.c: New file. + * sysdeps/generic/ftrylockfile.c: New file. + * sysdeps/generic/funlockfile.c: New file. + +2002-12-16 Jakub Jelinek + + * sysdeps/unix/sysv/linux/i386/socket.S: Use CENABLE and CDISABLE + macros instead of doing the calls directly. + * sysdeps/unix/make-syscalls.sh: Add ptw-*.$o target name to rules. + * Makerules ($(+sysdir_pfx)sysd-rules): Emit rules for ptw-% + targets. + +2002-12-16 Jakub Jelinek + + * sysdeps/i386/fpu/bits/mathinline.h: Backout last change. + * sysdeps/ieee754/bits/nan.h: Likewise. + + * sysdeps/unix/sysv/linux/ia64/syscalls.list (__syscall_open, + __syscall_wait4, __syscall_ioctl, __syscall_write): Add. + +2002-12-16 Roland McGrath + + * sunrpc/xdr_mem.c (xdrmem_inline): Fix argument type. + * sunrpc/xdr_rec.c (xdrrec_inline): Likewise. + * sunrpc/xdr_stdio.c (xdrstdio_inline): Likewise. + + * sysdeps/unix/sysv/linux/syscalls.list: Add getpmsg, putpmsg. + * sysdeps/unix/sysv/linux/mips/syscalls.list: Remove s_getpmsg, + s_putpmsg. + * sysdeps/unix/sysv/linux/i386/getpmsg.c: File removed. + * sysdeps/unix/sysv/linux/i386/putpmsg.c: File removed. + * sysdeps/unix/sysv/linux/m68k/getpmsg.c: File removed. + * sysdeps/unix/sysv/linux/m68k/putpmsg.c: File removed. + * sysdeps/unix/sysv/linux/mips/getpmsg.c: File removed. + * sysdeps/unix/sysv/linux/mips/putpmsg.c: File removed. + * sysdeps/unix/sysv/linux/powerpc/getpmsg.c: File removed. + * sysdeps/unix/sysv/linux/powerpc/putpmsg.c: File removed. + +2002-12-13 Paul Eggert + + * sunrpc/rpc/xdr.h (struct XDR.xdr_ops.x_inline): 2nd arg + is now u_int, not int. + (struct XDR.x_handy): Now u_int, not int. + * sunrpc/xdr_mem.c: Include . + (xdrmem_getlong, xdrmem_putlong, xdrmem_getbytes, xdrmem_putbytes, + xdrmem_inline, xdrmem_getint32, xdrmem_putint32): + x_handy is now unsigned, not signed. + Do not decrement x_handy if no change is made. + (xdrmem_setpos): Check for int overflow. + * sunrpc/xdr_sizeof.c (x_inline): 2nd arg is now unsigned. + (xdr_sizeof): Remove cast that is now unnecessary, now that + x_handy is unsigned. + +2002-12-15 Art Haas + + * iconv/gconv_conf.c: Convert GCC extension initializer syntax to C99. + * iconvdata/gap.awk: Likewise. + * iconvdata/gen-8bit-gap-1.sh: Likewise. + * iconvdata/gen-8bit-gap.sh: Likewise. + * locale/C-address.c: Likewise. + * locale/C-collate.c: Likewise. + * locale/C-ctype.c: Likewise. + * locale/C-identification.c: Likewise. + * locale/C-measurement.c: Likewise. + * locale/C-messages.c: Likewise. + * locale/C-monetary.c: Likewise. + * locale/C-name.c: Likewise. + * locale/C-numeric.c: Likewise. + * locale/C-paper.c: Likewise. + * locale/C-telephone.c: Likewise. + * locale/C-time.c: Likewise. + * nscd/connections.c: Likewise. + * nscd/grpcache.c: Likewise. + * nscd/hstcache.c: Likewise. + * nscd/pwdcache.c: Likewise. + * stdio-common/vfprintf.c: Likewise. + * stdlib/random.c: Likewise. + * sysdeps/generic/siglist.c: Likewise. + * sysdeps/i386/fpu/bits/mathinline.h: Likewise. + * sysdeps/ieee754/bits/nan.h: Likewise. + * sysdeps/posix/sprofil.c: Likewise. + * sysdeps/unix/sysv/linux/sleep.c: Likewise. + * sysdeps/unix/sysv/linux/sysctl.c: Likewise. + * sysdeps/unix/sysv/linux/usleep.c: Likewise. + +2002-12-15 Roland McGrath + + * sysdeps/unix/sysv/linux/readv.c (do_readv): Use prototype defn. + + * sysdeps/unix/sysv/linux/wait.c: Don't include or + here, no need for it. + * sysdeps/unix/sysv/linux/waitpid.c: Likewise. + + * sysdeps/unix/sysv/linux/i386/fcntl.c (do_fcntl): Take ARG as void * + parameter, not varargs parameter. + + * sysdeps/generic/sysdep-cancel.h (LIBC_CANCEL_RESET): Evaluate the + argument so it's not an unused variable. + + * resolv/resolv.h (__p_key_syms, __p_cert_syms, __p_class_syms, + __p_type_syms, __p_rcode_syms): Remove decls, never really intended + for users. + + * resolv/Versions (libresolv: GLIBC_2.3.2): New set, add __p_rcode. + +2002-12-15 Ulrich Drepper + + * sysdeps/unix/sysv/linux/i386/fcntl.c (do_fcntl): This is the + original __libc_fcntl code. Just renamed. + +2002-12-15 Andreas Schwab + + * sysdeps/unix/sysv/linux/m68k/clone.S: Make inline syscall to _exit. + +2002-12-14 Olaf Hering + + * sysdeps/powerpc/bits/setjmp.h: Include . + * sysdeps/powerpc/powerpc64/setjmp.S: Fix typo in r18 load. + +2002-12-15 Ulrich Drepper + + * sysdeps/unix/sysv/linux/libc_fatal.c: New file. + + * sysdeps/generic/sysdep-cancel.h: Add dummy definitions for + SINGLE_THREAD_P, LIBC_CANCEL_ASYNC, and LIBC_CANCEL_RESET. + + * sysdeps/unix/sysv/linux/open64.c: New file. + + * sysdeps/generic/pselect.c: Add support for cancellation handling. + * sysdeps/posix/open64.c: Likewise. + * sysdeps/posix/sigpause.c: Likewise. + * sysdeps/posix/sigwait.c: Likewise. + * sysdeps/posix/system.c: Likewise. + * sysdeps/posix/waitid.c: Likewise. + * sysdeps/unix/sysv/linux/accept.S: Likewise. + * sysdeps/unix/sysv/linux/connect.S: Likewise. + * sysdeps/unix/sysv/linux/llseek.c: Likewise. + * sysdeps/unix/sysv/linux/msgrcv.c: Likewise. + * sysdeps/unix/sysv/linux/msgsnd.c: Likewise. + * sysdeps/unix/sysv/linux/poll.c: Likewise. + * sysdeps/unix/sysv/linux/pread.c: Likewise. + * sysdeps/unix/sysv/linux/pread64.c: Likewise. + * sysdeps/unix/sysv/linux/pwrite.c: Likewise. + * sysdeps/unix/sysv/linux/pwrite64.c: Likewise. + * sysdeps/unix/sysv/linux/readv.c: Likewise. + * sysdeps/unix/sysv/linux/recv.S: Likewise. + * sysdeps/unix/sysv/linux/recvfrom.S: Likewise. + * sysdeps/unix/sysv/linux/recvmsg.S: Likewise. + * sysdeps/unix/sysv/linux/send.S: Likewise. + * sysdeps/unix/sysv/linux/sendmsg.S: Likewise. + * sysdeps/unix/sysv/linux/sendto.S: Likewise. + * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise. + * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. + * sysdeps/unix/sysv/linux/sigwait.c: Likewise. + * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. + * sysdeps/unix/sysv/linux/tcdrain.c: Likewise. + * sysdeps/unix/sysv/linux/wait.c: Likewise. + * sysdeps/unix/sysv/linux/waitpid.c: Likewise. + * sysdeps/unix/sysv/linux/writev.c: Likewise. + * sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise. + * sysdeps/unix/sysv/linux/i386/socket.S: Likewise. + +2002-12-14 Jakub Jelinek + + * sysdeps/generic/sysdep-cancel.h: New file. + * sysdeps/unix/make-syscalls.sh: Handle C at start of args as + cancelable syscall. + * sysdeps/unix/inet/syscalls.list (accept, connect, recv, recvfrom, + recvmsg, send, sendmsg, sendto): Make cancelable. + * sysdeps/unix/mman/syscalls.list (msync): Likewise. + * sysdeps/unix/sysv/linux/alpha/syscalls.list (llseek, pread, + pwrite, accept, connect, recv, recvfrom, recvmsg, send, sendmsg, + sendto, osf_select): Likewise. + * sysdeps/unix/sysv/linux/hppa/syscalls.list (accept, connect, recv, + recvfrom, recvmsg, send, sendmsg, sendto): Likewise. + * sysdeps/unix/sysv/linux/ia64/syscalls.list (llseek, pread, + pwrite, accept, connect, recv, recvfrom, recvmsg, send, sendmsg, + sendto): Likewise. + * sysdeps/unix/sysv/linux/mips/syscalls.list (accept, connect, recv, + recvfrom, recvmsg, send, sendmsg, sendto): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (llseek, pread, + pwrite, accept, connect, recv, recvfrom, recvmsg, send, sendmsg, + sendto): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (llseek, pread, + pwrite, accept, connect, recv, recvfrom, recvmsg, send, sendmsg, + sendto, select): Likewise. + * sysdeps/unix/sysv/linux/x86_64/syscalls.list (llseek, pread, + pwrite, accept, connect, recvfrom, recvmsg, sendmsg, sendto): + Likewise. + * sysdeps/unix/sysv/linux/syscalls.list (creat, nanosleep, pause, + select, fcntl): Likewise. + * sysdeps/unix/sysv/syscalls.list (pause, poll): Likewise. + * sysdeps/unix/syscalls.list (close, fcntl, fsync, lseek, open, + read, readv, select, sigsuspend, write, writev): Likewise. + +2002-12-14 Jakub Jelinek + + * dirent/bug-readdir1.c: Include unistd.h. + +2002-12-13 Jakub Jelinek + + * locale/programs/locale.c: Include locarchive.h. + (ARCHIVE_NAME): Define. + (write_archive_locales): New function. + (write_locales): Use it. Ensure the same locale is not printed + multiple times in verbose mode. + Mode LC_IDENTIFICATION and LC_CTYPE printing into... + (print_LC_IDENTIFICATION, print_LC_CTYPE): ... these helper + functions. + (struct nameent): New type. + (nameentcmp): New function. + +2002-12-14 Jakub Jelinek + + * posix/regex_internal.c (re_string_context_at): Guard wide char + code with #ifdef RE_ENABLE_I18N. + +2002-11-22 Paolo Bonzini + + * posix/regcomp.c (regcomp): __re_compile_fastmap -> re_compile_fastmap + +2002-12-13 Roland McGrath + + * posix/bug-regex15.c: New file. + * posix/Makefile (tests): Add it. + + * test-skeleton.c (TEST_DATA_LIMIT): New macro, default to 64MB. + (main): Set RLIMIT_DATA limit to TEST_DATA_LIMIT (or lower if need be). + +2002-12-13 Ulrich Drepper + + * elf/dl-misc.c (_dl_debug_vdprintf): Don't depend on 5-digit PIDs. + + * misc/syslog.c (log_cleanup): Don't use parameter in + __libc_lock_unlock call, use syslog_lock directly. Adjust callers to + pass NULL instead of a pointer to syslog_lock. + +2002-12-12 Ulrich Drepper + + * iconvdata/Makefile: iconv-rules: Add definition to use gconv.map + linker map for all iconv modules. + (distribute): Add gconv.map. + * iconvdata/gconv.map: New file. + + * elf/Makefile: Also check all iconv modules for text relocations. + + * stdlib/Makefile: Remove code to automatically import GMP. + + * elf/Makefile (tests): Add rules to build and run check-textrel. + * elf/check-textrel.c: New file. + + * sysdeps/unix/sysv/linux/i386/sysdep.h (SETUP_PIC_REG): Add .size + directive. + +2002-12-11 Jakub Jelinek + + * io/test-utime (main): If stnow.st[am]time is wrong, print it and + not st.st[am]time. + +2002-04-30 Bruno Haible + + * intl/loadmsgcat.c (_nl_init_domain_conv): Don't append //TRANSLIT to + the encoding if it already has slashes. + Reported by Perry Rapp . + +2002-12-11 Roland McGrath + + * csu/Makefile ($(objpfx)elf-init.oS): Remove target, braino. + (CPPFLAGS-elf-init.oS, CFLAGS-elf-init.oS): New variables. + Turn off PIC for compiling this file. + +2002-12-11 Ulrich Drepper + + * malloc/thread-m.h: Remove thread_id type and MUTEX_INITIALIZER + definitions. Not needed. + [_LIBC]: Use definitions from libc-lock.h instead of referencing + pthread routines directly. + * malloc/arena.c (ptmalloc_unlock_all2): Don't add (void) to + mutex_init calls. + (arena_get2): Don't look at return value of mutex_lock. + +2002-12-11 Roland McGrath + + * csu/Makefile ($(objpfx)elf-init.oS): New target, just clone + elf-init.o instead of compiling a PIC version. + +2002-12-11 Bruno Haible + + * intl/gettext.h: Renamed to ... + * intl/gmo.h: ... here. + * intl/Makefile (distribute): Add gmo.h, remove gettext.h. + * intl/gettextP.h: Update. + * intl/loadmsgcat.c: Update. + + * intl/gettextP.h (PARAMS): Make more portable. + (attribute_hidden): Define as empty macro if not already defined. + * intl/hash-string.h (PARAMS): Make more portable. + * intl/loadinfo.h (PARAMS): Likewise. + * intl/plural-exp.h (PARAMS): Likewise. + (attribute_hidden): Move definition near the definition of + internal_function. + + * intl/gettextP.h (_nl_locale_name) [!_LIBC]: New declaration. + * intl/plural-exp.h (plural_eval) [!_LIBC]: New declaration. + +2002-07-13 Bruno Haible + + * intl/dcigettext.c (freea): New macro. + (FREE_BLOCKS): Free also the registered blocks. + (DCIGETTEXT): Free the 'search' variable. + Reported by Andreas Fischer . + +2002-04-27 Bruno Haible + + * intl/gettextP.h [! _LIBC]: Use prefix libintl_ instead of suffix __. + * intl/dcigettext.c: Likewise. + * intl/dcgettext.c: Likewise. + * intl/dgettext.c: Likewise. + * intl/gettext.c: Likewise. + * intl/dcngettext.c: Likewise. + * intl/dngettext.c: Likewise. + * intl/ngettext.c: Likewise. + * intl/textdomain.c: Likewise. + * intl/bindtextdom.c: Likewise. + * intl/plural-exp.h: Likewise. + +2002-01-02 Bruno Haible + + * intl/loadmsgcat.c (_nl_init_domain_conv): Use PARAMS in extern decl. + +2001-04-30 Bruno Haible + + * intl/dcigettext.c (getuid, getgid, geteuid, getegid): Provide + default macro definitions. Needed for mingw32. + +2002-12-10 Ulrich Drepper + + * sysdeps/i386/bits/byteswap.h (__bswap_64): Apply + __builtin_constant_p to macro parameter. + + * sysdeps/generic/sigpause.c: Define all functions as weak. + * sysdeps/posix/sigpause.c: Likewise. + + * elf/tst-tls7.c (do_test): Adjustments for l_tls_modid being of + type size_t. + +2002-12-10 Jakub Jelinek + + * elf/tst-array1.c (preinit_array, init_array, fini_array): + Explicitly align the array to sizeof (void *). + * elf/tst-array2dep.c (init_array, fini_array): Likewise. + + * include/libc-symbols.h: Fix a comment typo. + + * sysdeps/unix/sysv/linux/alpha/select.S (__libc_select): New alias. + * sysdeps/unix/sysv/linux/alpha/sigsuspend.S (__libc_sigsuspend): + Likewise. + * sysdeps/unix/sysv/linux/ia64/sigsuspend.c (__libc_sigsuspend): + Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/sigsuspend.c + (__libc_sigsuspend): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/sigsuspend.c + (__libc_sigsuspend): Likewise. + * sysdeps/generic/creat.c (__libc_creat): Renamed from creat. + (creat): New weak alias. + +2002-12-10 Roland McGrath + + * manual/libc-texinfo.sh: Emit @set ADD-ON for each ADD-ON that + contributes a manual chapter. + * manual/signal.texi (Process Signal Mask): Use @ifset linuxthreads + around xref to it. + + * sysdeps/unix/sysv/linux/dl-librecon.h (EXTRA_LD_ENVVARS): Refer to + and move contents to ... + (EXTRA_LD_ENVVARS_LINUX): ... this new macro. Add break for nonmatch. + * sysdeps/unix/sysv/linux/i386/dl-librecon.h (EXTRA_LD_ENVVARS): Use + it instead of duplicating its contents. + (EXTRA_LD_ENVVARS): Likewise. Add break for nonmatch. + +2002-12-09 Jakub Jelinek + + * elf/dl-support.c (_dl_non_dynamic_init): Add DL_OSVERSION_INIT if + defined. + * sysdeps/unix/sysv/linux/dl-librecon.h (_dl_osversion_init): New + function. + (EXTRA_LD_ENVVARS): Use it. + (DL_OSVERSION_INIT): Define. + * sysdeps/unix/sysv/linux/i386/dl-librecon.h: Include linux + dl-librecon.h. + (EXTRA_LD_ENVVARS): Undef before defining. Use _dl_osversion_init. + +2002-12-10 Ulrich Drepper + + * Versions.def: No new symbols in 2.3.1, but some new ones in 2.3.2. + + * sysdeps/unix/closedir.c (__closedir): Remove __libc_lock_lock + call. It is not allowed to destroy pthread mutexes which are + still in use even though it is safe for our implementations. If + somebody still uses the descriptor it is a bug. + +2002-12-09 Richard Henderson + + * csu/abi-note.S: Use .p2align, not .align. + +2002-12-09 Ulrich Drepper + + * sysdeps/unix/sysv/linux/syscalls.list: Add __libc_creat and + __libc_select aliases. + + * sysdeps/unix/sysv/linux/sigwaitinfo.c: Define __libc_sigwaitinfo + alias. + + * sysdeps/unix/sysv/linux/sigwait.c: Define __libc_sigwait alias. + + * sysdeps/unix/sysv/linux/sigsuspend.c: Define __libc_sigsuspend alias. + + * sysdeps/unix/sysv/linux/poll.c: Define __libc_poll alias. + + * sysdeps/unix/syscalls.list: Define __libc_select alias. + + * sysdeps/posix/waitid.c: Define __libc_waitid alias. + + * sysdeps/posix/sigpause.c: Define __libc_sigpause and + __libc___xpg_sigpause aliases. + + * sysdeps/generic/pselect.c: Define __libc_pselect alias. + + * misc/error.c: Remove use of USE_IN_LIBIO. + +2002-12-08 Roland McGrath + + * elf/Makefile (tests): Uncomment tst-array[123]. + * Makeconfig (CPPFLAGS-.oS): Add -DLIBC_NONSHARED=1. + * csu/elf-init.c: New file. + * csu/Makefile (routines, static-only-routines): Add elf-init. + * sysdeps/alpha/elf/start.S: Use __libc_csu_init in place of _init + and __libc_csu_fini in place of _fini. + * sysdeps/arm/elf/start.S: Likewise. + * sysdeps/cris/elf/start.S: Likewise. + * sysdeps/hppa/elf/start.S: Likewise. + * sysdeps/i386/elf/start.S: Likewise. + * sysdeps/ia64/elf/start.S: Likewise. + * sysdeps/m68k/elf/start.S: Likewise. + * sysdeps/mach/hurd/powerpc/static-start.S: Likewise. + * sysdeps/mips/elf/start.S: Likewise. + * sysdeps/powerpc/powerpc32/elf/start.S: Likewise. + * sysdeps/powerpc/powerpc64/elf/start.S: Likewise. + * sysdeps/s390/s390-32/elf/start.S: Likewise. + * sysdeps/s390/s390-64/elf/start.S: Likewise. + * sysdeps/sh/elf/start.S: Likewise. + * sysdeps/sparc/sparc32/elf/start.S: Likewise. + * sysdeps/sparc/sparc64/elf/start.S: Likewise. + * sysdeps/x86_64/elf/start.S: Likewise. + + * sysdeps/pthread/aio_notify.c (notify_func_wrapper): Take a malloc'd + struct containing function ptr and value, free it. + (__aio_notify_only): Allocate that and copy values from SIGEV into it. + It's not safe to let the new thread use the SIGEV pointer. + +2001-10-20 Paul Eggert + + * misc/error.c (strerror_r): Do not declare unless [!_LIBC]. + Do not check for HAVE_DECL_STRERROR_R missing unless STRERROR_R_CHAR_P. + Use strerror_r that is only a macro, even if it is not a function. + (strerror): Check for HAVE_DECL_STRERROR before declaring. + (private_strerror): Use prototypes, not old-style function definition. + (print_errno_message): New function. + Support the POSIX 'int'-flavored strerror_r, as well as the traditional + char*-flavored one. + (error_tail, error, error_at_line): Use it. + +2002-12-07 Carlos O'Donell + + * sysdeps/unix/sysv/linux/hppa/bits/shm.h: Added SHMLBA #define. + +2002-12-08 Ulrich Drepper + + * scripts/output-format.sed: Fix bug in one of the s expressions + which used / for one too many things. + + * include/unistd.h: Declare __libc_close. + +2002-12-07 Ulrich Drepper + + * sysdeps/generic/bits/stdio-lock.h (_IO_lock_trylock): New define. + +2002-12-07 Roland McGrath + + * sysdeps/generic/libc-tls.c (__libc_setup_tls): Reintroduce changes + from 2002-12-06, but remove unnecessary memset call without removing + necessary copy of initialization image. + + * Makerules ($(common-objpfx)format.lds): New target. + (common-generated): Add it. + ($(inst_libdir)/libc.so): Depend on that, and cat it into the result. + * scripts/output-format.sed: New file. + * Makefile (distribute): Add it. + +2002-12-07 Ulrich Drepper + + * sysdeps/generic/libc-tls.c: Include . + Reported by Art Haas . + +2002-12-07 Kenneth W. Chen + + * sysdeps/ia64/strncpy.S (strncpy): Clear ar.ec. Fix .recovery4. + +2002-12-07 Jakub Jelinek + + * string/test-strncpy.c (do_random_tests): Improve test coverage. + +2002-12-06 Ulrich Drepper + + * test-skeleton.c (timeout_handler): Allow expected signal to be + SIGALRM. + + * wctype/wcfuncs.c: Add libc_hidden_def for iswalnum. + + * sysdeps/posix/raise.c: Add libc_hidden_def for raise. + +2002-12-07 Jakub Jelinek + + * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h [RTLD_PRIVATE_ERRNO] + (SYSCALL_ERROR_HANDLER): Fix a pasto. + Reported by Jeff Bailey . + +2002-12-06 Ulrich Drepper + + * sysdeps/generic/libc-tls.c: Undo last patch. + + * include/wctype.h: Define iswalnum with libc_hidden_proto. + + * include/signal.h: Define raise with libc_hidden_proto. + + * sysdeps/unix/sysv/linux/fexecve.c (fexecve): Use __snprintf and + __execve instead of snprintf and execve. + + * sysdeps/x86_64/fpu/libm-test-ulps: Relax errors for float and double + again a bit. + +2002-12-06 Jakub Jelinek + + * posix/Makefile (annexc.out): Add -I../dir for all sorted-dirs. + * posix/annexc.c (fmt, testfmt): Remove -D_LIBC. + +2002-12-06 Ulrich Drepper + + * misc/syslog.c (log_cleanup): New function. + (openlog): Use log_cleanup instead of __libc_mutex_unlock. + (closelog): Likewise. + + * elf/dl-close.c: Use __rtld_lock_* macros instead of __libc_lock_*. + * elf/dl-iteratephdr.c: Likewise. + * elf/dl-lookup.c: Likewise. + * elf/dl-misc.c: Likewise. + * elf/dl-open.c: Likewise. + * elf/dl-support.c: Likewise. + * elf/rtld.c: Likewise. + * sysdeps/generic/ldsodefs.h: Likewise. + * sysdeps/generic/bits/libc-lock.h: Define __rtld_lock_* macros. + * sysdeps/mach/bits/libc-lock.h: Likewise. + * sysdeps/mach/hurd/bits/libc-lock.h: Likewise. + +2002-12-06 Roland McGrath + + * sysdeps/generic/libc-tls.c (__libc_setup_tls): Cope with zero ALIGN. + + * malloc/hooks.c [_LIBC && (USE___THREAD || (USE_TLS && !SHARED))] + (malloc_starter, memalign_starter, free_starter): Don't define these. + * malloc/malloc.c [_LIBC && (USE___THREAD || (USE_TLS && !SHARED))]: + Don't declare them either. + * malloc/arena.c (ptmalloc_init) [_LIBC && USE_TLS]: Don't call + __pthread_initialize, so no need to set hooks to *_starter. + (ptmalloc_init_minimal): New function, broken out of ptmalloc_init. + [_LIBC && SHARED && USE_TLS && !USE___THREAD] + (__libc_malloc_pthread_startup): New function. + * malloc/Versions (libc: GLIBC_PRIVATE): New set, add that function. + + * malloc/hooks.c (memalign_starter): New function. + * malloc/malloc.c: Declare it. + * malloc/arena.c (save_memalign_hook): New variable. + (ptmalloc_init): Set __memalign_hook to memalign_starter. + + * elf/dl-minimal.c (free): Clear the memory. + (calloc): Just call malloc, knowing all memory it returns is cleared. + + * sysdeps/generic/dl-tls.c (allocate_dtv): Use calloc instead of + malloc and memset; calloc can avoid the zeroing when redundant. + (_dl_tls_setup): Likewise. + * elf/dl-load.c (decompose_rpath): Likewise. + * sysdeps/generic/libc-tls.c (__libc_setup_tls): Comment out memset + call, since memory from sbrk at startup is already zero. + + * elf/rtld.c (_dl_start, dl_main): TLS_INIT_TP macro now returns an + error string for failure, null for success. Update callers. + * sysdeps/generic/libc-tls.c (__libc_setup_tls): Likewise. + * elf/dl-load.c (_dl_map_object_from_fd): Likewise. + +2002-12-05 Jakub Jelinek + + * sysdeps/unix/sysv/linux/x86_64/syscalls.list (sendfile): Change + args to i:iipi. + (readahead): Change args to i:iii. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list (readahead): + Change args to i:iii. + * sysdeps/unix/sysv/linux/mips/syscalls.list (readahead): Change + args to i:iiii. + +2002-12-05 Roland McGrath + + * stdlib/cxa_finalize.c (__cxa_finalize): When given a null argument, + call all functions rather than none. + Reported by Mark P. Mitchell . + +2002-12-04 Roland McGrath + + * locale/localeinfo.h [NL_CURRENT_INDIRECT]: Use attribute_tls_model_ie + on _nl_current_LC_* variables. + +2002-12-05 Ulrich Drepper + + * dirent/bug-readdir1.c (main): Don't call closedir, just close + the file descriptor. This is testing what the bug report was about. + +2002-12-04 Ulrich Drepper + + * po/be.po: New file. + + * argp/Makefile (tests): Add tst-argp1. + + * sysdeps/unix/sysv/linux/alpha/bits/siginfo.h: (struct sigevent): + Change type of _attribute to void*. + * sysdeps/unix/sysv/linux/ia64/bits/siginfo.h: Likewise. + * sysdeps/unix/sysv/linux/bits/siginfo.h: Likewise. + * sysdeps/unix/sysv/linux/mips/bits/siginfo.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/bits/siginfo.h: Likewise. + * sysdeps/unix/sysv/linux/s390/bits/siginfo.h: Likewise. + +2002-12-04 Roland McGrath + + * sysdeps/generic/ldsodefs.h (struct rtld_global): Move all [USE_TLS] + members to the end, so a libpthread compiled with !USE_TLS will still + find other members properly. + + * sysdeps/i386/i486/bits/string.h (__strcpy_g): Add dummy output + operand for DEST memory. Fix dummy input operand to use SRC. + Reported by Davin McCall . + + * sysdeps/generic/libc-tls.c (__libc_setup_tls): Account for TCB + alignment when initializing the DTV entry. + + * elf/dl-load.c (_dl_map_object_from_fd): If we hit a TLS segment + when TLS has not been set up, try to set it up if we can. + * elf/tst-tls4.c: Revert last change. + * elf/tst-tls5.c: Likewise. + * elf/tst-tls6.c: Likewise. + * elf/tst-tls7.c: Likewise. + * elf/tst-tls8.c: Likewise. + * elf/tst-tls9.c: Likewise. + + * sysdeps/generic/dl-tls.c [SHARED] (_dl_tls_setup): New function. + * sysdeps/generic/ldsodefs.h: Declare it. + * elf/Versions (ld: GLIBC_PRIVATE): Add it. + * sysdeps/generic/libc-tls.c (init_slotinfo): New static inline + function, broken out of __libc_setup_tls. + (init_static_tls): Likewise. + (__libc_setup_tls): Call them. + (_dl_tls_setup): New function, uses new subroutines. + + * elf/dl-close.c (free_slotinfo): Make argument pointer to pointer. + Clear the pointer when returning true. + (libc_freeres_fn) [SHARED]: If GL(dl_initial_dtv) is null, free the + first element of the slotinfo list too. + + * sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): Define only if + [SHARED]. + + * sysdeps/generic/ldsodefs.h (_dl_next_tls_modid): Declare as hidden. + (_dl_determine_tlsoffset): Likewise. + + * elf/rtld.c (_dl_initial_error_catch_tsd): Renamed from + startup_error_tsd, made global. + (dl_main): Update initialization. + * elf/dl-tsd.c: Likewise. + * sysdeps/generic/ldsodefs.h: Declare it. + +2002-12-03 Ulrich Drepper + + * manual/texinfo.tex: Update from latest upstream version. + +2002-12-03 Roland McGrath + + * sysdeps/generic/libc-tls.c (__libc_setup_tls): Include static TLS + area surplus in calculation for sbrk call. + + * iconvdata/cp1125.c: New file. + * iconvdata/Makefile (distribute): Add it. + (modules): Add CP1125. + (gen-8bit-gap-modules): Add cp1125. + * iconvdata/gconv-modules: Add CP1125, alias RUSCII. + * iconvdata/tst-tables.sh: Add CP1125 to the list to test. + +2002-12-03 Andreas Jaeger + + * sysdeps/x86_64/fpu/libm-test-ulps: Regenerated. + +2002-12-03 Ulrich Drepper + + * sysdeps/posix/system.c (do_system): Make signal handler + installation thread safe. + +2002-12-02 Roland McGrath + + * sysdeps/unix/sysv/linux/alpha/syscalls.list (readahead): Change + caller from EXTRA to -. + * sysdeps/unix/sysv/linux/x86_64/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise. + +2002-12-02 Carlos O'Donell + + * sysdeps/hppa/fpu/fesetround.c (fesetround): Use ~FE_DOWNWARD so both + bits of RM are cleared. + +2002-12-02 Roland McGrath + + * elf/tst-tls4.c: Define an unused TLS variable here, so that no lazy + TLS setup is required. + * elf/tst-tls5.c: Likewise. + * elf/tst-tls6.c: Likewise. + * elf/tst-tls7.c: Likewise. + * elf/tst-tls8.c: Likewise. + * elf/tst-tls9.c: Likewise. + + * elf/rtld.c (dl_main): Remove [! SHARED] conditional from + `if (GL(dl_tls_max_dtv_idx) > 0)' tests for doing TLS setup. + * elf/dl-close.c (libc_freeres_fn): Check GL(dl_tls_dtv_slotinfo_list) + for being null before calling free_slotinfo. + * elf/dl-load.c (_dl_map_object_from_fd) [SHARED]: For PT_TLS in + dynamic loading, bail with error if GL(dl_tls_max_dtv_idx) is zero. + +2002-11-30 Bruno Haible + + * iconv/gconv.h (__gconv_btowc_fct): New typedef. + (struct __gconv_step): New field __btowc_fct. + * wcsmbs/btowc.c (__btowc): Use the __btowc_fct shortcut if possible. + * iconv/gconv_int.h (__BUILTIN_TRANSFORM): Renamed from + __BUILTIN_TRANS. + (__gconv_btwoc_ascii): New declaration. + * iconv/gconv_simple.c (BUILTIN_TRANSFORMATION): Add BtowcFct argument. + (__gconv_btwoc_ascii): New function. + * iconv/gconv_builtin.h: Add BtowcFct argument to all + BUILTIN_TRANSFORMATION invocations. + * iconv/gconv_conf.c (BUILTIN_TRANSFORMATION): Add BtowcFct argument. + * iconv/iconvconfig.c (BUILTIN_TRANSFORMATION): Likewise. + * iconv/gconv_builtin.c (map): New field btowc_fct. + (BUILTIN_TRANSFORMATION): Add BtowcFct argument. Use it to initialize + btowc_fct field. + (__gconv_get_builtin_trans): Initialize __btowc_fct field. + * iconv/gconv_cache.c (find_module): Initialize __btowc_fct field. + * iconv/gconv_db.c (gen_steps, increment_counter): Likewise. + * wcsmbs/wcsmbsload.c (to_wc, to_mb): Likewise. + * iconv/skeleton.c: Document STORE_REST and FROM_ONEBYTE. + (gconv_init): Initialize __btowc_fct field. + Undefine EXTRA_LOOP_ARGS and FROM_ONEBYTE at the end. + * iconv/loop.c: Document ONEBYTE_BODY. + (gconv_btowc, FROM_ONEBYTE): Define if ONEBYTE_BODY is defined. + Undefine ONEBYTE_BODY at the end. + * iconvdata/8bit-generic.c (ONEBYTE_BODY): New macro. + * iconvdata/8bit-gap.c (NONNUL): New macro. + (BODY for FROM_LOOP): Use it. + (ONEBYTE_BODY): New macro. + * iconvdata/isiri-3342.c (HAS_HOLES): Set to 1. + (NONNUL): New macro. + * iconvdata/ansi_x3.110.c (ONEBYTE_BODY): New macro. + * iconvdata/armscii-8.c (ONEBYTE_BODY): New macro. + * iconvdata/cp1255.c (ONEBYTE_BODY): New macro. + * iconvdata/cp1258.c (ONEBYTE_BODY): New macro. + * iconvdata/tcvn5712-1.c (ONEBYTE_BODY): New macro. + * iconvdata/big5.c (ONEBYTE_BODY): New macro. + * iconvdata/big5hkscs.c (ONEBYTE_BODY): New macro. + * iconvdata/euc-cn.c (ONEBYTE_BODY): New macro. + * iconvdata/euc-jp.c (ONEBYTE_BODY): New macro. + * iconvdata/euc-jisx0213.c (ONEBYTE_BODY): New macro. + * iconvdata/euc-kr.c (ONEBYTE_BODY): New macro. + * iconvdata/euc-tw.c (ONEBYTE_BODY): New macro. + * iconvdata/gbk.c (ONEBYTE_BODY): New macro. + * iconvdata/gb18030.c (ONEBYTE_BODY): New macro. + * iconvdata/ibm932.c: Include . + (TRUE, FALSE): Remove macros. + (BODY for FROM_LOOP): Remove unused variable rp1. + (ONEBYTE_BODY): New macro. + (BODY for TO_LOOP): Use bool. + * iconvdata/ibm932.h (__ibm932sb_to_ucs4_idx): Remove array. + * iconvdata/ibm943.c: Include . + (TRUE, FALSE): Remove macros. + (BODY for FROM_LOOP): Remove unused variable rp1. + (ONEBYTE_BODY): New macro. + (BODY for TO_LOOP): Use bool. + * iconvdata/ibm943.h (__ibm943sb_to_ucs4_idx): Remove array. + * iconvdata/iso8859-1.c (ONEBYTE_BODY): New macro. + * iconvdata/iso_6937-2.c (ONEBYTE_BODY): New macro. + * iconvdata/iso_6937.c (ONEBYTE_BODY): New macro. + * iconvdata/johab.c (ONEBYTE_BODY): New macro. + * iconvdata/sjis.c (ONEBYTE_BODY): New macro. + * iconvdata/shift_jisx0213.c (ONEBYTE_BODY): New macro. + * iconvdata/t.61.c (ONEBYTE_BODY): New macro. + * iconvdata/uhc.c (ONEBYTE_BODY): New macro. + * iconvdata/gbbig5.c: Tweak comment. + +2002-12-02 Ulrich Drepper + + * po/fi.po: Update from translation team. + +2002-12-01 Roland McGrath + + * sysdeps/unix/sysv/linux/getdents.c (__GETDENTS): Fix condition + testing getdents64 return value. + + * scripts/versions.awk: Don't pass -n flag to sort command. + + * posix/bug-regex13.c: Include . + + * sysdeps/generic/libc-start.c (__libc_start_main): Do + DL_SYSDEP_OSCHECK here. + * sysdeps/unix/sysv/linux/init-first.c (init): Not here. + * sysdeps/unix/sysv/linux/dl-osinfo.h: Include . + + * sysdeps/generic/libc-tls.c (__libc_setup_tls): Bail if + argument TCBSIZE <= TLS_INIT_TCB_SIZE, not just if it's zero. + + * sysdeps/generic/dl-tls.c (_dl_allocate_tls_init): Check l_tls_offset + instead of l_type to decide whether to use TLS_DTV_UNALLOCATED. + + * include/link.h: Comment typo fix. + +2002-12-01 Roland McGrath + + * sysdeps/mach/hurd/bits/posix_opt.h (_POSIX_FSYNC): Set to 200112L. + (_POSIX_SPAWN, _POSIX_MAPPED_FILES, _POSIX_MEMLOCK_RANGE, + _POSIX_MEMORY_PROTECTION): Likewise. + (_POSIX_POLL, _POSIX_SELECT): Removed. + +2002-11-28 Ulrich Drepper + + * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define macros which + require it to 200112L. Remove _POSIX_POLL and _POSIX_SELECT. + +2002-11-28 Jakub Jelinek + + * sysdeps/unix/alpha/sysdep.S: Change defined(USE___THREAD) to + USE___THREAD. + * sysdeps/unix/sysv/linux/alpha/sysdep.h (inline_syscall*): Avoid + "=v" constraints. + +2002-11-28 Ulrich Drepper + + * sysdeps/unix/sysv/linux/x86_64/vfork.S: Don't trash the CPU's + branch prediction buffers by using unpaired call/ret. + +2002-11-27 Ulrich Drepper + + * sysdeps/unix/sysv/linux/i386/sysdep.h (ASMFMT_2): Fix typo in + first parameters constraint string. + (ASMFMT_3): Likewise. Patch by stefan.lauterbach@mincom.de. + +2002-11-27 Isamu Hasegawa + + * posix/regcomp.c (parse_expression): Set the bit since the back + reference is used in the regular expression. + * posix/regex_internal.c (re_node_set_init_1): Make it clean in case + of malloc failure. + (re_node_set_init_copy): Likewise. + * posix/regex_internal.h (state_array_t): New structure. + (re_sub_match_last_t): Likewise. + (re_sub_match_top_t): Likewise. + (re_match_context_t): Add new members. + (re_dfa_t): Likewise. + * posix/regexec.c (re_search_internal): Invoke prune_impossible_nodes + to check the matching is really correct, and retry if failed. + Move the routin pruning the impossible nodes from here, ... + (prune_impossible_nodes): To this function. + (check_matching): Invoke check_subexp_matching_top, and replace + redundant checking with transit_state_bkref invocation. + (proceed_next_node): Replace strncmp with memcmp. Reported by + Paolo Bonzini . + (update_cur_sifted_state): Remove search_subexp invocation. + (search_subexp): Remove this function. + (check_dst_limits_calc_pos): Use search_cur_bkref_entry for + optimization. + (sift_states_bkref): Use search_cur_bkref_entry for optimization. + Remove unused invocation of match_ctx_add_entry. + (transit_state): Invoke check_subexp_matching_top. + (check_subexp_matching_top): New function. + (transit_state_bkref): Remove unused array. + Merge transit_state_bkref_loop. + (transit_state_bkref_loop): Use get_subexp instead of + sift_states_backward. Use search_cur_bkref_entry for optimization. + Merge this function to transit_state_bkref. + (get_subexp): New function. + (get_subexp_sub): Likewise. + (find_subexp_node): Likewise. + (check_arrival): Likewise. + (check_arrival_expand_ecl): Likewise. + (check_arrival_expand_ecl_sub): Likewise. + (expand_bkref_cache): Likewise. + (match_ctx_init): Initialize new members. + (match_ctx_clean): New function. + (match_ctx_free): Release new members. + (match_ctx_free_subtops): New function. + (match_ctx_add_entry): Fix indent. + (search_cur_bkref_entry): New function. + (match_ctx_add_subtop): Likewise. + (match_ctx_add_sublast): Likewise. + +2002-11-25 Ulrich Drepper + + * iconv/Makefile (tests): Remove tst-iconv4.c + * iconv/tst-iconv4.c: Moved to... + * iconvdata/tst-iconv4.c: ...here. New file. + * iconvdata/Makefile (tests): Add tst-iconv4. Add dependencies. + +2002-11-25 Roland McGrath + + * inet/test-ifaddrs.c (main: addr_string): Handle null SA. + Grok AF_LINK if defined. + From Momchil Velikov . + + * sysdeps/gnu/ifaddrs.c (getifaddrs): If ioctl fails for netmask, + brdaddr, or dstaddr, just set those pointers to null and don't fail. + Reported by Momchil Velikov . + + * sysdeps/generic/ifreq.h (__if_nextreq) [_HAVE_SA_LEN]: If sa_len + is > sizeof IFR->ifa_addr, advance past the whole longer length. + (__ifreq): Count up NIFS that way too. + Reported by Momchil Velikov . + + * sysdeps/mach/hurd/lchmod.c: Include . + + * sysdeps/mach/hurd/i386/init-first.c: Include + and . + +2002-11-24 Ulrich Drepper + + * elf/elf.h (EM_ST19): Fix typo. + +2002-11-25 Jakub Jelinek + + * include/errno.h (__set_errno): Define as errno = val + unconditionally. + +2002-11-24 Roland McGrath + + * sysdeps/posix/readv.c: Include , use __set_errno macro. + * sysdeps/posix/writev.c: Likewise. + From Momchil Velikov . + + * elf/dl-error.c [! _LIBC_REENTRANT]: Use a static variable instead of + calling *GL(dl_error_catch_tsd) for a thread-local location. + * elf/rtld.c (startup_error_tsd): Conditionalize on [_LIBC_REENTRANT]. + (dl_main): Same for GL(dl_error_catch_tsd) initialization. + * elf/dl-tsd.c: Conditionalize contents on [_LIBC_REENTRANT]. + + * libio/iofflush.c: Add libc_hidden_def. + * libio/iofwrite.c: Likewise. + * sysdeps/generic/sigtimedwait.c: Likewise. + * sysdeps/generic/sigwaitinfo.c: Likewise. + * sysdeps/posix/sigwait.c: Likewise. + Reported by Momchil Velikov . + + * inet/inet_lnaof.c (inet_lnaof): Change return type to in_addr_t + to match declaration. + * inet/inet_netof.c (inet_netof): Likewise. + * inet/inet_mkadr.c (inet_makeaddr): Likewise for argument types. + Reported by Momchil Velikov . + + * configure.in: Skip AUTOCONF check under --without-cvs. + * configure: Regenerated. + + * posix/Makefile (headers): Add bits/pthreadtypes.h. + * sysdeps/unix/sysv/linux/Makefile (sysdep_heaers): Don't add it here. + * sysdeps/unix/sysv/linux/Dist: Remove it from the list. + +2002-11-24 Andreas Schwab + + * sysdeps/unix/sysv/linux/m68k/sysdep.h: Support inline syscall + with six arguments. + +2002-11-19 Jim Meyering + + * time/mktime.c (__mon_yday, __mktime_internal) [!_LIBC]: Declare + as `static'. + * time/strptime.c (__mon_yday) [!_LIBC]: Declare as `static'. + +2002-11-23 Roland McGrath + + * scripts/abilist.awk: Avoid strtonum function, not there in mawk. + Just produce hex output for datum sizes. + + * elf/Makefile ($(objpfx)librtld.mk): Tighten up regexp. + Reported by Luca Barbieri . + +2002-11-20 Steven Munroe + + * sysdeps/unix/sysv/linux/powerpc/bits/msq.h (msqid_ds) + [__WORDSIZE == 32]: Only PPC32 requires __unused1, __unused2, + and __unused3 fields. + * sysdeps/unix/sysv/linux/powerpc/bits/sem.h (semid_ds) + [__WORDSIZE == 32]: Only PPC32 requires __unused1 + and __unused2 fields. + * sysdeps/unix/sysv/linux/powerpc/bits/shm.h (shmid_ds) + [__WORDSIZE == 32]: Only PPC32 requires __unused1, __unused2, + __unused3, and __unused4 fields. + + * csu/gmon-start.c (__gmon_start__): Always use TEXT_START macro to + obtain lowest address for profiling in __monstartup call. + +2002-11-21 Roland McGrath + + * sysdeps/ia64/fpu/Makefile (libm-sysdep_routines): Remove redunant + $(calls) $(calls:=f) $(long-c-$(long-double-fcts)). + + * locale/localeinfo.h (struct locale_data): Revert last change. + + * sysdeps/unix/sysv/linux/ia64/syscalls.list (s_exit_group): Add it. + From Ian Wienand . + + * sysdeps/unix/sysv/linux/ia64/sysdep.h (__NR_pread): Define to + __NR_pread64 if not defined. + (__NR_pwrite): Define to __NR_pwrite64 if not defined. + From Ian Wienand . + +2002-11-21 Roland McGrath + + * sysdeps/mach/hurd/i386/init-first.c (posixland_init): Set + __libc_multiple_libcs here. Call __setfpucw. + +2002-11-21 Ulrich Drepper + + * elf/Makefile (tests): Don't run test-arrayX tests for now. + + * sysdeps/unix/sysv/linux/bits/sched.h: Add new CLONE_* flags. + * sysdeps/unix/sysv/linux/i386/clone.S: Add support for + CLONE_CHILD_*TID flags. + +2002-11-20 Andreas Jaeger + + * sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h (SIGCONTEXT): + We pass struct ucontext on x86-64. + (GET_PC): Adjust. + (GET_FRAME): Adjust. + (GET_STACK): Adjust. + +2002-11-20 Roland McGrath + + * sysdeps/powerpc/powerpc32/dl-machine.c [! SHARED]: Further + conditionalize [! DO_VERSIONING] #error. + + * scripts/abilist.awk: Grok function descriptor symbols. + + * intl/tst-gettext.c (main): Check return values from setlocale. + Add necessary unsetenv's to make LANG=existing-locale check work. + + * intl/tst-gettext.sh: Use mkdir -p. Copy test files unconditionally, + so aborted prior runs don't confuse things. + + * locale/localeinfo.h (struct locale_data: union locale_data_value): + Use uintptr_t instead of unsigned int for `word' member. + (_NL_CURRENT_WORD): Cast to uint32_t. + + * posix/bug-regex5.c (main): Use union to extract _NL_COLLATE_NRULES + value. + +2002-11-20 Ulrich Drepper + + * elf/tls-macros.h: Add IA-64 definitions. + Patch by Ian Wienand . + + * iconv/Makefile (tests): Add tst-iconv4. + * iconv/tst-iconv4.c: New file. + + * iconv/gconv_simple.c (internal_ucs4le_loop_unaligned): Return + __GCONV_EMPTY_INPUT only if input is really empty. Otherwise + __GCONV_INCOMPLETE_INPUT. + (ucs4le_internal_loop): Likewise. + (ucs4le_internal_loop_unaligned): Likewise. + * iconvdata/unicode.c (PREPARE_LOOP): Likewise. + * iconvdata/utf-16.c (PREPARE_LOOP): Likewise. + * iconvdata/utf-32.c (PREPARE_LOOP): Likewise. + + * iconv/loop.c (LOOPFCT): First test for empty input then for full + output buffer. + + * inet/getnameinfo.c: Use extend_alloca where appropriate. + * sysdeps/posix/getaddrinfo.c: Likewise. + + * include/alloca.h (extend_alloca): New define. Based on stack + direction it'll try to append to the previouls allocated buffer. + +2002-11-07 Thorsten Kukuk + + * sysdeps/posix/getaddrinfo.c (gaih_inet): If AF_UNSPEC is set, + use the same service for AF_INET and AF_INET6. + +2002-11-19 Ulrich Drepper + + * intl/localealias.c (read_alias_file): Use only about 400 bytes + of stack space instead of 16k. + +2002-11-18 Wolfram Gloger + + * malloc/arena.c + (ptmalloc_lock_all, ptmalloc_unlock_all, ptmalloc_unlock_all2): Do + nothing if not initialized. Bug report from Marcus Brinkmann + . + +2002-11-19 Roland McGrath + + * posix/Versions (libc: GLIBC_2.3.2): Add sched_getaffinity and + sched_setaffinity. + + * configure.in (libc_cv_gcc_dwarf2_unwind_info check): Use libraries + `-lgcc -lgcc_eh -lgcc', not just `-lgcc -lgcc_eh' in link commands for + test leading to libc_cv_gcc_dwarf2_unwind_info=no_registry_needed. + * configure: Regenerated. + +2002-11-19 Ulrich Drepper + + * include/dlfcn.h: __libc_dlopen is now a macro calling + __libc_dlopen_mode with the extra parameter RTLD_LAZY. + (__libc_dlopen_mode): New prototype. + * elf/dl-libc.c (__libc_dlopen_mode): Renamed from __libc_dlopen. Add + new parameter. Store new parameter in mode field of structure passed + to do_dlopen. + (struct do_dlopen_args): Add new field mode. + (do_dlopen): Pass mode from parameter structure to _dl_open. + +2002-11-11 Randolf Chung + + * sysdeps/unix/sysv/linux/hppa/bits/fcntl.h [__USE_FILE_OFFSET64] + (F_GETLK, F_SETLK, F_SETLKW): Define to F_*64 versions. + * sysdeps/unix/sysv/linux/hppa/fcntl.c: New file. + + * sysdeps/hppa/fpu/libm-test-ulps: New file (generated). + + * sysdeps/hppa/Makefile (CFLAGS-rtld.c): New variable. + Set -mdisable-fpregs for this file. + +2002-11-11 Carlos O'Donell + + * sysdeps/unix/sysv/linux/configure.in: + Make 2.4.19 minimum linux kernel for hppa, and add unwind symbols + from gcc-3.0 era for backwards compatibility. + * sysdeps/unix/sysv/linux/configure: Regenerate. + + * sysdeps/unix/sysv/linux/hppa/sys/ucontext.h: + Define mcontext_t as a sigcontext. + +2002-11-18 Roland McGrath + + * dlfcn/dlerror.c (fini): New function, __attribute__ ((destructor)). + Free memory in `last_result' if it was used. + + * resolv/nss_dns/dns-network.c (getanswer_r): In BYNAME case, search + all aliases for one that matches the ".IN-ADDR.ARPA" form. + Do the parsing inline instead of copying strings and calling + inet_network, and properly skip all alias names not matching the form. + + * manual/pattern.texi (Variable Substitution): Fix # and ## examples. + +2002-11-17 Ulrich Drepper + + * manual/pattern.texi (Wordexp Example): Fix sample code. + + * sysdeps/unix/sysv/linux/i386/clone.S: Initialize word in the + childs stack which will be loaded into the %esi register. + +2002-11-14 Paul Eggert + + * resolv/nss_dns/dns-network.c (getanswer_r): Check for buffer + overflow when skipping the question part and when unpacking aliases. + +2002-11-15 Roland McGrath + + * math/Makefile (libm-calls): Remove s_copysign, s_isinf, s_isnan, + s_finite, s_modf, s_scalbn, s_frexp, m_ldexp, s_signbit. + Instead add $(calls:s_%=m_%) to get m_* versions of them all. + +2002-11-15 Jakub Jelinek + + * sysdeps/i386/dl-machine.h (elf_machine_rela): Handle R_386_COPY. + * sysdeps/arm/dl-machine.h (elf_machine_rela): Handle R_ARM_COPY. + +2002-11-15 Roland McGrath + + * math/Makefile (libm-calls): Change s_ldexp to m_ldexp. + * Makerules ($(+sysdir_pfx)sysd-rules): Emit pattern rules for m_%.[Sc] + from sysdeps/.../s_%.[Sc] with commands $(+make-include-of-dep). + (+make-include-of-dep): New canned sequence. + + * stdlib/canonicalize.c (__realpath): Check for malloc failure. + From Dmitry V. Levin . + +2002-11-14 Roland McGrath + + * sysdeps/generic/errno.c (__libc_errno): Remove alias. + * inet/herrno.c (__libc_h_errno): Likewise. + * resolv/res_libc.c (__libc_res): Likewise. + [USE___THREAD]: Use this in place of [USE_TLS && HAVE___THREAD]. + (__res_state) [! USE___THREAD]: Don't define as weak. + * csu/Versions: Revert last change. + * resolv/Versions: Revert last change. + + * Makerules ($(common-objpfx)%.make): New pattern rule. + * tls.make.c: New file. + * Makefile (distribute): Add it. + + * sysdeps/generic/errno.c [! USE___THREAD] + [HAVE_ELF && SHARED && DO_VERSIONING] (errno, _errno): Declare these + with compat_symbol so they are not link-time visible. + [! USE___THREAD] (__libc_errno): New alias for errno. + * csu/Versions [!(USE_TLS && HAVE___THREAD)] (libc: GLIBC_PRIVATE): + Add __libc_errno here. + * inet/herrno.c [USE___THREAD]: Use this conditional + in place of [USE_TLS && HAVE___THREAD]. + [! USE___THREAD] [HAVE_ELF && SHARED && DO_VERSIONING] + (h_errno, _h_errno): Declare these with compat_symbol so they are not + link-time visible. + [! USE___THREAD] (__libc_h_errno): New alias for h_errno. + * resolv/res_libc.c [! USE___THREAD] + [HAVE_ELF && SHARED && DO_VERSIONING] (_res): Likewise. + (_res): Use __attribute__ ((section (".bss"))) so we can have an alias. + (__libc_res): Define as alias for _res. + * resolv/Versions [!(USE_TLS && HAVE___THREAD)] (libc: GLIBC_PRIVATE): + Add __libc_h_errno and __libc_res here. + +2002-11-14 Jakub Jelinek + + * csu/Versions (errno): Move STT_TLS symbol to GLIBC_PRIVATE for now. + * resolv/Versions (h_errno, _res): Likewise. + +2002-11-14 Roland McGrath + + * Makerules (%.dynsym): Remove $(objpfx) from target and dep. + (%.symlist): Likewise. + +2002-11-13 Roland McGrath + + * scripts/abilist.awk: New file. + * Makefile (distribute): Add it. + * Makerules ($(objpfx)%.dynsym, $(objpfx)%.symlist): New rules. + (tests): Depend on .symlist file for each $(install-lib.so-versioned). + [$(subdir) = elf] (tests): Depend on libc.symlist. + (generated, common-generated): Add those files. + + * aclocal.m4 (LIBC_PROG_BINUTILS): Check for objdump, set OBJDUMP. + * configure: Regenerated. + * config.make.in (OBJDUMP): New variable, substituted by configure. + + * malloc/mcheck.c (struct hdr): New members `block' and `magic2'. + (mallochook, reallochook): Set them up. + (checkhdr): Check HDR->magic2 value. + (freehook): Reset HDR->magic2. + (memalignhook): New static function. + (old_memalign_hook): New static variable. + (mcheck, reallochook): Set __memalign_hook to memalignhook. + + * sysdeps/generic/dl-tls.c (_dl_allocate_tls_storage): Zero the space + for the new TCB. + +2002-11-13 Andreas Jaeger + + * sysdeps/unix/sysv/linux/x86_64/sigaction.c: Check for visibility + attribute. + * sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise. + +2002-11-11 Paul Eggert + + * manual/crypt.texi (Cryptographic Functions): Mention that + the MD5 one-way algorithm is compatible with BSD's. + +2002-11-11 Isamu Hasegawa + + * posix/regex_internal.c (re_string_skip_chars): Also return the last + wide character. + (re_string_reconstruct): Calculate the context by itself when the + offset points out of the valid range. + (re_string_context_at): Use wide character when MB_CUR_MAX > 1. + * posix/regex_internal.h (WIDE_NEWLINE_CHAR): New macro. + (IS_WIDE_WORD_CHAR): New macro. + (IS_WIDE_NEWLINE): New macro. + +2002-11-12 Andreas Jaeger + + * sysdeps/x86_64/strchr.S: Don't use one register for two + purposes, this fixes a bug noticed by test-strchr.c. + + * sysdeps/x86_64/strcat.S: Fix algorithm to align source pointer + correctly. + +2002-11-12 Roland McGrath + + * libio/libioP.h [_LIBC && !SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)] + (_G_IO_NO_BACKWARD_COMPAT): Define it. + + * sysdeps/ia64/dl-fptr.c [_LIBC_REENTRANT]: Include + instead of . + [_LIBC_REENTRANT] (lock, unlock): Use __sync_lock_* macros instead of + testandset. + From Ian Wienand . + +2002-11-10 Roland McGrath + + * libio/bug-wfflush.c (do_test): Call rewind instead of fsetpos. + Call fputs instead of fwprintf (simpler to follow in debugger). + + * crypt/md5-crypt.c: Doc fix. + + * sysdeps/unix/make-syscalls.sh: Insert $(make-target-directory) at + the beginning of generated target commands. + + * csu/Makefile ($(objpfx)crti.o, $(objpfx)crtn.o): Add explicit + dependencies for these in case implicit rule search skipped the + nonexistent source directory. + * sysdeps/gnu/Makefile ($(objpfx)errlist.d): Give this rule all the + files with $(object-suffixes) as targets too. + * Makerules [no_deps && objpfx] (before-compile): Add $(objpfx). + and a target for it using $(make-target-directory). + + * Rules (before-compile): Add $(common-objpfx)bits/stdio-lim.h. + +2002-11-10 Roland McGrath + + * sysdeps/unix/sysv/linux/bits/pthreadtypes.h: Moved to ... + * sysdeps/generic/bits/pthreadtypes.h: ... here. + + * sysdeps/mach/hurd/fcntl.c (__libc_fcntl): Treat a struct flock with + l_start == 0 and l_len == 1 as we do l_len == 0. + +2002-11-10 Ulrich Drepper + + * po/da.po: Update from translation team. + +2002-11-10 Roland McGrath + + * config.make.in (includedir): New variable, substituted by configure. + Reported missing by Jocelyn Fournier . + * Makeconfig (includedir): Use $(prefix), not $(exec_prefix). + +2002-11-10 Andreas Jaeger + + * sysdeps/unix/sysv/linux/x86_64/sys/ucontext.h (enum): Add + REG_OLDMASK and REG_CR2 to synch with kernel header. + (NGREG): Increase. + + * nss/getXXent.c (GETFUNC_NAME): Use union type to avoid strict + aliasing problem. + * nss/getXXbyYY_r.c (INTERNAL): Likewise. + * nss/getnssent_r.c (__nss_getent_r): Likewise. + (__nss_setent): Likewise. + (__nss_getent_r): Likewise. + * inet/getnetgrent_r.c (innetgr): Likewise. + (__internal_setnetgrent_reuse): Likewise. + (internal_getnetgrent_r): Likewise. + * inet/ether_hton.c (ether_hostton): Likewise. + * inet/ether_ntoh.c (ether_ntohost): Likewise. + * sunrpc/netname.c (netname2user): Likewise. + * sunrpc/publickey.c (getpublickey): Likewise. + (getsecretkey): Likewise. + +2002-11-09 Marcus Brinkmann + + * sysdeps/mach/hurd/i386/ioperm.c (ioperm): Correct off by one + error in range calculation. + +2002-10-09 Jakub Jelinek + + * string/test-strspn.c (do_test): Ensure zero termination. + * string/test-strpbrk.c (do_test): Likewise. + * string/test-strncmp.c (stupid_strncmp): Use strnlen, not strlen. + * string/test-strncpy.c (stupid_strncpy): Likewise. + * string/test-stpncpy.c (stupid_stpncpy): Likewise. + +2002-10-08 Roland McGrath + + * string/test-string.h (test_init): Fill BUF1 and BUF2 with + nonzero characters. + +2002-09-22 H.J. Lu + + * sysdeps/unix/sysv/linux/mmap64.c (MMAP2_PAGE_SHIFT): Renamed + from PAGE_SHIFT. Define if not defined. Check MMAP2_PAGE_SHIFT + only if __NR_mmap2 is defined. + + * sysdeps/unix/sysv/linux/powerpc/mmap64.c: Moved to ... + * sysdeps/unix/sysv/linux/mmap64.c: ... here. + * sysdeps/unix/sysv/linux/hppa/mmap64.c: File removed. + * sysdeps/unix/sysv/linux/sparc/sparc32/mmap64.c: FIle removed, + +2002-11-08 Jakub Jelinek + + * posix/bug-regex13.c (tests): Add new test. + + * string/test-strchr.c (stupid_strchr): New function. + (do_random_tests): Make sure the string is zero terminated. + * string/test-strpbrk.c (stupid_strpbrk): New function. + (do_random_tests): Make sure the string is zero terminated. + * string/test-strcmp.c (stupid_strcmp): New function. + (do_random_tests): Make sure the strings are zero terminated. + * string/test-strspn.c (stupid_strspn): New function. + (simple_strspn): Rename rej argument to acc. + (do_random_tests): Make sure the string is zero terminated. + * string/test-strcspn.c (stupid_strcspn): New function. + * string/test-strncpy.c (stupid_strncpy): New function. + * string/test-stpncpy.c (stupid_stpncpy): New function. + * string/test-strncmp.c (stupid_strncmp): New function. + (do_random_tests): Make sure the strings are zero terminated. + * string/test-string.h (impl_t): Change test into long. + (IMPL): Add __attribute__((aligned (sizeof (void *)))). + +2002-11-08 Roland McGrath + + * sysdeps/ia64/elf/configure.in: Add TLS check. + From Ian Wienand . + * sysdeps/ia64/elf/configure: Regenerated. + +2002-11-07 Roland McGrath + + * libio/fileops.c (_IO_new_file_overflow): Use INTUSE(_IO_do_write) in + place of _IO_new_do_write. + [_LIBC] (_IO_do_write): Define as macro for _IO_new_do_write and + #undef before versioned_symbol use. + +2002-11-07 Richard Henderson + + * configure.in (ASM_ALPHA_NG_SYMBOL_PREFIX): Remove test. + * configure: Regenerated. + * config.h.in (ASM_ALPHA_NG_SYMBOL_PREFIX): Remove #undef. + * sysdeps/alpha/dl-machine.h (TRAMPOLINE_TEMPLATE): Use !samegp. + (RTLD_START): Likewise. Access _dl_skip_args, _rtld_local, and + _dl_fini via gp-relative relocations. + * sysdeps/alpha/fpu/e_sqrt.c: Use !samegp. + + * elf/tls-macros.h: Add alpha versions. + * sysdeps/alpha/dl-machine.h (elf_machine_rela): Handle TLS relocs. + * sysdeps/unix/alpha/sysdep.S: Support USE___THREAD. + * sysdeps/unix/alpha/sysdep.h: Likewise. Add SYSCALL_ERROR_HANDLER. + * sysdeps/unix/sysv/linux/alpha/brk.S: Use it. + * sysdeps/unix/sysv/linux/alpha/clone.S: Likewise. + * sysdeps/unix/sysv/linux/alpha/getitimer.S: Likewise. + * sysdeps/unix/sysv/linux/alpha/getrusage.S: Likewise. + * sysdeps/unix/sysv/linux/alpha/gettimeofday.S: Likewise. + * sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S: Likewise. + * sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S: Likewise. + * sysdeps/unix/sysv/linux/alpha/rt_sigaction.S: Likewise. + * sysdeps/unix/sysv/linux/alpha/select.S: Likewise. + * sysdeps/unix/sysv/linux/alpha/setitimer.S: Likewise. + * sysdeps/unix/sysv/linux/alpha/settimeofday.S: Likewise. + * sysdeps/unix/sysv/linux/alpha/sigsuspend.S: Likewise. + * sysdeps/unix/sysv/linux/alpha/syscall.S: Likewise. + * sysdeps/unix/sysv/linux/alpha/utimes.S: Likewise. + * sysdeps/unix/sysv/linux/alpha/wait4.S: Likewise. + + * sysdeps/unix/sysv/linux/alpha/sysdep.h: Re-include protect. + Kill argument registers across the inline syscall. + + * sysdeps/unix/sysv/linux/alpha/clone.S: Add user_tid and tls args. + + * linuxthreads/sysdeps/alpha/tls.h: New file. + * sysdeps/alpha/dl-tls.h: New file. + +2002-10-29 David Mosberger + + * sysdeps/ia64/elf/initfini.c [HAVE_INITFINI_ARRAY] + (gmon_initializer): New function. + (.init prologue): If HAVE_INITFINI_ARRAY is true, don't call + __gmon_start__ here. Call it from gmon_initializer() instead. + +2002-03-12 H.J. Lu + + * elf/Makefile [$(have-initfini-array) = yes] (tests): Add tst-array1, + tst-array2, and tst-array3. + [$(have-initfini-array) = yes] (tests-static): Add tst-array3. + [$(have-initfini-array) = yes] (modules-names): Add tst-array2dep. + ($(objpfx)tst-array1.out): New target. + ($(objpfx)tst-array2): Likewise. + ($(objpfx)tst-array2.out): Likewise. + ($(objpfx)tst-array3.out): Likewise. + * elf/tst-array1.c: New file. + * elf/tst-array1.exp: Likewise. + * elf/tst-array2.c: Likewise. + * elf/tst-array2dep.c: Likewise. + * elf/tst-array2.exp: Likewise. + * elf/tst-array3.c: Likewise. + +2002-10-28 David Mosberger + + * elf/dl-fini.c (_dl_fini): Invoke fini_array in _reverse_ order. + Don't add L->l_addr to array entry values. + +2002-11-07 Jakub Jelinek + + * string/test-string.h: New file. + * string/test-strlen.c: New file. + * string/test-string.h: New file. + * string/test-strcmp.c: New file. + * string/test-strchr.c: New file. + * string/test-strrchr.c: New file. + * string/test-strcpy.c: New file. + * string/test-stpcpy.c: New file. + * string/test-strncpy.c: New file. + * string/test-stpncpy.c: New file. + * string/test-strpbrk.c: New file. + * string/test-strcspn.c: New file. + * string/test-strspn.c: New file. + * string/test-strcat.c: New file. + * string/test-strncmp.c: New file. + * string/test-memchr.c: New file. + * string/test-memcmp.c: New file. + * string/test-memset.c: New file. + * string/test-memcpy.c: New file. + * string/test-mempcpy.c: New file. + * string/test-memmove.c: New file. + * string/Makefile (strop-tests): New variable. + (tests): Add strop-tests. + (distribute): Add test-string.h. + +2002-11-06 Ulrich Drepper + + * posix/regcomp.c: Use tabs instead of spaces. + * posix/regexec.c: Likewise. + * posix/regex_internal.h: Likewise. + + * posix/regcomp.c (re_compile_fastmap_iter): Use __wcrtomb not wctomb. + +2002-11-06 Jakub Jelinek + + * posix/regcomp.c (re_compile_pattern): Don't set regs_allocated + here. + (regcomp): Don't set can_be_null here. + (re_comp): Clear whole re_comp_buf with the exception of fastmap. + (re_compile_internal): Clear can_be_null, set regs_allocated. + + * posix/regcomp.c (re_set_fastmap): New function. + (re_compile_fastmap_iter): Use it. Remove redundant type == + COMPLEX_BRACKET check. + * posix/regexec.c (re_search_internal): Optimize searching with + fastmap. Call re_string_reconstruct even if match_first is + smaller than raw_mbs_idx. + +2002-11-06 Isamu Hasegawa + + * posix/regcomp (free_dfa_content): Use free_state. + * posix/regex_internal.c (re_string_realloc_buffers): Don't edit + pointers in case that realloc failed. + (re_node_set_merge): Likewise. + (register_state): Likewise. + (create_newstate_common): Invoke memory release functions in case of + error conditions. + (create_ci_newstate): Likewise. + (create_cd_newstate): Likewise. + (free_state): New function. + * posix/regexec.c (re_search_internal): Invoke memory release + functions in case of error conditions. + (sift_states_backward): Likewise. + (merge_state_array): Likewise. + (add_epsilon_src_nodes): Likewise. + (sub_epsilon_src_nodes): Likewise. + (search_subexp): Likewise. + (sift_states_bkref): Likewise. + (transit_state_sb): Likewise. + (transit_state_mb): Likewise. + (transit_state_bkref_loop): Likewise. + (group_nodes_into_DFAstates): Likewise. + (push_fail_stack): Don't edit pointers in case that realloc failed. + (extend_buffers): Likewise. + (match_ctx_add_entry): Likewise. + +2002-11-06 Roland McGrath + + * sysdeps/unix/sysv/linux/mips/configure.in: File removed. + * sysdeps/unix/sysv/linux/mips/configure: Likewise. + + * configure.in: Add checks on as and ld for binutils 2.13 or later. + * configure: Regenerated. + +2002-11-06 Ulrich Drepper + + * posix/regcomp.c (regcomp): __re_compile_fastmap can never fail. + If re_compile_internal failed free fastmap buffer. + (free_dfa_content): Broken out of regfree function. Frees all dfa + related data. + (regfree): Add free_dfa_content. + (re_compile_internal): If any of the called functions fails free + all dfa related memory. + +2002-11-05 Ulrich Drepper + + * sysdeps/unix/sysv/linux/sys/sysctl.h: Add ugly hacks to prevent + warnings from the kernel headers. + +2002-11-05 Roland McGrath + + * sysdeps/unix/mips/sysdep.h [! __PIC__] (PSEUDO): Add nop after jump. + From Johannes Stezenbach . + + * sysdeps/unix/sysv/linux/mips/Versions (libc: GLIBC_2.0): Change + #errlist-compat magic comment to give 123 as size. + (libc: GLIBC_2.1): Remove this set, moving #errlist-compat magic to ... + (libc: GLIBC_2.2): ... here. + (libc: GLIBC_2.3): Likewise. + +2002-11-05 Ulrich Drepper + + * elf/dl-fini.c (_dl_fini): Correct the increment of l_opencount + which happens at the beginning so that we can unload modules in + __libc_freeres. + +2002-11-06 Kaz Kojima + + * sysdeps/sh/bits/setjmp.h (JB_SIZE): Define only + under [__USE_MISC || _ASM]. + + * elf/elf.h: Remove the obsolete SH TLS relocations. + +2002-11-05 Ulrich Drepper + + * posix/regcomp.c (regcomp): Initialize preg->can_be_null to zero. + +2002-11-05 Franz Sirl + + * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Handle + __NR_pread64 and __NR_pwrite64. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Likewise. + * sysdeps/unix/sysv/linux/powerpc/pread.c: Remove __NR_pread64 + and __NR_pwrite64. + Revert change to use INLINE_SYSCALL. + * sysdeps/unix/sysv/linux/powerpc/pread64.c: Likewise. + * sysdeps/unix/sysv/linux/powerpc/pwrite.c: Likewise. + * sysdeps/unix/sysv/linux/powerpc/pwrite64.c: Likewise. + * sysdeps/unix/sysv/linux/powerpc/ftruncate64.c: Revert change to use + INLINE_SYSCALL. + * sysdeps/unix/sysv/linux/powerpc/truncate64.c: Likewise. + + * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h (INLINE_SYSCALL): + Update clobber list and add a comment about the syscall ABI. + + * sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list (s_pread64, + s_pwrite64, s_ftruncate, s_truncate): Re-add. + +2002-11-05 Jakub Jelinek + + * iconv/gconv_dl.c (free_mem): Clear loaded. + * locale/loadarchive.c (_nl_archive_subfreeres): Call locale_data's + cleanup if any. + +2002-11-05 Ulrich Drepper + + * sysdeps/unix/sysv/linux/fexecve.c: Include . + + * libio/ioseekoff.c: Remove INTDEF. Define _IO_seekoff_unlocked. Same + as old code without locking. _IO_seekoff calls this function after + locking the stream. + * libio/ioseekpos.c: Likewise for _IO_seekpos. + * libio/libioP.h: Replace _IO_seekoff_internal and _IO_seekpos_internal + prototypes with _IO_seekoff_unlocked and _IO_seekpos_unlocked + prototypes. + * libio/iolibio.h (_IO_fseek): Call _IO_seekoff_unlocked instead + of _IO_seekoff_internal. + (_IO_rewind): Likewise. + * libio/ioftell.c: Likewise. + * libio/ftello.c: Likewise. + * libio/ftello64.c: Likewise. + * libio/iofgetpos.c: Likewise. + * libio/iofgetpos64.c: Likewise. + * libio/oldiofgetpos.c: Likewise. + * libio/oldiofgetpos64.c: Likewise. + * libio/iofsetpos.c: Call _IO_seekpos_unlocked instead of + _IO_seekpos_internal. + * libio/iofsetpos64.c: Likewise. + * libio/oldiofsetpos.c: Likewise. + * libio/oldiofsetpos64.c: Likewise. + +2002-11-04 Roland McGrath + + * sysdeps/unix/sysv/linux/powerpc/chown.c: Use INLINE_SYSCALL macro. + * sysdeps/unix/sysv/linux/powerpc/ftruncate64.c: Likewise. + * sysdeps/unix/sysv/linux/powerpc/ioctl.c: Likewise. + * sysdeps/unix/sysv/linux/powerpc/pread.c: Likewise. + * sysdeps/unix/sysv/linux/powerpc/pread64.c: Likewise. + * sysdeps/unix/sysv/linux/powerpc/pwrite.c: Likewise. + * sysdeps/unix/sysv/linux/powerpc/pwrite64.c: Likewise. + * sysdeps/unix/sysv/linux/powerpc/tcgetattr.c: Likewise. + * sysdeps/unix/sysv/linux/powerpc/tcsetattr.c: Likewise. + * sysdeps/unix/sysv/linux/powerpc/truncate64.c: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list (s_ioctl, + s_chown, s_ftruncate64, s_mmap2, s_pread64, s_pwrite64, s_truncate64, + sys_fstat, sys_lstat, sys_mknod, sys_readv, sys_stat, sys_writev): + Remove these, no longer used. + +2002-11-04 Franz Sirl + + * sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list (s_ipc, + s_llseek, s_readahead, s_execve, s_fcntl, s_fcntl64, s_fstat64, + s_getcwd, s_getdents, s_getdents64, s_getpmsg, s_getpriority, + s_getrlimit, s_lstat64, s_poll, s_ptrace, s_putpmsg, s_reboot, + s_setrlimit, s_sigaction, s_sigpending, s_sigprocmask, s_sigsuspend, + s_stat64, s_sysctl, s_ugetrlimit, s_ustat, s_vfork): Remove now unused + syscall stubs. + + * sysdeps/unix/sysv/linux/pwrite.c: Fix typo. + * sysdeps/unix/sysv/linux/pwrite64.c: Likewise. + * sysdeps/unix/sysv/linux/powerpc/pread.c: Handle both __NR_pread64 + and __NR_pread. + * sysdeps/unix/sysv/linux/powerpc/pread64.c: Likewise. + * sysdeps/unix/sysv/linux/powerpc/pwrite.c: Handle both __NR_pwrite64 + and __NR_pwrite. + * sysdeps/unix/sysv/linux/powerpc/pwrite64.c: Likewise. + +2002-11-03 Roland McGrath + + * sysdeps/generic/ldsodefs.h (struct rtld_global): New member + `_dl_tls_static_used'. + * sysdeps/generic/libc-tls.c (_dl_tls_static_used): New variable. + (__libc_setup_tls): Initialize it. Let the initial value of + _dl_tls_static_size indicate some surplus space in the computed value. + * elf/dl-open.c (_dl_tls_static_size): New variable. + * sysdeps/generic/dl-tls.c (_dl_determine_tlsoffset): Initialize + _dl_tls_static_used. Add some surplus space into _dl_tls_static_size. + * elf/dl-reloc.c [USE_TLS] (allocate_static_tls): New function. + (CHECK_STATIC_TLS): Use it. + * elf/dl-close.c (_dl_close): Adjust _dl_tls_static_used when the + closed objects occupied a trailing contiguous chunk of static TLS area. + +2002-10-18 Bruno Haible + + * charmaps/ISO_5428: Use Greek characters introduced in Unicode 3.0. + +2002-11-04 Ulrich Drepper + + * libio/wfileops.c (_IO_wfile_seekoff): Don't modify _offset and + _wide_data->_IO_read_end if adjustment can be made in the current + buffer. + + * sysdeps/unix/sysv/linux/fexecve.c: New file. + + * libio/bug-wfflush.c (do_test): Using fseek is not allowed when + wide oriented streams are used. + + * nss/getXXent_r.c (ENDFUNC_NAME): Don't do anything if the + service hasn't been used [PR libc/4744]. + + * include/features.h: Use __STDC_VERSION__ not __STDC_VERSION. + Reported by Miloslav Trmac [PR libc/4766]. + + * manual/examples/dir.c: Don't include . + * manual/examples/select.c: Include for TEMP_FAILURE_RETRY. + Reported by Frédéric Delanoy . + +2002-11-02 H.J. Lu + + * stdio-common/reg-printf.c: Include . + +2002-11-03 Ulrich Drepper + + * sysdeps/generic/libc-tls.c: Define _dl_tls_static_used. + + * po/ca.po: Update from translation team. + * po/es.po: Likewise. + + * sysdeps/generic/segfault.c (catch_segfault): If HAVE_PROC_SELF + is defined write out memory map. + * sysdeps/unix/sysv/linux/segfault.c: New file. + +2002-11-02 Roland McGrath + + * sysdeps/unix/sysv/linux/getdents.c (__GETDENTS): Use union type for + pointers that can alias. + Reported by Daniel Jacobowitz . + + * sysdeps/unix/bsd/bsd4.4/freebsd/bits/typesizes.h: New file. + +2002-11-02 Roland McGrath + + * manual/filesys.texi (Reading/Closing Directory): Rewrite readdir_r + description to be clearer and to say that *RESULT is set to ENTRY. + +2002-10-30 Jakub Jelinek + + * posix/regexec.c (build_trtable): Alloca or malloc dests_node and + dests_ch arrays together. Alloca or malloc dest_states, + dest_states_word and dest_states_nl arrays together. Free memory on + error exit. + +2002-10-29 Daniel Jacobowitz + + * crypt/crypt_util.c (__init_des_r): Initialize current_salt + and current_saltbits. + +2002-11-02 Roland McGrath + + * stdio-common/reg-printf.c: Include . + +2002-11-02 H.J. Lu + + * sysdeps/unix/sysv/linux/mips/syscalls.list (s_execve): Set + caller to EXTRA instead of execve. + +2002-11-01 Roland McGrath + + * sysdeps/generic/errno-loc.c [! USE___THREAD]: Use this conditional + in place of [!(USE_TLS && HAVE___THREAD)]. + (__errno_location) [! USE___THREAD]: Define as strong, not weak. + +2002-10-31 Roger Sayle + + * sysdeps/i386/soft-fp/sfp-machine.h (_FP_NANFRAC_Q, _FP_NANSIGN_Q): + New macros. + * sysdeps/x86_64/soft-fp/sfp-machine.h: Likewise. + + * soft-fp/soft-fp.h: Allow sfp-machine.h to define FP_RND_NEAREST + without defining FP_ROUNDMODE. + +2002-10-29 Jakub Jelinek + + * sysdeps/gnu/siglist.c (PTR_SIZE_STR): Remove. + (__old_sys_siglist, __old_sys_sigabbrev): Use strong_alias and + declare_symbol. + * sysdeps/mach/hurd/siglist.h (OLD_SIGLIST_SIZE_STR): Remove. + (OLD_SIGLIST_SIZE): Define. + * sysdeps/unix/sysv/linux/siglist.h (OLD_SIGLIST_SIZE_STR): Remove. + (OLD_SIGLIST_SIZE): Define. + * sysdeps/unix/sysv/linux/arm/siglist.c: Remove. + +2002-11-01 Jakub Jelinek + + * sysdeps/ia64/strncpy.S: Fix recovery code. + +2002-10-30 Jakub Jelinek + + * include/libc-symbols.h (__libc_freeres_fn_section, libc_freeres_fn): + New macros. + * elf/dl-close.c (free_mem): Use libc_freeres_fn macro, remove + text_set_element. + * elf/dl-libc.c (free_mem): Likewise. + * iconv/gconv_conf.c (free_mem): Likewise. + * iconv/gconv_db.c (free_mem): Likewise. + * iconv/gconv_dl.c (free_mem): Likewise. + * iconv/gconv_cache.c (free_mem): Likewise. + * intl/finddomain.c (free_mem): Likewise. + * intl/dcigettext.c (free_mem): Likewise. + * locale/setlocale.c (free_mem): Likewise. + * misc/fstab.c (fstab_free): Likewise. + * nss/nsswitch.c (free_mem): Likewise. + * posix/regcomp.c (free_mem): Likewise. + * resolv/gai_misc.c (free_res): Likewise. + * stdlib/fmtmsg.c (free_mem): Likewise. + * sunrpc/clnt_perr.c (free_mem): Likewise. + * sysdeps/generic/setenv.c (free_mem): Likewise. + * sysdeps/unix/sysv/linux/shm_open.c (freeit): Likewise. + * sysdeps/pthread/aio_misc.c (free_res): Likewise. + * time/tzset.c (free_mem): Likewise. + * malloc/mtrace.c (release_libc_mem): Add __libc_freeres_fn_section. + * locale/loadarchive.c (_nl_archive_subfreeres): Likewise. + * malloc/set-freeres.c (__libc_freeres): Likewise. + + * login/getutent.c: Include stdlib.h instead of stddef.h. + (buffer): Change into pointer to utmp, add libc_freeres_ptr. + (__getutent): Allocate buffer the first time it is run. + * login/getutid.c: Include stdlib.h instead of stddef.h. + (buffer): Change into pointer to utmp, add libc_freeres_ptr. + (__getutid): Allocate buffer the first time it is run. + * login/getutline.c: Include stdlib.h instead of stddef.h. + (buffer): Change into pointer to utmp, add libc_freeres_ptr. + (__getutline): Allocate buffer the first time it is run. + * malloc/mtrace.c (malloc_trace_buffer): Change into char *. + (mtrace): Allocate malloc_trace_buffer. + * resolv/nsap_addr.c (inet_nsap_ntoa): Decrease size of tmpbuf. + * resolv/ns_print.c (ns_sprintrrf): Decrease size of t. + * string/strerror.c: Include libintl.h and errno.h. + (buf): New variable. + (strerror): Only allocate buffer if actually needed (unknown error). + * time/tzfile.c (transitions): Add libc_freeres_ptr. + (freeres): Remove. + +2002-10-25 Jakub Jelinek + + * include/libc-symbols.h (libc_freeres_ptr): New macro. + * malloc/set-freeres.c (__libc_freeres_ptrs): Define using + symbol_set_define. + (__libc_freeres): Free all pointers in that section. + * Makerules (build-shlib): Add $(LDSEDCMD-$(@F:lib%.so=%).so) to sed + commands when creating .lds script. + (LDSEDCMD-c.so): New variable. + * inet/rcmd.c (ahostbuf): Change into char *. Add libc_freeres_ptr. + (rcmd_af): Use strdup to allocate ahostbuf. + * inet/rexec.c (ahostbuf): Change into char *. Add libc_freeres_ptr. + (rexec_af): Use strdup to allocate ahostbuf. + * stdio-common/reg-printf.c (printf_funcs): Remove. + (__printf_arginfo_table): Change into printf_arginfo_function **. + Add libc_freeres_ptr. + (__register_printf_function): Allocate __printf_arginfo_table + and __printf_function_table the first time it is called. + * stdio-common/printf-parse.h (__printf_arginfo_table): Change into + printf_arginfo_function **. + (parse_one_spec): Add __builtin_expect. + * grp/fgetgrent.c (buffer): Add libc_freeres_ptr. + (free_mem): Remove. + * inet/getnetgrent.c (buffer): Add libc_freeres_ptr. + (free_mem): Remove. + * intl/localealias.c (libc_freeres_ptr): Define if !_LIBC. + (string_space, map): Add libc_freeres_ptr. + (free_mem): Remove. + * misc/efgcvt.c (FCVT_BUFPTR): Add libc_freeres_ptr. + (free_mem): Remove. + * misc/mntent.c (getmntent_buffer): Add libc_freeres_ptr. + (free_mem): Remove. + * crypt/md5-crypt.c (libc_freeres_ptr): Define if !_LIBC. + (buffer): Add libc_freeres_ptr. + (free_mem): Remove for _LIBC. + * nss/getXXbyYY.c (buffer): Add libc_freeres_ptr. + (free_mem): Remove. + * nss/getXXent.c (buffer): Add libc_freeres_ptr. + (free_mem): Remove. + * pwd/fgetpwent.c (buffer): Add libc_freeres_ptr. + (free_mem): Remove. + * resolv/res_hconf.c (ifaddrs): Add libc_freeres_ptr. + (free_mem): Remove. + * shadow/fgetspent.c (buffer): Add libc_freeres_ptr. + (free_mem): Remove. + * sysdeps/posix/ttyname.c (getttyname_name): Add libc_freeres_ptr. + (free_mem): Remove. + * sysdeps/unix/sysv/linux/getsysstats.c (mount_proc): Add + libc_freeres_ptr. + (free_mem): Remove. + * sysdeps/unix/sysv/linux/ttyname.c (getttyname_name, ttyname_buf): Add + libc_freeres_ptr. + (free_mem): Remove. + +2002-10-30 Jakub Jelinek + + * malloc/obstack.c [_LIBC] (obstack_free): Change into strong_alias + instead of duplicating the whole function in libc. + +2002-10-31 Roland McGrath + + * sysdeps/i386/bits/byteswap.h [__GNUC__ < 2] (__bswap_32): + Renamed from __bswap_16 (typo fix). Reported by . + +2002-10-30 Jakub Jelinek + + * sysdeps/unix/sysv/linux/Makefile (syscall-%.h): Add -D for each + 32bit-predefine when creating .new32 list and -U for each + 32bit-predefine when creating .new64 list. + * sysdeps/unix/sysv/linux/x86_64/Makefile (32bit-predefine): New. + +2002-10-29 Andreas Schwab + + * sysdeps/generic/allocrtsig.c: Include , not + "testrtsig.h". Reported by Daniel Jacobowitz . + +2002-10-25 Roland McGrath + + * sysdeps/unix/sysv/linux/configure.in: Fix typo in last change. + * sysdeps/unix/sysv/linux/configure: Regenerated. + + * sysdeps/generic/ldsodefs.h: Remove [! SHARED] conditional from + _dl_starting_up decl. + +2002-10-20 H.J. Lu + + * sysdeps/unix/sysv/linux/configure.in: Don't check + /lib/modules/`uname -r`/build/include for kernel headers if + cross compiling. + * sysdeps/unix/sysv/linux/configure: Regenerated. + +2002-10-25 Roland McGrath + + * math/math.h (M_LOG2El): Correct the value. + From Stephen L Moshier . + + * sysdeps/unix/sysv/linux/init-first.c (init): Remove [! SHARED] + conditional from __libc_multiple_libcs access. Remove kludge for weak + symbol access with old compilers we no longer support. + * sysdeps/unix/sysv/aix/init-first.c (init): Likewise. + * sysdeps/generic/libc-start.c (__libc_start_main): Likewise. + +2002-10-25 Roland McGrath + + * sysdeps/posix/sigvec.c [SA_RESETHAND]: Disable wrapper hacks and + implement SV_RESETHAND by translating it to SA_RESETHAND. + +2002-10-23 Alexandre Oliva + + * elf/dl-reloc.c (_dl_reloc_bad_use): Print the full 32-bit relocation + type on ELF64 platforms. + +2002-10-24 Ulrich Drepper + + * elf/elf.h (R_X86_64_GOTTPOFF): Renamed from r_x86_64_GOTTPOFF. + + * elf/elf.h: Define ELF_NOTE_OS_FREEBSD and NT_TASKSTRUCT. + +2002-10-24 Jakub Jelinek + + * elf/dl-misc.c: Include . + (_dl_debug_vdprintf): Only take dl_load_lock if not _dl_starting_up. + + * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h (INTERNAL_SYSCALL, + INTERNAL_SYSCALL_ERROR_P, INTERNAL_SYSCALL_ERRNO): New macros. + (INLINE_SYSCALL): Use that. + * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h (INTERNAL_SYSCALL, + INTERNAL_SYSCALL_ERROR_P, INTERNAL_SYSCALL_ERRNO): New macros. + (INLINE_SYSCALL): Use that. + * sysdeps/unix/sysv/linux/x86_64/sysdep.h (INTERNAL_SYSCALL, + INTERNAL_SYSCALL_ERROR_P, INTERNAL_SYSCALL_ERRNO): New macros. + (INLINE_SYSCALL): Use that. + * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Include + dl-sysdep.h. + (SYSCALL_ERROR_HANDLER): Define RTLD_PRIVATE_ERRNO variant. + (__INTERNAL_SYSCALL_STRING): Define. + * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Include + dl-sysdep.h. + (SYSCALL_ERROR_HANDLER): Define RTLD_PRIVATE_ERRNO variant. + (__INTERNAL_SYSCALL_STRING): Define. + * sysdeps/unix/sysv/linux/sparc/sysdep.h (INLINE_SYSCALL): Pass + __SYSCALL_STRING to inline_syscall*. + (INTERNAL_SYSCALL, INTERNAL_SYSCALL_ERROR_P, INTERNAL_SYSCALL_ERRNO): + New macros. + (inline_syscall0, inline_syscall1, inline_syscall2, inline_syscall3, + inline_syscall4, inline_syscall5, inline_syscall6): Add string + argument. + +2002-10-24 Roland McGrath + + * sysdeps/generic/ldsodefs.h (_dl_starting_up): Declare it here. + * sysdeps/unix/sysv/linux/init-first.c: Not here. + * sysdeps/powerpc/elf/libc-start.c: Or here. + * sysdeps/unix/sysv/aix/libc-start.c: Or here. + * sysdeps/unix/sysv/aix/start-libc.c: Or here. + * sysdeps/unix/sysv/aix/init-first.c: Or here. + * sysdeps/generic/libc-start.c: Or here. + * sysdeps/unix/sysv/linux/init-first.c (init): Protect _dl_starting_up + access with [! SHARED]. + * sysdeps/unix/sysv/aix/init-first.c (init): Likewise. + + * libio/bug-wfflush.c: New file. + * libio/Makefile (tests): Add bug-wfflush. + +2002-10-23 Roland McGrath + + * stdio-common/tst-fphex.c: New file. + * stdio-common/Makefile (tests): Add tst-fphex. + * sysdeps/generic/printf_fphex.c (__printf_fphex): Fix initialization + of WNUMEND. Fix counting of decimal point in WIDTH. Print '0' pad + chars always before the value digits. + Reported by James Antill . + +2002-10-24 Jakub Jelinek + + * posix/regcomp.c (re_comp): Call __regfree on re_comp_buf. + (free_mem): New function. + * posix/Makefile (tests): Add bug-regex14. Add bug-regex14-mem + if not cross compiling. + (generated): Add bug-regex14-mem and bug-regex14.mtrace. + (bug-regex14-ENV): Set. + (bug-regex14-mem): New target. + * posix/bug-regex14.c: New file. + +2002-10-23 Roland McGrath + + * elf/Makefile ($(objpfx)librtld.map): Use temporary file for output + target, so we don't touch it when the link fails. + + * libio/ftello.c (ftello): Use _IO_off64_t for type of POS. + Check for the result overflowing off_t and fail with EOVERFLOW. + * libio/ioftell.c (_IO_ftell): Likewise. + * libio/iofgetpos.c (_IO_new_fgetpos): Likewise. + + * login/logwtmp.c (logwtmp): If sizeof ut_tv != sizeof struct timeval, + use a temporary timeval on the stack for gettimeofday and copy it. + * login/logout.c (logout): Likewise. + Reported by Steven Munroe . + + * sysdeps/unix/sysv/linux/bits/statfs.h (struct statfs): + Use __SWORD_TYPE instead of int for member types. + (struct statfs64): Likewise. + * sysdeps/unix/sysv/linux/alpha/bits/statfs.h: New file. + * sysdeps/unix/sysv/linux/s390/bits/statfs.h: New file. + * sysdeps/unix/sysv/linux/ia64/bits/statfs.h: File removed. + * sysdeps/unix/sysv/linux/sparc/bits/statfs.h: File removed. + * sysdeps/unix/sysv/linux/x86_64/bits/statfs.h: File removed. + + * sysdeps/unix/sysv/linux/sparc/bits/statvfs.h: Moved to ... + * sysdeps/unix/sysv/linux/bits/statvfs.h: ... here. + (ST_NODIRATIME): Restore fixed value of 2048. + * sysdeps/unix/sysv/linux/alpha/bits/statvfs.h: File removed. + * sysdeps/unix/sysv/linux/ia64/bits/statvfs.h: File removed. + + Rearranged definitions to reduce duplication. + * sysdeps/generic/bits/types.h: Rewritten, using macros from + and new header . + * posix/Makefile (headers): Add bits/typesizes.h here. + * sysdeps/generic/bits/typesizes.h: New file. + * sysdeps/unix/sysv/linux/alpha/bits/typesizes.h: New file. + * sysdeps/unix/sysv/linux/sparc/bits/typesizes.h: New file. + * sysdeps/mach/hurd/bits/typesizes.h: New file. + * sysdeps/unix/sysv/linux/alpha/bits/types.h: File removed. + * sysdeps/unix/sysv/linux/bits/types.h: File removed. + * sysdeps/unix/sysv/linux/ia64/bits/types.h: File removed. + * sysdeps/unix/sysv/linux/mips/bits/types.h: File removed. + * sysdeps/unix/sysv/linux/s390/bits/types.h: File removed. + * sysdeps/unix/sysv/linux/sparc/bits/types.h: File removed. + * sysdeps/unix/sysv/linux/x86_64/bits/types.h: File removed. + * posix/sys/types.h [__USE_POSIX199506 || __USE_UNIX98]: Include + here, not in . + * signal/signal.h: Likewise. + + * streams/stropts.h: Include . + * streams/Makefile (headers): Add bits/xtitypes.h here. + * sysdeps/generic/bits/xtitypes.h: New file. + * sysdeps/s390/bits/xtitypes.h: New file. + * sysdeps/ia64/bits/xtitypes.h: New file. + * sysdeps/x86_64/bits/xtitypes.h: New file. + + * sysvipc/Makefile (headers): Add bits/ipctypes.h here. + * sysdeps/generic/bits/ipctypes.h: New file. + * sysdeps/mips/bits/ipctypes.h: New file. + * sysdeps/gnu/bits/shm.h: Include . + * sysdeps/gnu/bits/msq.h: Likewise. + * sysvipc/sys/ipc.h: Likewise. + +2002-10-22 Ulrich Drepper + + * elf/dl-load.c (struct filebuf): For buf element to have the + alignment of ElfXX_Ehdr since this is what will be stored in it. + +2002-10-22 Jakub Jelinek + + * locale/programs/locarchive.c (add_alias): Change locrec_offset arg + into pointer to locrec_offset. + (add_locale_to_archive): Adjust callers. Free normalized_name right + before returning, not immediately after add_locale, pass it to + add_alias if not NULL instead of name. Rename second normalized_name + occurence to nnormalized_codeset_name. + + * locale/programs/locarchive.c (enlarge_archive): Make sure + string_size is always a multiple of 4. + Reported by Andreas Schwab . + +2002-10-21 Andreas Schwab + + * sysdeps/unix/sysv/linux/ia64/syscalls.list (s_execve): Set + caller to EXTRA instead of execve, since the latter has a + higher-priority implementation in linuxthreads. + +2002-10-21 Roland McGrath + + * sysdeps/generic/libc-tls.c (__libc_setup_tls): Initialize the static + slotinfo list's len member to the proper size, not just 1. + Initialize static_map.l_tls_initimage. + + * elf/dl-open.c (dl_open_worker): Fix loop searching for + dtv_slotinfo_list element containing new modules' l_tls_modid. + + * elf/tst-tls9.c, elf/tst-tls9-static.c: New files. + * elf/tst-tlsmod5.c, elf/tst-tlsmod6.c: New files. + * elf/Makefile (tests): Add tst-tls9. + (tests-static): Add tst-tls9-static. + (tst-tls9-static-ENV): New variable. + ($(objpfx)tst-tls9-static, $(objpfx)tst-tls9-static.out): New targets. + + * elf/dl-close.c (remove_slotinfo): Remove an assert; the number of + modids used by partially loaded modules being closed can't be known. + +2002-10-21 Isamu Hasegawa + + * posix/Makefile: Add a test case for the bug reported by Aharon + Robbins . + * posix/bug-regex13.c: New file. + * posix/regcomp.c (peek_token_bracket): Skip the byte already read. + +2002-10-21 Ulrich Drepper + + * csu/gmon-start.c: Pretty printing. + +2002-10-19 Art Haas + + * configure.in: Replace AC_CONFIG_HEADER with AC_CONFIG_HEADERS, + add AC_HELP_STRING to all AC_ARG_WITH and AC_ARG_ENABLE macros, + add autoconf quotes to the AC_CONFIG_AUX_DIR macro. + * configure: Regenerated. + +2002-10-19 Roland McGrath + + * configure.in: Call AC_CONFIG_SUBDIRS with empty argument + and then set $subdirs directly, because the new Autoconf breaks + compatibility in every way imaginable and insists on whining + about usage that worked since the dawn of time. + * configure: Regenerated. + + * configure: Regenerated (using Autoconf 2.54). + * sysdeps/alpha/elf/configure: Likewise. + * sysdeps/generic/configure: Likewise. + * sysdeps/i386/elf/configure: Likewise. + * sysdeps/ia64/elf/configure: Likewise. + * sysdeps/mach/hurd/configure: Likewise. + * sysdeps/mach/configure: Likewise. + * sysdeps/unix/configure: Likewise. + * sysdeps/unix/common/configure: Likewise. + * sysdeps/unix/sysv/aix/configure: Likewise. + * sysdeps/unix/sysv/linux/configure: Likewise. + * sysdeps/unix/sysv/linux/mips/configure: Likewise. + * sysdeps/x86_64/elf/configure: Likewise. + + * config.make.in: Nix completely-soft nonsense. + * configure.in: Likewise. Under --without-fp, use nofpu subdirectory + of machine directories instead of fpu subdirectory. + * sysdeps/powerpc/soft-fp/Makefile: Remove cruft added in last change. + * sysdeps/powerpc/nofpu/Makefile: Put it in this new file instead. + * sysdeps/powerpc/soft-fp/sim-full.c: Moved to ... + * sysdeps/powerpc/nofpu/sim-full.c: ... here. + * sysdeps/powerpc/soft-fp/fraiseexcpt.c: Moved to ... + * sysdeps/powerpc/nofpu/fraiseexcpt.c: ... here. + * sysdeps/powerpc/soft-fp/fegetexcept.c: Moved to ... + * sysdeps/powerpc/nofpu/fegetexcept.c: ... here. + * sysdeps/powerpc/soft-fp/fclrexcpt.c: Moved to ... + * sysdeps/powerpc/nofpu/fclrexcpt.c: ... here. + * sysdeps/powerpc/soft-fp/ftestexcept.c: Moved to ... + * sysdeps/powerpc/nofpu/ftestexcept.c: ... here. + * sysdeps/powerpc/soft-fp/fgetexcptflg.c: Moved to ... + * sysdeps/powerpc/nofpu/fgetexcptflg.c: ... here. + * sysdeps/powerpc/soft-fp/fsetexcptflg.c: Moved to ... + * sysdeps/powerpc/nofpu/fsetexcptflg.c: ... here. + * sysdeps/powerpc/soft-fp/fedisblxcpt.c: Moved to ... + * sysdeps/powerpc/nofpu/fedisblxcpt.c: ... here. + * sysdeps/powerpc/soft-fp/feenablxcpt.c: Moved to ... + * sysdeps/powerpc/nofpu/feenablxcpt.c: ... here. + * sysdeps/powerpc/soft-fp/fegetenv.c: Moved to ... + * sysdeps/powerpc/nofpu/fegetenv.c: ... here. + * sysdeps/powerpc/soft-fp/fesetenv.c: Moved to ... + * sysdeps/powerpc/nofpu/fesetenv.c: ... here. + * sysdeps/powerpc/soft-fp/fegetround.c: Moved to ... + * sysdeps/powerpc/nofpu/fegetround.c: ... here. + * sysdeps/powerpc/soft-fp/fesetround.c: Moved to ... + * sysdeps/powerpc/nofpu/fesetround.c: ... here. + * sysdeps/powerpc/soft-fp/feupdateenv.c: Moved to ... + * sysdeps/powerpc/nofpu/feupdateenv.c: ... here. + * sysdeps/powerpc/soft-fp/feholdexcpt.c: Moved to ... + * sysdeps/powerpc/nofpu/feholdexcpt.c: ... here. + * sysdeps/powerpc/soft-fp/fenv_const.c: Moved to ... + * sysdeps/powerpc/nofpu/fenv_const.c: ... here. + * sysdeps/powerpc/soft-fp/libm-test-ulps: Moved to ... + * sysdeps/powerpc/nofpu/libm-test-ulps: ... here. + * sysdeps/powerpc/soft-fp/soft-supp.h: Moved to ... + * sysdeps/powerpc/nofpu/soft-supp.h: ... here. + * sysdeps/powerpc/soft-fp/Versions (libc: GLIBC_2.3.2): Moved to ... + * sysdeps/powerpc/nofpu/Versions: ... here, new file. + +2002-10-19 Bruno Haible + + * sysdeps/unix/bsd/bsd4.4/freebsd/sys/sysmacros.h: New file. + +2002-10-18 Roland McGrath + + * io/Makefile (routines): Add lchmod. + * io/sys/stat.h [__USE_BSD] (lchmod): Declare it. + * sysdeps/generic/lchmod.c: New file. + * sysdeps/mach/hurd/lchmod.c: New file. + * io/Versions (libc: GLIBC_2.3.2): New set, add lchmod. + +2002-10-18 Art Haas + + * configure.in: Remove remaining AC_FD_CC macros, and replace + AC_FD_MSG with AS_MESSAGE_FD. + +2002-10-18 Roland McGrath + + * sysdeps/powerpc/powerpc32/dl-machine.c (__process_machine_rela): Fix + typos: VALUE -> FINALADDR. + + * sysdeps/unix/alpha/sysdep.h (INLINE_SYSCALL, INLINE_SYSCALL1) + (inline_syscall_clobbers, inline_syscall0, inline_syscall1) + (inline_syscall2, inline_syscall3, inline_syscall4, inline_syscall5) + (inline_syscall6): Move these macros ... + * sysdeps/unix/sysv/linux/alpha/sysdep.h: ... to here. + + * configure.in (libc_link_dests, libc_link_sources): Remove these + variables and the AC_LINK_FILES call. + + * sysdeps/powerpc/soft-fp/Versions (libc: GLIBC_2.3.2): Fix last + change to put new symbols here instead of in GLIBC_2.2. + * sysdeps/powerpc/Subdirs: Move this file ... + * sysdeps/powerpc/soft-fp/Subdirs: ... here. + +2002-10-07 Roland McGrath + + * sysdeps/generic/bits/time.h: Replaced with contents of the + sysdeps/unix/sysv/linux/i386/bits/time.h file. All the following + files were identical except for the absence of CLOCK_THREAD_CPUTIME_ID + and CLOCK_PROCESS_CPUTIME_ID in .../linux/bits/time.h; adding these + macros is ok even for architectures that don't now implement them. + * sysdeps/mach/hurd/bits/time.h: File removed. + * sysdeps/unix/sysv/linux/bits/time.h: File removed. + * sysdeps/unix/sysv/linux/i386/bits/time.h: File removed. + * sysdeps/unix/sysv/linux/ia64/bits/time.h: File removed. + * sysdeps/unix/sysv/linux/sparc/bits/time.h: File removed. + * sysdeps/unix/sysv/linux/x86_64/bits/time.h: File removed. + +2002-10-18 Jeff Bailey + + * configure.in: Replace obsolete AC_OUTPUT syntax with + AC_CONFIG_FILES, AC_CONFIG_COMMANDS, and new-type AC_OUTPUT trio. + + * aclocal.m4 (GLIBC_PROVIDES): Add AC_PROVIDEs for + _AS_PATH_SEPARATOR_PREPARE and _AS_TEST_PREPARE. + + * configure.in: Replace AC_FD_CC with AS_MESSAGE_LOG_FD. + * sysdeps/alpha/elf/configure.in: Likewise. + * sysdeps/i386/elf/configure.in: Likewise. + * sysdeps/mach/hurd/configure.in: Likewise. + * sysdeps/x86_64/elf/configure.in: Likewise. + + * configure.in: Use AC_CONFIG_SRCDIR and new AC_INIT syntax. + + * sysdeps/alpha/elf/configure.in: Remove unneeded sinclude statement. + * sysdeps/generic/configure.in: Likewise. + * sysdeps/i386/elf/configure.in: Likewise. + * sysdeps/ia64/elf/configure.in: Likewise. + * sysdeps/mach/configure.in: Likewise. + * sysdeps/mach/hurd/configure.in: Likewise. + * sysdeps/unix/configure.in: Likewise. + * sysdeps/unix/common/configure.in: Likewise. + * sysdeps/unix/sysv/aix/configure.in: Likewise. + * sysdeps/unix/sysv/linux/configure.in: Likewise. + * sysdeps/unix/sysv/linux/mips/configure.in: Likewise. + * sysdeps/x86_64/elf/configure.in: Likewise. + + * aclocal.m4: Use just the bits from AS_INIT that are needed for the + GLIBC_PROVIDES. Use plain comment instead of HEADER-COMMENT so + that it's obvious when extra autoconf machinery is being dragged in. + +2002-10-18 Roland McGrath + + * configure.in: Remove bogus echo included in + 2002-10-08 Aldy Hernandez change. + * configure: Regenerated. + +2002-10-18 Jakub Jelinek + + * sysdeps/unix/sysv/linux/pathconf.h (statfs_link_max): Add inline. + (statfs_filesize_max): New function. + * sysdeps/unix/sysv/linux/linux_fsinfo.h (JFFS_SUPER_MAGIC, + JFFS2_SUPER_MAGIC, JFS_SUPER_MAGIC, NTFS_SUPER_MAGIC, + ROMFS_SUPER_MAGIC, UDF_SUPER_MAGIC): Define. + * sysdeps/unix/sysv/linux/fpathconf.c (__fpathconf): Use + statfs_filesize_max. + * sysdeps/unix/sysv/linux/pathconf.c (__pathconf): Likewise. + * sysdeps/unix/sysv/linux/alpha/fpathconf.c: Removed. + * sysdeps/unix/sysv/linux/alpha/pathconf.c: Removed. + +2002-10-17 Roland McGrath + + * configure.in (MIG): Just AC_SUBST it here. + * configure: Regenerated. + * sysdeps/mach/configure.in (MIG): Do the AC_CHECK_TOOL here. + Adding final - argument to all AC_CHECK_HEADER uses for .defs files. + * sysdeps/mach/configure: Regenerated. + + * aclocal.m4 (GLIBC_PROVIDES): Add AC_PROVIDE([_AS_TR_SH_PREPARE]) + and AC_PROVIDE([_AS_CR_PREPARE]). + + * aclocal.m4 (GLIBC_PROVIDES): Add AC_PROVIDE([_AS_ECHO_N_PREPARE]). + Remove AC_LANG(C) call, instead just define([_AC_LANG], [C]). + + * elf/dl-support.c: Move _dl_tls_* variables to ... + * sysdeps/generic/libc-tls.c: ... here. + + * elf/dl-close.c (remove_slotinfo): Take new argument. If false, + allow IDX to be one past the current last slotinfo entry. + (_dl_close): Pass IMAP->l_init_called for that parameter. + +2002-10-07 Andreas Schwab + + * aclocal.m4: Fix for autoconf 2.53. + * configure.in: Likewise. Require autoconf 2.53. + +2002-10-08 Richard Henderson + + * soft-fp/op-4.h: Handle carry correctly in + __FP_FRAC_ADD_3, __FP_FRAC_ADD_4, __FP_FRAC_SUB_3, + __FP_FRAC_SUB_4, __FP_FRAC_DEC_3, __FP_FRAC_DEC_4. + * soft-fp/op-common.h: New macros _FP_DIV_MEAT_N_loop. + +2002-10-08 Aldy Hernandez + + * configure.in: Compute completely-soft. + * config.make.in: Make completely-soft available to sub-makes. + * sysdeps/powerpc/soft-fp/Makefile: Add gcc-single-routines and + gcc-double-routines. Add sim-full.c. Add fenv_const and + fe_nomask to libm-support. + * sysdeps/powerpc/soft-fp/sim-full.c: New file. + * sysdeps/powerpc/soft-fp/fraiseexcpt.c: New file. + * sysdeps/powerpc/soft-fp/fegetexcept.c: New file. + * sysdeps/powerpc/soft-fp/fclrexcpt.c: New file. + * sysdeps/powerpc/soft-fp/ftestexcept.c: New file. + * sysdeps/powerpc/soft-fp/fgetexcptflg.c: New file. + * sysdeps/powerpc/soft-fp/fsetexcptflg.c: New file. + * sysdeps/powerpc/soft-fp/fedisblxcpt.c: New file. + * sysdeps/powerpc/soft-fp/feenablxcpt.c: New file. + * sysdeps/powerpc/soft-fp/fegetenv.c: New file. + * sysdeps/powerpc/soft-fp/fesetenv.c: New file. + * sysdeps/powerpc/soft-fp/fegetround.c: New file. + * sysdeps/powerpc/soft-fp/fesetround.c: New file. + * sysdeps/powerpc/soft-fp/feupdateenv.c: New file. + * sysdeps/powerpc/soft-fp/feholdexcpt.c: New file. + * sysdeps/powerpc/soft-fp/fenv_const.c: New file. + * sysdeps/powerpc/soft-fp/libm-test-ulps: New file. + * sysdeps/powerpc/soft-fp/soft-supp.h: New file. + * sysdeps/powerpc/soft-fp/Versions: Add libgcc soft-float + symbols. Add __sim_disabled_exceptions, __sim_exceptions, + __sim_round_mode. + * sysdeps/powerpc/soft-float/Dist: Add sim-full.c, fenv_const.c. + * sysdeps/powerpc/soft-float/sfp-machine.h: Define + FP_HANDLE_EXCEPTIONS. + Define FP_ROUNDMODE. + Redefine FP_* macros to correspond to the FE_* bit positions. + Define FP_DIV_MEAT_S to _FP_DIV_MEAT_1_loop. + Define externs for __sim_exceptions, __sim_disabled_exceptions, + __sim_round_mode, __simulate_exceptions. + * sysdeps/powerpc/fpu/bits/fenv.h: Move file from here... + * sysdeps/powerpc/bits/fenv.h: ...to here. + +2002-10-06 Jakub Jelinek + + * sysdeps/powerpc/powerpc32/dl-machine.c (__process_machine_rela): + Store R_PPC_UADDR32 and R_PPC_UADDR16 one byte at a time. + Use __builtin_expect for R_PPC_ADDR24 overflow check. Fix + R_PPC_ADDR16, R_PPC_UADDR16 and R_PPC_ADDR14* overflow check, use + __builtin_expect. + +2002-10-15 Jakub Jelinek + + * include/resolv.h (__libc_res_nquery, __libc_res_nsearch, + __libc_res_nsend): New prototypes. + * resolv/res_query.c (QUERYSIZE): Define. + (__libc_res_nquery): Renamed from res_nquery. Added answerp + argument. Allocate only QUERYSIZE bytes first, if res_nmkquery + fails use MAXPACKET buffer. Call __libc_res_nsend instead of + res_nsend, pass answerp. + (res_nquery): Changed into wrapper around __libc_res_nquery. + (__libc_res_nsearch): Renamed from res_nsearch. Added answerp + argument. Call __libc_res_nquerydomain and __libc_res_nquery + instead of the non-__libc_ variants, pass them answerp. + (res_nsearch): Changed into wrapper around __libc_res_nsearch. + (__libc_res_nquerydomain): Renamed from res_nquerydomain. + Added answerp argument. Call __libc_res_nquery instead of + res_nquery, pass answerp. + (res_nquerydomain): Changed into wrapper around + __libc_res_nquerydomain. + * resolv/res_send.c: Include sys/ioctl.h. + (MAXPACKET): Define. + (send_vc): Change arguments. Reallocate answer buffer if it is + too small. + (send_dg): Likewise. + (__libc_res_nsend): Renamed from res_nsend. Added ansp argument. + Reallocate answer buffer if it is too small and hooks are in use. + Adjust calls to send_vc and send_dg. + (res_nsend): Changed into wrapper around __libc_res_nsend. + * resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname2_r): Allocate + just 1K answer buffer on the stack, use __libc_res_nsearch instead + of res_nsearch. + (_nss_dns_gethostbyaddr_r): Similarly with __libc_res_nquery. + * resolv/nss_dns/dns-network.c (_nss_dns_getnetbyaddr_r): Likewise. + (_nss_dns_getnetbyname_r): Similarly with __libc_res_nsearch. + * resolv/gethnamaddr.c (gethostbyname2): Likewise. + (gethostbyaddr): Similarly with __libc_res_nquery. + * resolv/Versions (libresolv): Export __libc_res_nquery and + __libc_res_nsearch at GLIBC_PRIVATE. + +2002-10-17 Roland McGrath + + * configure.in: Grok --without-__thread and disable HAVE___THREAD. + * configure: Regenerated. + + * sysdeps/x86_64/dl-machine.h (elf_machine_rela): Do CHECK_STATIC_TLS + before performing the reloc, not after. + * sysdeps/i386/dl-machine.h (elf_machine_rel): Likewise. + +2002-10-17 Ulrich Drepper + + * locale/programs/locale.c (write_locales): Use 'm' flag in fopen call. + * locale/programs/linereader.c (lr_open): Likewise. + * locale/programs/charmap-dir.c (charmap_open): Likewise. + * locale/programs/locarchive.c (add_locale_to_archive): Likewise. + +2002-10-17 Isamu Hasegawa + + * posix/bug-regex11.c: Add a test case for the bug reported by + Paolo Bonzini . + * posix/regexec.c (sift_states_bkref): Use correct destination of + the back reference. + +2002-10-17 Roland McGrath + + * elf/dl-load.c (_dl_map_object_from_fd): Don't check DF_STATIC_TLS. + * elf/dl-reloc.c (_dl_relocate_object: CHECK_STATIC_TLS): New macro + to signal error if an IE-model TLS reloc resolved to a dlopen'd module. + * sysdeps/i386/dl-machine.h (elf_machine_rel, elf_machine_rela): + Call it after performing TPOFF relocs. + * sysdeps/x86_64/dl-machine.h (elf_machine_rela): Likewise. + * sysdeps/sh/dl-machine.h (elf_machine_rela): Likewise. + * elf/dl-conflict.c (CHECK_STATIC_TLS): New macro (no-op). + + * elf/dl-close.c (remove_slotinfo): Change asserts so as not to crash + when closing a partially-initialized object. + + * elf/dl-load.c (_dl_map_object_from_fd) [! USE_TLS]: Call lose + instead of _dl_fatal_printf when we see PT_TLS. + + * Makeconfig (CPPFLAGS): Fix last change to use $(libof-$( + + * cppflags-iterator.mk (CPPFLAGS-$(cpp-src)): Variable removed. + instead of += to append, to be sure $(lib) gets expanded at defn time. + (libof-$(cpp-src)): New variable, define this instead. + * extra-lib.mk (cpp-srcs-left): Reduce duplication in include setup. + (lib): Don't use override. + (CPPFLAGS-$(lib)): New variable, put -D's here. + * Makeconfig (CPPFLAGS): Use basename fn for CPPFLAGS-basename. + Also add $(CPPFLAGS-LIB) before the file-specific flags, for each + LIB found by $(libof-*) for basename, target, or source. + * Makerules (CPPFLAGS-nonlib): New variable. + * nscd/Makefile (lib): Set to nonlib when using cppflags-iterator.mk. + * locale/Makefile (lib): Likewise. + * sunrpc/Makefile (lib): Likewise. + + * sysdeps/unix/sysv/linux/fpathconf.c (LINUX_LINK_MAX): Move macro ... + * sysdeps/unix/sysv/linux/linux_fsinfo.h (LINUX_LINK_MAX): ... here. + * sysdeps/unix/sysv/linux/pathconf.h: New file. + (statfs_link_max): New function, guts from fpathconf.c. + * sysdeps/unix/sysv/linux/fpathconf.c: Rewritten using that. + * sysdeps/unix/sysv/linux/pathconf.c (__pathconf): Likewise. + * sysdeps/unix/sysv/linux/alpha/pathconf.c (__pathconf): Rewritten + to use the linux/pathconf.c code by #include rather than duplication. + * sysdeps/unix/sysv/linux/alpha/fpathconf.c (__pathconf): Likewise. + +2002-10-16 Jakub Jelinek + + * sysdeps/unix/sysv/linux/x86_64/sysdep.h (SYSCALL_ERROR_HANDLER): + Use __libc_errno only for libc itself. + +2002-10-16 Andreas Jaeger + + * sysdeps/x86_64/_mcount.S: Fix off-by-1 error in argument access. + +2002-10-16 Ulrich Drepper + + * sysdeps/unix/sysv/linux/i386/sysdep.h (SYSCALL_ERROR_HANDLER): + Use __libc_errno only for libc itself. + +2002-10-15 Roland McGrath + Jakub Jelinek + + * sysdeps/unix/sysv/linux/Makefile + ($(objpfx)syscall-%.h $(objpfx)syscall-%.d): Take code from + sparc/Makefile to produce a bi-arch file as needed. + That's now parameterized by the variable $(64bit-predefine). + Use LC_ALL=C for `comm' commands in that rule. + No longer conditional on [$(no_syscall_list_h)]. + * sysdeps/unix/sysv/linux/sparc/Makefile: Remove replacement rules. + (64bit-predefine): New variable. + * sysdeps/unix/sysv/linux/x86_64/Makefile: Likewise. + * sysdeps/unix/sysv/linux/s390/Makefile: New file. + * sysdeps/unix/sysv/linux/powerpc/Makefile + (64bit-predefine): New variable. + +2002-10-15 Roland McGrath + + * sysdeps/unix/sysv/linux/Makefile + ($(objpfx)syscall-%.h $(objpfx)syscall-%.d) + + * login/utmp-private.h: Declare __libc_utmp_lock. + * sysdeps/unix/getlogin_r.c (getlogin_r): Take __libc_utmp_lock once + and call __libc_utmp_jump_table functions directly, instead of using + __setutent et al. + + * sysdeps/unix/sysv/linux/configure.in: Use case instead of if. + * sysdeps/unix/sysv/linux/configure: Regenerated. + + * sysdeps/gnu/bits/utmp.h: Include . + (struct lastlog) [__WORDSIZE == 64 && __WORDSIZE_COMPAT32]: + Use int32_t for ll_time. + (struct utmp) [__WORDSIZE == 64 && __WORDSIZE_COMPAT32]: + Use int32_t instead of long int for ut_session. + Use an anonymous struct with 32-bit fields for ut_tv. + * sysdeps/gnu/bits/utmpx.h: Include . + (struct utmpx) [__WORDSIZE == 64 && __WORDSIZE_COMPAT32]: Do the same + here as in utmp.h for `struct utmp'. + * sysdeps/unix/sysv/linux/powerpc/bits/utmp.h: File removed. + * sysdeps/unix/sysv/linux/powerpc/bits/utmpx.h: File removed. + * sysdeps/unix/sysv/linux/sparc/bits/utmp.h: File removed. + * sysdeps/unix/sysv/linux/sparc/bits/utmpx.h: File removed. + * sysdeps/unix/sysv/linux/x86_64/bits/utmp.h: File removed. + * sysdeps/unix/sysv/linux/x86_64/bits/utmpx.h: File removed. + + * sysdeps/unix/sysv/linux/bits/resource.h: Replaced with the contents + of the sysdeps/unix/sysv/linux/i386/bits/resource.h file. + All the following files were identical or equivalent to it. + * sysdeps/unix/sysv/linux/i386/bits/resource.h: File removed. + * sysdeps/unix/sysv/linux/arm/bits/resource.h: File removed. + * sysdeps/unix/sysv/linux/cris/bits/resource.h: File removed. + * sysdeps/unix/sysv/linux/hppa/bits/resource.h: File removed. + * sysdeps/unix/sysv/linux/ia64/bits/resource.h: File removed. + * sysdeps/unix/sysv/linux/m68k/bits/resource.h: File removed. + * sysdeps/unix/sysv/linux/powerpc/bits/resource.h: File removed. + * sysdeps/unix/sysv/linux/s390/bits/resource.h: File removed. + * sysdeps/unix/sysv/linux/sh/bits/resource.h: File removed. + * sysdeps/unix/sysv/linux/x86_64/bits/resource.h: File removed. + + * sysdeps/unix/sysv/linux/bits/socket.h (struct msghdr): Use size_t + instead of int for msg_iovlen, instead of socklen_t for msg_controllen. + Other than the previously incorrect sign of msg_iovlen, this is a + no-op on 32-bit platforms. On 64-bit platforms it makes this header + match their layouts as well, so the following are now identical to it. + * sysdeps/unix/sysv/linux/s390/bits/socket.h: File removed. + * sysdeps/unix/sysv/linux/sparc/bits/socket.h: File removed. + * sysdeps/unix/sysv/linux/x86_64/bits/socket.h: File removed. + * sysdeps/unix/sysv/linux/ia64/bits/socket.h: File removed. + * sysdeps/unix/sysv/linux/alpha/bits/socket.h: File removed. + +2002-10-15 Ulrich Drepper + + * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_VFORK_SYSCALL): + Define for 2.4+ kernels. + + * sysdeps/unix/sysv/linux/i386/vfork.S: Optimize for kernels which + are known to have the vfork syscall. Don't confuse the CPUs + branch prediction unit by jumping to the return address. + + * sysdeps/unix/sysv/linux/alpha/fpathconf.c (__fpathconf): Add + support for reiserfs and xfs. + + * sysdeps/unix/sysv/linux/fpathconf.c (__fpathconf): Add case for + XFS link count. + * sysdeps/unix/sysv/linux/linux_fsinfo.h: Define XFS_SUPER_MAGIC + and XFS_LINK_MAX. + Patch by Eric Sandeen [PR libc/4706]. + +2002-10-16 Jakub Jelinek + + * include/libc-symbols.h (attribute_tls_model_ie): Define. + * include/errno.h (errno): Define to __libc_errno in libc.so. + Add attribute_tls_model_ie. + * include/netdb.h (h_errno): Define to __libc_h_errno in libc.so. + Add attribute_tls_model_ie. + * include/resolv.h (_res): Define to __libc_res in libc.so. Add + attribute_tls_model_ie. + * inet/herrno.c (__libc_h_errno): Add hidden alias to h_errno. + (h_errno): Define. + * resolv/res_libc.c (__libc_res): Add hidden alias to _res. + (_res): Define. + * sysdeps/generic/bits/libc-tsd.h (__libc_tsd_define): Add + attribute_tls_model_ie. + * sysdeps/generic/errno-loc.c (errno): Only undefine if not using + __thread. + * sysdeps/generic/errno.c (__libc_errno): Add hidden alias to errno. + * sysdeps/unix/sysv/linux/i386/sysdep.h (SYSCALL_ERROR_HANDLER): Use + __libc_errno in USE___THREAD case. + * sysdeps/unix/sysv/linux/x86_64/sysdep.h (SYSCALL_ERROR_HANDLER): + Likewise. + * configure.in (HAVE_TLS_MODEL_ATTRIBUTE): Check for + __attribute__((tls_model (""))). + * configure: Rebuilt. + * config.h.in (HAVE_TLS_MODEL_ATTRIBUTE): Add. + +2002-10-15 Ulrich Drepper + + * timezone/asia: Update from tzdata2002d. + * timezone/australasia: Likewise. + * timezone/iso3166.tab: Likewise. + * timezone/southamerica: Likewise. + * timezone/zone-tab: Likewise. + +2002-10-15 Roland McGrath + + * sysdeps/generic/dl-tls.c (_dl_deallocate_tls) [TLS_TCB_AT_TP]: + Adjust TCB pointer before calling free, so we get the whole block. + +2002-10-14 Roland McGrath + + * sysdeps/unix/sysv/linux/x86_64/sigaction.c + [HAVE_HIDDEN && !HAVE_BROKEN_VISIBILITY_ATTRIBUTE]: Declare restore_rt + extern using attribute_hidden instead of static, avoids warning. + +2002-10-09 Jakub Jelinek + + * sysdeps/unix/sysv/linux/configure.in: Use */lib64 for s390x too. + * sysdeps/unix/sysv/linux/configure: Rebuilt. + +2002-10-14 Ulrich Drepper + + * po/sv.po: Update from translation team. + +2002-10-12 H.J. Lu + + * sunrpc/thrsvc.c (PROCQUIT): New. + (struct rpc_arg): New. + (dispatch): Call exit (0) if request->rq_proc == PROCQUIT. + (test_one_call): Take struct rpc_arg * instead of CLIENT *c. + (thread_wrapper): Modified for struct rpc_arg * and call PROCQUIT. + (main): Modified for struct rpc_arg *. + +2002-10-14 Ulrich Drepper + + * dirent/scandir.c: Rearrange code a bit to reduce binary size. + +2002-10-14 Jakub Jelinek + + * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Include tls.h. + (SYSCALL_ERROR_HANDLER): Use RTLD_PRIVATE_ERRNO sequence + in ld.so even if __thread is supported. + +2002-10-13 Jakub Jelinek + + * sysdeps/unix/sysv/linux/arm/profil-counter.h (profil_counter): + Add hack to prevent the compiler from clobbering the signal context. + * sysdeps/unix/sysv/linux/sh/profil-counter.h (profil_counter): + Likewise. + * sysdeps/unix/sysv/linux/x86_64/profil-counter.h (profil_counter): + Likewise. + +2002-10-14 Andreas Jaeger + + * sysdeps/mips/fpu/libm-test-ulps: Regenerated by + Guido Guenther . + +2002-10-14 Ulrich Drepper + + * po/sk.po: Update from translation team. + +2002-09-26 Roland McGrath + + * elf/dl-load.c (_dl_dst_count, _dl_dst_substitute): Handle $LIB + dynamic string tag. + * elf/Makefile ($(objpfx)trusted-dirs.st): Make the output define + DL_DST_LIB based on $(slibdir). + +2002-10-13 Roland McGrath + + * elf/rtld-Rules ($(objpfx)rtld-libc.a): Use $(verbose) in ar command. + + * sysdeps/mach/hurd/getresuid.c: New file. + * sysdeps/mach/hurd/getresgid.c: New file. + * sysdeps/mach/hurd/setresuid.c: New file. + * sysdeps/mach/hurd/setresgid.c: New file. + + * posix/unistd.h [__USE_GNU] (getresuid, getresgid, setresuid, + setresgid): Declare them. + * NEWS: Mention it. + * include/unistd.h + (__getresuid, __getresgid, __setresuid, __setresgid): Declare them, + add libc_hidden_proto. + * posix/Versions (libc: GLIBC_2.3.2): New set. Add + getresuid, getresgid, setresuid, setresgid here. + * Versions.def (libc): Define GLIBC_2.3.2 set. + * sysdeps/generic/getresuid.c (__getresuid): Fix argument types. + Add libc_hidden_def. + * sysdeps/generic/getresgid.c (__getresgid): Likewise. + * sysdeps/generic/setresgid.c: New file. + * sysdeps/generic/setresuid.c: New file. + * sysdeps/unix/sysv/linux/Makefile [$(subdir) = misc] + (sysdep_routines): Don't add getresuid and getresgid here. + * sysdeps/unix/sysv/linux/arm/Makefile [$(subdir) = misc] + (sysdep_routines): Don't add setresuid and setresgid here. + * sysdeps/unix/sysv/linux/cris/Makefile: Likewise. + * sysdeps/unix/sysv/linux/sh/Makefile: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/Makefile: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/Makefile: Likewise. + * sysdeps/unix/sysv/linux/i386/Makefile: Likewise. + * sysdeps/unix/sysv/linux/m68k/Makefile: Likewise. + * posix/Makefile (routines): Add them all here instead. + * sysdeps/unix/sysv/linux/i386/getresuid.c (getresuid): Renamed to + __getresuid. Add libc_hidden_def for that, and weak alias to old name. + * sysdeps/unix/sysv/linux/i386/getresgid.c (getresgid): Renamed to + __getresgid. Add libc_hidden_def for that, and weak alias to old name. + * sysdeps/unix/sysv/linux/i386/setresuid.c: Add libc_hidden_def. + [! __NR_setresuid]: Include generic file. + * sysdeps/unix/sysv/linux/i386/setresgid.c (setresgid): Renamed to + __setresgid. Add libc_hidden_def for that, and weak alias to old name. + [! __NR_setresuid]: Include generic file. + * sysdeps/unix/sysv/linux/syscalls.list (setresuid, setresgid): + Caller is - now, not EXTRA. + * sysdeps/unix/sysv/linux/sparc/sparc32/syscalls.list + (setresuid, setresgid, getresuid, getresgid): Likewise. + * sysdeps/unix/sysv/linux/syscalls.list (getresuid, getresgid): + Add these calls here. + * sysdeps/unix/sysv/linux/alpha/syscalls.list: Remove them here. + * sysdeps/unix/sysv/linux/hppa/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/x86_64/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise. + * sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise. + + * sysdeps/unix/sysv/linux/Makefile [$(subdir) = misc] + (sysdep_routines): Add setfsuid and setfsgid here. + * sysdeps/unix/sysv/linux/arm/Makefile: Not here. + * sysdeps/unix/sysv/linux/sparc/sparc32/Makefile: Likewise. + * sysdeps/unix/sysv/linux/cris/Makefile: Likewise. + * sysdeps/unix/sysv/linux/sh/Makefile: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/Makefile: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/Makefile: Likewise. + * sysdeps/unix/sysv/linux/i386/Makefile: Likewise. + * sysdeps/unix/sysv/linux/m68k/Makefile: Likewise. + + * hurd/errno.c: Renamed to ... + * hurd/errno-loc.c: ... this. + * hurd/Makefile (routines): errno -> errno-loc + +2002-10-13 Ulrich Drepper + + * po/de.po: Update from translation team. + + * MakeTAGS: Add -E flag to xgettext runs. + +2002-10-12 Ulrich Drepper + + * po/fr.po: Update from translation team. + + * sysdeps/posix/system.c: Remove support for old and buggy SCO systems. + Optimize a bit for use in glibc. + +2002-10-12 Roland McGrath + + * stdio-common/tst-rndseek.c (TIMEOUT): Increase to 10 seconds. + Some machines are slow. Guido Guenther has one. + +2002-10-12 Ulrich Drepper + + * po/sv.po: Update from translation team. + +2002-10-11 Isamu Hasegawa + + * posix/regcomp.c (re_compile_fastmap_iter): Remove the handling + OP_CONTEXT_NODE. + (regfree): Likewise. + (create_initial_state): Likewise. + (analyze): Remove the substitutions which became useless. + (calc_first): Likewise. + (calc_epsdest): Use edests of OP_BACK_REF in case that it has + epsilon destination. + (duplicate_node_closure): New function. + (duplicate_node): Remove the handling OP_CONTEXT_NODE. + (calc_inveclosure): Likewise. + (calc_eclosure): Likewise. + (calc_eclosure_iter): Invoke duplicate_node_closure instead of + direct invocation of duplicate_node. + (parse): Don't use comma operator in the return to avoid compiler + warning. + (parse_reg_exp): Likewise. + (parse_branch): Likewise. + (parse_expression): Likewise. + (parse_sub_exp): Likewise. + (parse_dup_op): Likewise. + * posix/regex_internal.c (re_dfa_add_node): Remove the substitutions + which became useless. + (create_ci_newstate): Remove the handling OP_CONTEXT_NODE. + (create_cd_newstate): Likewise. + * posix/regex_internal.h (re_token_type_t): Remove the obsolete type. + (re_token_t): Likewise. + (re_dfa_t): Likewise. + (re_node_set_remove): New macro. + * posix/regexec.c (check_matching): Remove the handling + OP_CONTEXT_NODE. + (check_halt_node_context): Likewise. + (proceed_next_node): Likewise. + (pop_fail_stack): Fix the memory leak. + (set_regs): Likewise. + (free_fail_stack_return): New function. + (sift_states_backward): Fix the memory leak. Remove the handling + OP_CONTEXT_NODE. + (update_cur_sifted_state): Append some if clause to avoid redundant + call. + (sub_epsilon_src_nodes): Use IS_EPSILON_NODE since it might be a + back reference. + (check_dst_limits): Remove the handling OP_CONTEXT_NODE. + (check_subexp_limits): Likewise. + (search_subexp): Likewise. + (sift_states_bkref): Likewise. + (transit_state_mb): Likewise. + (transit_state_bkref_loop): Likewise. + (transit_state_bkref_loop): Likewise. + (group_nodes_into_DFAstates): Likewise. + (check_node_accept): Likewise. + (sift_ctx_init): Add initializing. + +2002-10-12 Ulrich Drepper + + * sysdeps/unix/sysv/linux/i386/sysdep.h (INLINE_SYSCALL): Use + __builtin_expect. + +2002-10-11 Ulrich Drepper + + * elf/dl-load.c (_dl_map_object_from_fd): Remove unnecessarily + duplicated variable c. + + * sysdeps/unix/sysv/linux/sigwait.c (__sigwait): Use INTERNAL_SYSCALL + if possible. + + * sysdeps/unix/sysv/linux/i386/sysdep.h + (INTERNAL_SYSCALL_ERROR_P): New define. + (INTERNAL_SYSCALL_ERRNO): Likewise. + + * sysdeps/unix/sysv/linux/i386/profil-counter.h (profil_counter): + Add hack to prevent the compiler from clobbering the signal context. + +2002-10-11 Roland McGrath + + * sysdeps/unix/sysv/linux/x86_64/sysdep.h (SYSCALL_ERROR_HANDLER): + Fix typos. + + * sysdeps/generic/dl-lookupcfg.h: Include . + * sysdeps/sh/dl-lookupcfg.h: File removed. + * sysdeps/i386/dl-lookupcfg.h: File removed. + + * sysdeps/unix/sysv/linux/x86_64/sysdep.h (SYSCALL_ERROR_HANDLER): Add + missing labels and ; from last change. + + * stdio-common/tst-sscanf.c (val_double): Append .0 to large whole + number literals, so they are doubles instead of ints. + +2002-10-09 Roland McGrath + + * sysdeps/generic/bits/libc-tsd.h [USE___THREAD]: Conditional + changed from [USE_TLS && HAVE___THREAD]. + + * sysdeps/i386/dl-machine.h (elf_machine_type_class, elf_machine_rel): + Disable TLS relocs if [RTLD_BOOTSTRAP && !USE___THREAD]. + * sysdeps/x86_64/dl-machine.h + (elf_machine_type_class, elf_machine_rela): Likewise. + * sysdeps/sh/dl-machine.h (elf_machine_type_class, elf_machine_rela): + Likewise. + + * include/link.h (struct link_map): Remove member l_tls_tp_initialized. + * elf/rtld.c (_dl_start_final, dl_main): Don't use it. + (_dl_start): Conditionalize PT_TLS check on [USE___THREAD]. + + * sysdeps/i386/dl-tls.h (__TLS_GET_ADDR): Use ___tls_get_addr_internal + instead of ___tls_get_addr. + (___tls_get_addr_internal): Add attribute_hidden to decl. + + * sysdeps/generic/ldsodefs.h (struct rtld_global): New variable + _dl_error_catch_tsd. + * elf/rtld.c (startup_error_tsd): New function. + (dl_main): Point _dl_error_catch_tsd at that. + * elf/dl-error.c: Don't use libc-tsd.h for DL_ERROR, + use new function pointer instead. + * elf/dl-tsd.c: New file. + * elf/Makefile (routines): Add it. + +2002-10-07 Roland McGrath + + * elf/dl-misc.c (_dl_debug_vdprintf): Use INTERNAL_SYSCALL macro for + writev if it's available. Otherwise if [RTLD_PRIVATE_ERRNO] then + take _dl_load_lock around calling __writev. + + * sysdeps/unix/sysv/linux/i386/sysdep.h (INTERNAL_SYSCALL): New macro. + (INLINE_SYSCALL): Use that. + + * sysdeps/generic/dl-sysdep.h: New file. + * sysdeps/mach/hurd/dl-sysdep.h: New file. + * sysdeps/generic/ldsodefs.h: Include . + * include/errno.h [IS_IN_rtld]: Include to define ... + [RTLD_PRIVATE_ERRNO]: Use a hidden global variable for errno and + access it directly. + * elf/dl-minimal.c (__errno_location): Removed. + * sysdeps/unix/i386/sysdep.S (__syscall_errno) [RTLD_PRIVATE_ERRNO]: + Use GOTOFF access for errno. + * sysdeps/unix/sysv/linux/i386/sysdep.h + [RTLD_PRIVATE_ERRNO] (SYSCALL_ERROR_HANDLER): Likewise. + + * sysdeps/unix/x86_64/sysdep.S (__syscall_errno) [RTLD_PRIVATE_ERRNO]: + Use PC-relative access for errno. + * sysdeps/unix/sysv/linux/x86_64/sysdep.h + [RTLD_PRIVATE_ERRNO] (SYSCALL_ERROR_HANDLER): Likewise. + + * include/tls.h: New file. + (USE___THREAD): New macro. + Define to 1 under [USE_TLS && HAVE___THREAD] and only when compiling + libc or libpthread. + * sysdeps/unix/sysv/linux/i386/sysdep.h [USE___THREAD]: Conditional + changed from [USE_TLS && HAVE___THREAD]. + * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise. + * sysdeps/unix/i386/sysdep.S: Likewise. + * sysdeps/unix/x86_64/sysdep.S: Likewise. + * include/errno.h: Likewise. + * include/netdb.h: Likewise. + * include/resolv.h: Likewise. + + * sysdeps/generic/errno.c: New file. + * csu/Makefile (aux): New variable, list errno. + * sysdeps/unix/sysv/linux/i386/sysdep.S (errno, _errno): Remove defns. + * sysdeps/unix/sysv/linux/m68k/sysdep.S: Likewise. + * sysdeps/unix/sysv/linux/x86_64/sysdep.S: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S: Likewise. + * sysdeps/unix/sysv/linux/arm/sysdep.S: Likewise. + * sysdeps/unix/sysv/linux/cris/sysdep.S: Likewise. + * sysdeps/unix/sysv/linux/hppa/sysdep.c: Likewise. + * sysdeps/unix/sysv/linux/ia64/sysdep.S: Likewise. + * sysdeps/unix/sysv/linux/powerpc/sysdep.c: Likewise. + * sysdeps/unix/sysv/linux/sparc/sysdep.S: Likewise. + * sysdeps/unix/sysv/linux/sh/sysdep.S: Likewise. + * sysdeps/unix/alpha/sysdep.S: Likewise. + * sysdeps/generic/start.c: Likewise. + * sysdeps/unix/start.c: Likewise. + * sysdeps/unix/arm/start.c: Likewise. + * sysdeps/unix/bsd/ultrix4/mips/start.S: Likewise. + * sysdeps/unix/sparc/start.c: Likewise. + * sysdeps/unix/sysv/irix4/start.c: Likewise. + * sysdeps/unix/sysv/linux/mips/sysdep.S: File removed. + + * manual/search.texi (Tree Search Function, Hash Search Function): + Mention search.h clearly. + +2002-10-05 Roland McGrath + + * elf/dl-fxstat64.c: File removed. + * elf/dl-xstat64.c: File removed. + * elf/Makefile (rtld-routines): Remove them. + * sysdeps/unix/sysv/linux/xstat64.c: Remove RTLD_STAT64 conditionals. + Instead, use strong_alias instead of versioned_symbol in the + !SHLIB_COMPAT case. + * sysdeps/unix/sysv/linux/fxstat64.c: Likewise. + * sysdeps/unix/sysv/linux/lxstat64.c: Likewise. + + * include/shlib-compat.h + (SHLIB_COMPAT): Require that IS_IN_##lib be defined nonzero. + [! NOT_IN_libc] (IS_IN_libc): Define it. + * cppflags-iterator.mk (CPPFLAGS-$(cpp-src)): Use -Dx=1 not just -Dx. + * elf/Makefile (CPPFLAGS-.os): Likewise. + + * sunrpc/rpc_main.c (main): Don't declare with noreturn attribute. + Return the status instead of calling exit. + + * Makeconfig (CFLAGS): Prepend -std=gnu99. + * Makerules (+make-deps): Use $(CFLAGS) only for .c sources. + Remove superfluous rm command, whose @ plus make bugs hid + all these commands from the make output. + + * include/stubs-prologue.h: New file. Give #error under #ifdef _LIBC. + * Makefile ($(inst_includedir)/gnu/stubs.h): Depend on it. + Use that file's contents instead of literal echo's for the prologue. + * include/features.h: Include unconditionally. + * include/gnu/stubs.h: New file. + +2002-09-30 Roland McGrath + + * elf/rtld-Rules: New file. + * elf/Makefile ($(objpfx)librtld.map, $(objpfx)librtld.mk, + $(objpfx)rtld-libc.a): New targets. + (generated): Add them. + (reloc-link): Remove -o $@ from the variable. + ($(objpfx)dl-allobjs.os): Add -o $@ after $(reloc-link). + (distribute): Add rtld-Rules. + (CPPFLAGS-.os): Define this instead of CFLAGS-.os. + * Makerules ($(+sysdir_pfx)sysd-rules): Emit rules for rtld-% targets. + (common-mostlyclean, common-clean): Clean up rtld-* files. + * sysdeps/unix/make-syscalls.sh: Add rtld-*.os target name to rules. + +2002-10-11 Roland McGrath + + * sysdeps/generic/dl-tls.c (__tls_get_addr): After freeing block in + now-unused dtv slot, reset the slot to TLS_DTV_UNALLOCATED. + + * elf/tls-macros.h [__x86_64__] (TLS_GD): Fix the sequence with the + proper set of no-op insn prefixes. + + * elf/tst-tls8.c (do_test): Use %zd format for l_tls_modid members. + +2002-10-11 Ulrich Drepper + + * sysdeps/unix/sysv/linux/execve.c: Don't try calling + __pthread_kill_other_threads_np. + + * sysdeps/generic/pselect.c: Avoid unnecessary sigprocmask calls. + +2002-10-08 Roland McGrath + + * locale/newlocale.c (__newlocale): If setting all categories to "C", + just return &_nl_C_locobj instead of copying it. + * locale/freelocale.c (__freelocale): Check for &_nl_C_locobj. + * locale/duplocale.c (__duplocale): Likewise. + +2002-10-07 Roland McGrath + + * config.h.in (HAVE_I386_SET_GDT): New #undef. + * sysdeps/mach/configure.in: Define it with new check for i386_set_gdt. + * sysdeps/mach/configure: Regenerated. + +2002-10-06 Franz Sirl + + * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h (INLINE_SYSCALL): + Add all necessary register outputs for syscall-clobbered registers. + +2002-10-02 David Mosberger + + * sysdeps/ia64/bzero.S: Rewritten by Sverre Jarp to tune for + Itanium 2 (and Itanium). + Fix unwind directives and make it fit in 80 columns. + * sysdeps/ia64/memset.S: Likewise. + * sysdeps/ia64/memcpy.S: Likewise. + Move jump table to .rodata section. + +2002-10-03 Roland McGrath + + * sysdeps/mach/hurd/i386/init-first.c (_hurd_stack_setup): Add + clobbers to asm. + +2002-10-10 Andreas Jaeger + + * sysdeps/x86_64/_mcount.S: Restore correct registers. + 2002-10-10 Ulrich Drepper * posix/Versions (libc) [GLIBC_PRIVATE]: Add __pselect. diff -durpN glibc-2.3.1/config.h.in glibc-2.3.2/config.h.in --- glibc-2.3.1/config.h.in 2002-10-01 20:03:13.000000000 -0700 +++ glibc-2.3.2/config.h.in 2003-02-04 00:35:22.000000000 -0800 @@ -73,9 +73,6 @@ directive. */ #undef HAVE_ASM_POPSECTION_DIRECTIVE -/* Define to the prefix Alpha/ELF GCC emits before ..ng symbols. */ -#undef ASM_ALPHA_NG_SYMBOL_PREFIX - /* Define if versioning of the library is wanted. */ #undef DO_VERSIONING @@ -101,6 +98,9 @@ /* Define if the __thread keyword is supported. */ #undef HAVE___THREAD +/* Define if the compiler supports __attribute__((tls_model(""))). */ +#undef HAVE_TLS_MODEL_ATTRIBUTE + /* Define if the regparm attribute shall be used for local functions (gcc on ix86 only). */ #undef USE_REGPARMS @@ -109,6 +109,10 @@ certain registers (CR0, MQ, CTR, LR) in asm statements. */ #undef BROKEN_PPC_ASM_CR0 +/* Defined on SPARC if ld doesn't handle R_SPARC_WDISP22 against .hidden + symbol. sysdeps/sparc/sparc32/elf/configure. */ +#undef BROKEN_SPARC_WDISP22 + /* Define if the linker supports the -z combreloc option. */ #undef HAVE_Z_COMBRELOC @@ -179,6 +183,9 @@ /* Mach/i386 specific: define if the `i386_io_perm_*' RPCs are available. */ #undef HAVE_I386_IO_PERM_MODIFY +/* Mach/i386 specific: define if the `i386_set_gdt' RPC is available. */ +#undef HAVE_I386_SET_GDT + /* */ diff -durpN glibc-2.3.1/config.make.in glibc-2.3.2/config.make.in --- glibc-2.3.1/config.make.in 2002-10-08 11:09:36.000000000 -0700 +++ glibc-2.3.2/config.make.in 2002-11-14 14:53:32.000000000 -0800 @@ -1,5 +1,5 @@ # @configure_input@ -# From $Id: config.make.in,v 1.86 2002/10/08 08:44:09 roland Exp $. +# From $Id: config.make.in,v 1.90 2002/11/14 03:59:36 roland Exp $. # Don't edit this file. Put configuration parameters in configparms instead. version = @VERSION@ @@ -17,6 +17,7 @@ sysconfdir = @libc_cv_sysconfdir@ libexecdir = @libexecdir@ rootsbindir = @libc_cv_rootsbindir@ infodir = @infodir@ +includedir = @includedir@ # Should we use and build ldconfig? use-ldconfig = @use_ldconfig@ @@ -91,6 +92,7 @@ MIG = @MIG@ PWD_P = @PWD_P@ BISON = @BISON@ AUTOCONF = @AUTOCONF@ +OBJDUMP = @OBJDUMP@ # Installation tools. INSTALL = @INSTALL@ diff -durpN glibc-2.3.1/configure glibc-2.3.2/configure --- glibc-2.3.1/configure 2002-10-09 17:37:54.000000000 -0700 +++ glibc-2.3.2/configure 2003-02-26 01:20:48.000000000 -0800 @@ -1,94 +1,328 @@ #! /bin/sh +# From configure.in CVSid. +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.57 for GNU C Library (see version.h). +# +# Report bugs to . +# +# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 +# Free Software Foundation, Inc. +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## -# From configure.in CVSid +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi +# Support unset when possible. +if (FOO=FOO; unset FOO) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# Work around bugs in pre-3.0 UWIN ksh. +$as_unset ENV MAIL MAILPATH +PS1='$ ' +PS2='> ' +PS4='+ ' +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var + fi +done +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi +if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi +# Name of the executable. +as_me=`$as_basename "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` +# PATH needs CR, and LINENO needs CR and PATH. +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi -# Guess values for system-dependent variables and create Makefiles. -# Generated automatically using autoconf version 2.13 -# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -# Defaults: -ac_help= + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done + + ;; + esac + # We did not find ourselves, most probably we were run as `sh COMMAND' + # in which case we are not to be found in the path. + if test "x$as_myself" = x; then + as_myself=$0 + fi + if test ! -f "$as_myself"; then + { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for as_base in sh bash ksh sh5; do + case $as_dir in + /*) + if ("$as_dir/$as_base" -c ' + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | + sed ' + N + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + t loop + s,-$,, + s,^['$as_cr_digits']*\n,, + ' >$as_me.lineno && + chmod +x $as_me.lineno || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensible to this). + . ./$as_me.lineno + # Exit status is that of the last command. + exit +} + + +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +esac + +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' + else + as_ln_s='ln -s' + fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.file + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + as_mkdir_p=false +fi + +as_executable_p="test -f" + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" + + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH + + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +exec 6>&1 + +# +# Initializations. +# ac_default_prefix=/usr/local -# Any additions from configure.in: -ac_help="$ac_help - --with-gmp=DIRECTORY find GMP source code in DIRECTORY (not needed)" -ac_help="$ac_help - --with-gd=DIR find libgd include dir and library with prefix DIR" -ac_help="$ac_help - --with-gd-include=DIR find libgd include files in DIR" -ac_help="$ac_help - --with-gd-lib=DIR find libgd library files in DIR" -ac_help="$ac_help - --with-fp if using floating-point hardware [default=yes]" -ac_help="$ac_help - --with-binutils=PATH specify location of binutils (as and ld)" -ac_help="$ac_help - --with-elf if using the ELF object format" -ac_help="$ac_help - --with-xcoff if using the XCOFF object format" -ac_help="$ac_help - --without-cvs if CVS should not be used" -ac_help="$ac_help - --with-headers=PATH location of system headers to use - [e.g. /usr/src/linux/include] - [default=compiler default]" -ac_help="$ac_help - --disable-sanity-checks really do not use threads (should not be used - except in special situations) [default=yes]" -ac_help="$ac_help - --enable-shared build shared library [default=yes if GNU ld & ELF]" -ac_help="$ac_help - --enable-profile build profiled library [default=yes]" -ac_help="$ac_help - --enable-omitfp build undebuggable optimized library [default=no]" -ac_help="$ac_help - --enable-bounded build with runtime bounds checking [default=no]" -ac_help="$ac_help - --disable-versioning do not include versioning information in the - library objects [default=yes if supported]" -ac_help="$ac_help - --enable-oldest-abi=ABI configure the oldest ABI supported [e.g. 2.2] - [default=glibc default]" -ac_help="$ac_help - --enable-add-ons[=DIR1,DIR2]... - configure and build add-ons in DIR1,DIR2,... - search for add-ons if no parameter given" -ac_help="$ac_help - --with-tls enable support for TLS" -ac_help="$ac_help - --disable-hidden-plt do not hide internal function calls to avoid PLT" -ac_help="$ac_help - --enable-static-nss build static NSS modules [default=no]" -ac_help="$ac_help - --disable-force-install don't force installation of files from this package, - even if they are older than the installed files" -ac_help="$ac_help - --enable-kernel=VERSION compile for compatibility with kernel not older - than VERSION" -ac_help="$ac_help - --enable-all-warnings enable all useful warnings gcc can issue" +ac_config_libobj_dir=. +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Maximum number of lines to put in a shell here document. +# This variable seems obsolete. It should probably be removed, and +# only ac_max_sed_lines should be used. +: ${ac_max_here_lines=38} + +# Identity of this package. +PACKAGE_NAME='GNU C Library' +PACKAGE_TARNAME='c-library' +PACKAGE_VERSION='(see version.h)' +PACKAGE_STRING='GNU C Library (see version.h)' +PACKAGE_BUGREPORT='glibc' + +ac_unique_file="include/features.h" +ac_subdirs_all="$ac_subdirs_all " +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#if HAVE_SYS_TYPES_H +# include +#endif +#if HAVE_SYS_STAT_H +# include +#endif +#if STDC_HEADERS +# include +# include +#else +# if HAVE_STDLIB_H +# include +# endif +#endif +#if HAVE_STRING_H +# if !STDC_HEADERS && HAVE_MEMORY_H +# include +# endif +# include +#endif +#if HAVE_STRINGS_H +# include +#endif +#if HAVE_INTTYPES_H +# include +#else +# if HAVE_STDINT_H +# include +# endif +#endif +#if HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS with_fp with_cvs oldest_abi subdirs force_install all_warnings build build_cpu build_vendor build_os host host_cpu host_vendor host_os base_machine sysnames INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN_S PWD_P CC MAKE MSGFMT MAKEINFO SED AUTOCONF CFLAGS LDFLAGS CPPFLAGS ac_ct_CC OBJEXT BUILD_CC cross_compiling CPP AR OBJDUMP RANLIB ac_ct_RANLIB MIG AS LD CCVERSION SYSINCLUDES libc_cv_gcc_static_libgcc BASH libc_cv_have_bash2 KSH libc_cv_have_ksh AWK PERL INSTALL_INFO OLD_DEBIAN_INSTALL_INFO BISON VERSIONING libc_cv_asm_protected_directive libc_cv_initfinit_array libc_cv_z_nodelete libc_cv_z_nodlopen libc_cv_z_initfirst libc_cv_Bgroup libc_cv_z_combreloc libc_cv_have_initfini no_whole_archive exceptions LIBGD EGREP sizeof_long_double libc_cv_gcc_unwind_find_fde uname_sysname uname_release uname_version old_glibc_headers libc_cv_slibdir libc_cv_localedir libc_cv_sysconfdir libc_cv_rootsbindir use_ldconfig ldd_rewrite_script gnu_ld gnu_as elf xcoff static shared pic_default profile omitfp bounded static_nss nopic_initfini DEFINES linux_doors mach_interface_list VERSION RELEASE LIBOBJS LTLIBOBJS' +ac_subst_files='' # Initialize some variables set by options. +ac_init_help= +ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. -build=NONE -cache_file=./config.cache +cache_file=/dev/null exec_prefix=NONE -host=NONE no_create= -nonopt=NONE no_recursion= prefix=NONE program_prefix=NONE @@ -97,10 +331,15 @@ program_transform_name=s,x,x, silent= site= srcdir= -target=NONE verbose= x_includes=NONE x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' @@ -114,17 +353,9 @@ oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' -# Initialize some other variables. -subdirs= -MFLAGS= MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} -# Maximum number of lines to put in a shell here document. -ac_max_here_lines=12 - ac_prev= for ac_option do - # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval "$ac_prev=\$ac_option" @@ -132,59 +363,59 @@ do continue fi - case "$ac_option" in - -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) ac_optarg= ;; - esac + ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` # Accept the important Cygnus configure options, so we can diagnose typos. - case "$ac_option" in + case $ac_option in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir="$ac_optarg" ;; + bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) - ac_prev=build ;; + ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build="$ac_optarg" ;; + build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file="$ac_optarg" ;; + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) - datadir="$ac_optarg" ;; + datadir=$ac_optarg ;; -disable-* | --disable-*) - ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - eval "enable_${ac_feature}=no" ;; + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + eval "enable_$ac_feature=no" ;; -enable-* | --enable-*) - ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. - if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } - fi - ac_feature=`echo $ac_feature| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; + expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/-/_/g'` + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac - eval "enable_${ac_feature}='$ac_optarg'" ;; + eval "enable_$ac_feature='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ @@ -193,95 +424,47 @@ do -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) - exec_prefix="$ac_optarg" ;; + exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; - -help | --help | --hel | --he) - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat << EOF -Usage: configure [options] [host] -Options: [defaults in brackets after descriptions] -Configuration: - --cache-file=FILE cache test results in FILE - --help print this message - --no-create do not create output files - --quiet, --silent do not print \`checking...' messages - --version print the version of autoconf that created configure -Directory and file names: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [same as prefix] - --bindir=DIR user executables in DIR [EPREFIX/bin] - --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] - --libexecdir=DIR program executables in DIR [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data in DIR - [PREFIX/share] - --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data in DIR - [PREFIX/com] - --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] - --libdir=DIR object code libraries in DIR [EPREFIX/lib] - --includedir=DIR C header files in DIR [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] - --infodir=DIR info documentation in DIR [PREFIX/info] - --mandir=DIR man documentation in DIR [PREFIX/man] - --srcdir=DIR find the sources in DIR [configure dir or ..] - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM - run sed PROGRAM on installed program names -EOF - cat << EOF -Host type: - --build=BUILD configure for building on BUILD [BUILD=HOST] - --host=HOST configure for HOST [guessed] - --target=TARGET configure for TARGET [TARGET=HOST] -Features and packages: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR -EOF - if test -n "$ac_help"; then - echo "--enable and --with options recognized:$ac_help" - fi - exit 0 ;; + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; -host | --host | --hos | --ho) - ac_prev=host ;; + ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) - host="$ac_optarg" ;; + host_alias=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir="$ac_optarg" ;; + includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir="$ac_optarg" ;; + infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir="$ac_optarg" ;; + libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) - libexecdir="$ac_optarg" ;; + libexecdir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ @@ -290,19 +473,19 @@ EOF -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir="$ac_optarg" ;; + localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir="$ac_optarg" ;; + mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) + | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ @@ -316,26 +499,26 @@ EOF -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir="$ac_optarg" ;; + oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix="$ac_optarg" ;; + prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix="$ac_optarg" ;; + program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix="$ac_optarg" ;; + program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ @@ -352,7 +535,7 @@ EOF | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name="$ac_optarg" ;; + program_transform_name=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) @@ -362,7 +545,7 @@ EOF ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) - sbindir="$ac_optarg" ;; + sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ @@ -373,58 +556,57 @@ EOF | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) - sharedstatedir="$ac_optarg" ;; + sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) - site="$ac_optarg" ;; + site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir="$ac_optarg" ;; + srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir="$ac_optarg" ;; + sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target ;; + ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target="$ac_optarg" ;; + target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; - -version | --version | --versio | --versi | --vers) - echo "configure generated by autoconf version 2.13" - exit 0 ;; + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; -with-* | --with-*) - ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } ac_package=`echo $ac_package| sed 's/-/_/g'` - case "$ac_option" in - *=*) ;; + case $ac_option in + *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac - eval "with_${ac_package}='$ac_optarg'" ;; + eval "with_$ac_package='$ac_optarg'" ;; -without-* | --without-*) - ac_package=`echo $ac_option|sed -e 's/-*without-//'` + ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. - if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then - { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } - fi - ac_package=`echo $ac_package| sed 's/-/_/g'` - eval "with_${ac_package}=no" ;; + expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/-/_/g'` + eval "with_$ac_package=no" ;; --x) # Obsolete; use --with-x. @@ -435,99 +617,110 @@ EOF ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes="$ac_optarg" ;; + x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries="$ac_optarg" ;; + x_libraries=$ac_optarg ;; - -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + -*) { echo "$as_me: error: unrecognized option: $ac_option +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } ;; + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } + ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` + eval "$ac_envvar='$ac_optarg'" + export $ac_envvar ;; + *) - if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then - echo "configure: warning: $ac_option: invalid host type" 1>&2 - fi - if test "x$nonopt" != xNONE; then - { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } - fi - nonopt="$ac_option" + # FIXME: should be removed in autoconf 3.0. + echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then - { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + { echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } fi -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 6 checking for... messages and results -# 5 compiler messages saved in config.log -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>./config.log - -echo "\ -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. -" 1>&5 +# Be sure to have absolute paths. +for ac_var in exec_prefix prefix +do + eval ac_val=$`echo $ac_var` + case $ac_val in + [\\/$]* | ?:[\\/]* | NONE | '' ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; + esac +done -# Strip out --no-create and --no-recursion so they do not pile up. -# Also quote any args containing shell metacharacters. -ac_configure_args= -for ac_arg +# Be sure to have absolute paths. +for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ + localstatedir libdir includedir oldincludedir infodir mandir do - case "$ac_arg" in - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c) ;; - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ac_configure_args="$ac_configure_args '$ac_arg'" ;; - *) ac_configure_args="$ac_configure_args $ac_arg" ;; + eval ac_val=$`echo $ac_var` + case $ac_val in + [\\/$]* | ?:[\\/]* ) ;; + *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; };; esac done -# NLS nuisances. -# Only set these to C if already set. These must not be set unconditionally -# because not all systems understand e.g. LANG=C (notably SCO). -# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! -# Non-C LC_CTYPE values break the ctype check. -if test "${LANG+set}" = set; then LANG=C; export LANG; fi -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi -if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo > confdefs.h +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null -# A filename unique to this package, relative to the directory that -# configure is in, which we can look for to find out if srcdir is correct. -ac_unique_file=include/features.h # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then its parent. - ac_prog=$0 - ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + ac_confdir=`(dirname "$0") 2>/dev/null || +$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$0" : 'X\(//\)[^/]' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$0" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` srcdir=$ac_confdir if test ! -r $srcdir/$ac_unique_file; then srcdir=.. @@ -537,13 +730,476 @@ else fi if test ! -r $srcdir/$ac_unique_file; then if test "$ac_srcdir_defaulted" = yes; then - { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 + { (exit 1); exit 1; }; } else - { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } fi fi -srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` +(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || + { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 + { (exit 1); exit 1; }; } +srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` +ac_env_build_alias_set=${build_alias+set} +ac_env_build_alias_value=$build_alias +ac_cv_env_build_alias_set=${build_alias+set} +ac_cv_env_build_alias_value=$build_alias +ac_env_host_alias_set=${host_alias+set} +ac_env_host_alias_value=$host_alias +ac_cv_env_host_alias_set=${host_alias+set} +ac_cv_env_host_alias_value=$host_alias +ac_env_target_alias_set=${target_alias+set} +ac_env_target_alias_value=$target_alias +ac_cv_env_target_alias_set=${target_alias+set} +ac_cv_env_target_alias_value=$target_alias +ac_env_CC_set=${CC+set} +ac_env_CC_value=$CC +ac_cv_env_CC_set=${CC+set} +ac_cv_env_CC_value=$CC +ac_env_CFLAGS_set=${CFLAGS+set} +ac_env_CFLAGS_value=$CFLAGS +ac_cv_env_CFLAGS_set=${CFLAGS+set} +ac_cv_env_CFLAGS_value=$CFLAGS +ac_env_LDFLAGS_set=${LDFLAGS+set} +ac_env_LDFLAGS_value=$LDFLAGS +ac_cv_env_LDFLAGS_set=${LDFLAGS+set} +ac_cv_env_LDFLAGS_value=$LDFLAGS +ac_env_CPPFLAGS_set=${CPPFLAGS+set} +ac_env_CPPFLAGS_value=$CPPFLAGS +ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} +ac_cv_env_CPPFLAGS_value=$CPPFLAGS +ac_env_CPP_set=${CPP+set} +ac_env_CPP_value=$CPP +ac_cv_env_CPP_set=${CPP+set} +ac_cv_env_CPP_value=$CPP + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures GNU C Library (see version.h) to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +_ACEOF + + cat <<_ACEOF +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data [PREFIX/share] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --infodir=DIR info documentation [PREFIX/info] + --mandir=DIR man documentation [PREFIX/man] +_ACEOF + + cat <<\_ACEOF + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of GNU C Library (see version.h):";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --disable-sanity-checks really do not use threads (should not be used except + in special situations) [default=yes] + --enable-shared build shared library [default=yes if GNU ld & + ELF] + --enable-profile build profiled library [default=yes] + --enable-omitfp build undebuggable optimized library + [default=no] + --enable-bounded build with runtime bounds checking + [default=no] + --disable-versioning do not include versioning information in the library + objects [default=yes if supported] + --enable-oldest-abi=ABI configure the oldest ABI supported [e.g. 2.2] + [default=glibc default] + --enable-add-ons[=DIRS...] + configure and build add-ons in DIR1,DIR2,... search + for add-ons if no parameter given + --disable-hidden-plt do not hide internal function calls to avoid PLT + --enable-static-nss build static NSS modules [default=no] + --disable-force-install don't force installation of files from this package, + even if they are older than the installed files + --enable-kernel=VERSION compile for compatibility with kernel not older than + VERSION + --enable-all-warnings enable all useful warnings gcc can issue + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-gmp=DIRECTORY find GMP source code in DIRECTORY (not needed) + --with-gd=DIR find libgd include dir and library with prefix DIR + --with-gd-include=DIR find libgd include files in DIR + --with-gd-lib=DIR find libgd library files in DIR + --with-fp if using floating-point hardware [default=yes] + --with-binutils=PATH specify location of binutils (as and ld) + --with-elf if using the ELF object format + --with-xcoff if using the XCOFF object format + --without-cvs if CVS should not be used + --with-headers=PATH location of system headers to use (for example + /usr/src/linux/include) [default=compiler + default] + --with-tls enable support for TLS + --without-__thread do not use TLS features even when supporting them + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have + headers in a nonstandard directory + CPP C preprocessor + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + ac_popdir=`pwd` + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d $ac_dir || continue + ac_builddir=. + +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac +# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +# absolute. +ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` + + cd $ac_dir + # Check for guested configure; otherwise get Cygnus style configure. + if test -f $ac_srcdir/configure.gnu; then + echo + $SHELL $ac_srcdir/configure.gnu --help=recursive + elif test -f $ac_srcdir/configure; then + echo + $SHELL $ac_srcdir/configure --help=recursive + elif test -f $ac_srcdir/configure.ac || + test -f $ac_srcdir/configure.in; then + echo + $ac_configure --help + else + echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi + cd $ac_popdir + done +fi + +test -n "$ac_init_help" && exit 0 +if $ac_init_version; then + cat <<\_ACEOF +GNU C Library configure (see version.h) +generated by GNU Autoconf 2.57 + +Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 +Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit 0 +fi +exec 5>config.log +cat >&5 <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by GNU C Library $as_me (see version.h), which was +generated by GNU Autoconf 2.57. Invocation command line was + + $ $0 $@ + +_ACEOF +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +hostinfo = `(hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + echo "PATH: $as_dir" +done + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_sep= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) + ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 2) + ac_configure_args1="$ac_configure_args1 '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" + # Get rid of the leading space. + ac_sep=" " + ;; + esac + done +done +$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } +$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Be sure not to use single quotes in there, as some shells, +# such as our DU 5.0 friend, will then `close' the trap. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + cat <<\_ASBOX +## ---------------- ## +## Cache variables. ## +## ---------------- ## +_ASBOX + echo + # The following way of writing the cache mishandles newlines in values, +{ + (set) 2>&1 | + case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in + *ac_space=\ *) + sed -n \ + "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" + ;; + *) + sed -n \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; +} + echo + + cat <<\_ASBOX +## ----------------- ## +## Output variables. ## +## ----------------- ## +_ASBOX + echo + for ac_var in $ac_subst_vars + do + eval ac_val=$`echo $ac_var` + echo "$ac_var='"'"'$ac_val'"'"'" + done | sort + echo + + if test -n "$ac_subst_files"; then + cat <<\_ASBOX +## ------------- ## +## Output files. ## +## ------------- ## +_ASBOX + echo + for ac_var in $ac_subst_files + do + eval ac_val=$`echo $ac_var` + echo "$ac_var='"'"'$ac_val'"'"'" + done | sort + echo + fi + + if test -s confdefs.h; then + cat <<\_ASBOX +## ----------- ## +## confdefs.h. ## +## ----------- ## +_ASBOX + echo + sed "/^$/d" confdefs.h | sort + echo + fi + test "$ac_signal" != 0 && + echo "$as_me: caught signal $ac_signal" + echo "$as_me: exit $exit_status" + } >&5 + rm -f core core.* *.core && + rm -rf conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status + ' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo >confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then @@ -554,50 +1210,116 @@ if test -z "$CONFIG_SITE"; then fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then - echo "loading site script $ac_site_file" + { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then - echo "loading cache $cache_file" - . $cache_file + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then + { echo "$as_me:$LINENO: loading cache $cache_file" >&5 +echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . $cache_file;; + *) . ./$cache_file;; + esac + fi else - echo "creating cache $cache_file" - > $cache_file + { echo "$as_me:$LINENO: creating cache $cache_file" >&5 +echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in `(set) 2>&1 | + sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val="\$ac_cv_env_${ac_var}_value" + eval ac_new_val="\$ac_env_${ac_var}_value" + case $ac_old_set,$ac_new_set in + set,) + { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 +echo "$as_me: former value: $ac_old_val" >&2;} + { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 +echo "$as_me: current value: $ac_new_val" >&2;} + ac_cache_corrupted=: + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) + ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { (exit 1); exit 1; }; } fi ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + + + + + + -ac_exeext= -ac_objext=o -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -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 + + + + + + + + + + + + + + ac_config_headers="$ac_config_headers config.h" + ac_aux_dir= for ac_dir in scripts $srcdir/scripts; do if test -f $ac_dir/install-sh; then @@ -608,33 +1330,49 @@ for ac_dir in scripts $srcdir/scripts; d ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break + elif test -f $ac_dir/shtool; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break fi done if test -z "$ac_aux_dir"; then - { echo "configure: error: can not find install-sh or install.sh in scripts $srcdir/scripts" 1>&2; exit 1; } + { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in scripts $srcdir/scripts" >&5 +echo "$as_me: error: cannot find install-sh or install.sh in scripts $srcdir/scripts" >&2;} + { (exit 1); exit 1; }; } fi -ac_config_guess=$ac_aux_dir/config.guess -ac_config_sub=$ac_aux_dir/config.sub -ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" +ac_config_sub="$SHELL $ac_aux_dir/config.sub" +ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. + +if test "`cd $srcdir; /bin/pwd`" = "`/bin/pwd`"; then + { { echo "$as_me:$LINENO: error: you must configure in a separate build directory" >&5 +echo "$as_me: error: you must configure in a separate build directory" >&2;} + { (exit 1); exit 1; }; } +fi # This will get text that should go into config.make. config_vars= # Check for a --with-gmp argument and set gmp-srcdir in config.make. + # Check whether --with-gmp or --without-gmp was given. if test "${with_gmp+set}" = set; then withval="$with_gmp" - case "$with_gmp" in -yes) { echo "configure: error: --with-gmp requires an argument; use --with-gmp=DIRECTORY" 1>&2; exit 1; } ;; + +case "$with_gmp" in +yes) { { echo "$as_me:$LINENO: error: --with-gmp requires an argument; use --with-gmp=DIRECTORY" >&5 +echo "$as_me: error: --with-gmp requires an argument; use --with-gmp=DIRECTORY" >&2;} + { (exit 1); exit 1; }; } ;; ''|no) ;; *) config_vars="$config_vars gmp-srcdir = $withval" ;; esac -fi - +fi; # Check for a --with-gd argument and set libgd-LDFLAGS in config.make. + # Check whether --with-gd or --without-gd was given. if test "${with_gd+set}" = set; then withval="$with_gd" @@ -644,7 +1382,7 @@ yes|''|no) ;; libgd_ldflags="-L$withval/lib" ;; esac -fi +fi; # Check whether --with-gd-include or --without-gd-include was given. if test "${with_gd_include+set}" = set; then @@ -654,7 +1392,7 @@ if test "${with_gd_include+set}" = set; *) libgd_include="-I$withval" ;; esac -fi +fi; # Check whether --with-gd-lib or --without-gd-lib was given. if test "${with_gd_lib+set}" = set; then @@ -664,8 +1402,7 @@ if test "${with_gd_lib+set}" = set; then *) libgd_ldflags="-L$withval" ;; esac -fi - +fi; if test -n "$libgd_include"; then config_vars="$config_vars @@ -676,13 +1413,14 @@ if test -n "$libgd_ldflags"; then libgd-LDFLAGS = $libgd_ldflags" fi + # Check whether --with-fp or --without-fp was given. if test "${with_fp+set}" = set; then withval="$with_fp" with_fp=$withval else with_fp=yes -fi +fi; # Check whether --with-binutils or --without-binutils was given. @@ -691,7 +1429,7 @@ if test "${with_binutils+set}" = set; th path_binutils=$withval else path_binutils='' -fi +fi; # Check whether --with-elf or --without-elf was given. if test "${with_elf+set}" = set; then @@ -699,7 +1437,7 @@ if test "${with_elf+set}" = set; then elf=$withval else elf=no -fi +fi; # Check whether --with-xcoff or --without-xcoff was given. if test "${with_xcoff+set}" = set; then @@ -707,7 +1445,7 @@ if test "${with_xcoff+set}" = set; then xcoff=$withval else xcoff=no -fi +fi; # Check whether --with-cvs or --without-cvs was given. if test "${with_cvs+set}" = set; then @@ -715,8 +1453,7 @@ if test "${with_cvs+set}" = set; then with_cvs=$withval else with_cvs=yes -fi - +fi; if test "$with_cvs" = yes; then if test -d $srcdir/CVS && grep :pserver: $srcdir/CVS/Root > /dev/null then @@ -725,14 +1462,14 @@ if test "$with_cvs" = yes; then fi + # Check whether --with-headers or --without-headers was given. if test "${with_headers+set}" = set; then withval="$with_headers" sysheaders=$withval else sysheaders='' -fi - +fi; # Check whether --enable-sanity-checks or --disable-sanity-checks was given. if test "${enable_sanity_checks+set}" = set; then @@ -740,8 +1477,7 @@ if test "${enable_sanity_checks+set}" = enable_sanity=$enableval else enable_sanity=yes -fi - +fi; static=yes # Check whether --enable-shared or --disable-shared was given. @@ -750,40 +1486,35 @@ if test "${enable_shared+set}" = set; th shared=$enableval else shared=default -fi - +fi; # Check whether --enable-profile or --disable-profile was given. if test "${enable_profile+set}" = set; then enableval="$enable_profile" profile=$enableval else profile=yes -fi - +fi; # Check whether --enable-omitfp or --disable-omitfp was given. if test "${enable_omitfp+set}" = set; then enableval="$enable_omitfp" omitfp=$enableval else omitfp=no -fi - +fi; # Check whether --enable-bounded or --disable-bounded was given. if test "${enable_bounded+set}" = set; then enableval="$enable_bounded" bounded=$enableval else bounded=no -fi - +fi; # Check whether --enable-versioning or --disable-versioning was given. if test "${enable_versioning+set}" = set; then enableval="$enable_versioning" enable_versioning=$enableval else enable_versioning=yes -fi - +fi; # Check whether --enable-oldest-abi or --disable-oldest-abi was given. if test "${enable_oldest_abi+set}" = set; then @@ -791,14 +1522,13 @@ if test "${enable_oldest_abi+set}" = set oldest_abi=$enableval else oldest_abi=no -fi - +fi; if test "$oldest_abi" = yes || test "$oldest_abi" = no; then oldest_abi=default else - cat >> confdefs.h <>confdefs.h <<_ACEOF #define GLIBC_OLDEST_ABI "$oldest_abi" -EOF +_ACEOF fi @@ -813,7 +1543,7 @@ if test "${enable_add_ons+set}" = set; t esac else add_ons= -fi +fi; # Check whether --with-tls or --without-tls was given. @@ -822,49 +1552,72 @@ if test "${with_tls+set}" = set; then usetls=$withval else usetls=no -fi +fi; +# Check whether --with-__thread or --without-__thread was given. +if test "${with___thread+set}" = set; then + withval="$with___thread" + use__thread=$withval +else + use__thread=yes +fi; + # Check whether --enable-hidden-plt or --disable-hidden-plt was given. if test "${enable_hidden_plt+set}" = set; then enableval="$enable_hidden_plt" hidden=$enableval else hidden=yes -fi - +fi; if test "x$hidden" = xno; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define NO_HIDDEN 1 -EOF +_ACEOF fi -subdirs="$add_ons" + +subdirs="$subdirs " add_ons_pfx= if test x"$add_ons" != x; then for f in $add_ons; do # Some sanity checks if test "$f" = "crypt"; then - { echo "configure: error: + { { echo "$as_me:$LINENO: error: *** It seems that you're using an old \`crypt' add-on. crypt is now *** part of glibc and using the old add-on will not work with this *** release. Start again with fresh sources and without the old -*** \`crypt' add-on." 1>&2; exit 1; } +*** \`crypt' add-on." >&5 +echo "$as_me: error: +*** It seems that you're using an old \`crypt' add-on. crypt is now +*** part of glibc and using the old add-on will not work with this +*** release. Start again with fresh sources and without the old +*** \`crypt' add-on." >&2;} + { (exit 1); exit 1; }; } fi if test "$f" = "localedata"; then - { echo "configure: error: + { { echo "$as_me:$LINENO: error: *** It seems that you're using an old \`localedata' add-on. localedata *** is now part of glibc and using the old add-on will not work with *** this release. Start again with fresh sources and without the old -*** \`localedata' add-on." 1>&2; exit 1; } +*** \`localedata' add-on." >&5 +echo "$as_me: error: +*** It seems that you're using an old \`localedata' add-on. localedata +*** is now part of glibc and using the old add-on will not work with +*** this release. Start again with fresh sources and without the old +*** \`localedata' add-on." >&2;} + { (exit 1); exit 1; }; } fi # Test whether such a subdir really exists. if test -d $srcdir/$f; then add_ons_pfx="$add_ons_pfx $f/" + subdirs="$subdirs $f" else - { echo "configure: error: add-on directory \"$f\" does not exist" 1>&2; exit 1; } + { { echo "$as_me:$LINENO: error: add-on directory \"$f\" does not exist" >&5 +echo "$as_me: error: add-on directory \"$f\" does not exist" >&2;} + { (exit 1); exit 1; }; } fi done fi @@ -875,13 +1628,12 @@ if test "${enable_static_nss+set}" = set static_nss=$enableval else static_nss=no -fi - +fi; if test x"$static_nss" = xyes || test x"$shared" = xno; then static_nss=yes - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define DO_STATIC_NSS 1 -EOF +_ACEOF fi @@ -891,16 +1643,14 @@ if test "${enable_force_install+set}" = force_install=$enableval else force_install=yes -fi - +fi; # Check whether --enable-kernel or --disable-kernel was given. if test "${enable_kernel+set}" = set; then enableval="$enable_kernel" minimum_kernel=$enableval -fi - +fi; if test "$minimum_kernel" = yes || test "$minimum_kernel" = no; then # Better nothing than this. minimum_kernel="" @@ -914,36 +1664,62 @@ fi if test "${enable_all_warnings+set}" = set; then enableval="$enable_all_warnings" all_warnings=$enableval -fi +fi; +# Make sure we can run config.sub. +$ac_config_sub sun4 >/dev/null 2>&1 || + { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 +echo "$as_me: error: cannot run $ac_config_sub" >&2;} + { (exit 1); exit 1; }; } +echo "$as_me:$LINENO: checking build system type" >&5 +echo $ECHO_N "checking build system type... $ECHO_C" >&6 +if test "${ac_cv_build+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_build_alias=$build_alias +test -z "$ac_cv_build_alias" && + ac_cv_build_alias=`$ac_config_guess` +test -z "$ac_cv_build_alias" && + { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 +echo "$as_me: error: cannot guess build type; you must specify one" >&2;} + { (exit 1); exit 1; }; } +ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || + { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 +echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} + { (exit 1); exit 1; }; } -# Make sure we can run config.sub. -if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : -else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } fi +echo "$as_me:$LINENO: result: $ac_cv_build" >&5 +echo "${ECHO_T}$ac_cv_build" >&6 +build=$ac_cv_build +build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:929: checking host system type" >&5 -host_alias=$host -case "$host_alias" in -NONE) - case $nonopt in - NONE) - if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : - else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } - fi ;; - *) host_alias=$nonopt ;; - esac ;; -esac +echo "$as_me:$LINENO: checking host system type" >&5 +echo $ECHO_N "checking host system type... $ECHO_C" >&6 +if test "${ac_cv_host+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_host_alias=$host_alias +test -z "$ac_cv_host_alias" && + ac_cv_host_alias=$ac_cv_build_alias +ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || + { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 +echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} + { (exit 1); exit 1; }; } + +fi +echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +echo "${ECHO_T}$ac_cv_host" >&6 +host=$ac_cv_host +host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` -host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$host" 1>&6 # The way shlib-versions is used to generate soversions.mk uses a @@ -999,6 +1775,13 @@ if test "$machine" = rs6000; then machine="powerpc" fi +# Braindead PowerPC box with absolutely no FPU. +case "$machine-$host_os" in + powerpc*-*soft) + with_fp=no + ;; +esac + ### ### I put this here to prevent those annoying emails from people who cannot ### read and try to compile glibc on unsupported platforms. --drepper @@ -1065,17 +1848,17 @@ esac if test "$base_machine" = "i386"; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define USE_REGPARMS 1 -EOF +_ACEOF fi # Compute the list of sysdep directories for this configuration. # This can take a while to compute. sysdep_dir=$srcdir/sysdeps -echo $ac_n "checking sysdep dirs""... $ac_c" 1>&6 -echo "configure:1079: checking sysdep dirs" >&5 +echo "$as_me:$LINENO: checking sysdep dirs" >&5 +echo $ECHO_N "checking sysdep dirs... $ECHO_C" >&6 # 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'`" @@ -1136,6 +1919,8 @@ while m=`echo $tail | sed 's@^\(.*\)/\([ # Prepend the machine's FPU directory unless --without-fp. if test "$with_fp" = yes; then mach="$mach /$1/fpu" + else + mach="$mach /$1/nofpu" fi mach="$mach /$1" tail="$2" @@ -1172,10 +1957,14 @@ done IFS="$ac_save_ifs" if test -z "$os_used" && test "$os" != none; then - { echo "configure: error: Operating system $os is not supported." 1>&2; exit 1; } + { { echo "$as_me:$LINENO: error: Operating system $os is not supported." >&5 +echo "$as_me: error: Operating system $os is not supported." >&2;} + { (exit 1); exit 1; }; } fi if test -z "$machine_used" && test "$machine" != none; then - { echo "configure: error: The $machine is not supported." 1>&2; exit 1; } + { { echo "$as_me:$LINENO: error: The $machine is not supported." >&5 +echo "$as_me: error: The $machine is not supported." >&2;} + { (exit 1); exit 1; }; } fi # We have now validated the configuration. @@ -1213,7 +2002,7 @@ while test $# -gt 0; do esac # Report each name as we discover it, so there is no long pause in output. - echo $ac_n "$name $ac_c" >&6 + echo $ECHO_N "$name $ECHO_C" >&6 name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'` @@ -1249,7 +2038,8 @@ while test $# -gt 0; do fi done if test $found = no; then - echo "configure: warning: $name/Implies specifies nonexistent $x" 1>&2 + { echo "$as_me:$LINENO: WARNING: $name/Implies specifies nonexistent $x" >&5 +echo "$as_me: WARNING: $name/Implies specifies nonexistent $x" >&2;} fi done else @@ -1281,7 +2071,8 @@ fi sysnames="$names $default_sysnames" # The other names were emitted during the scan. -echo "$ac_t""$default_sysnames" 1>&6 +echo "$as_me:$LINENO: result: $default_sysnames" >&5 +echo "${ECHO_T}$default_sysnames" >&6 ### Locate tools. @@ -1293,60 +2084,73 @@ echo "$ac_t""$default_sysnames" 1>&6 # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # 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:1302: checking for a BSD compatible install" >&5 +echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then -if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" - for ac_dir in $PATH; do - # Account for people who put trailing slashes in PATH elements. - case "$ac_dir/" in - /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - if test -f $ac_dir/$ac_prog; then - if test $ac_prog = install && - grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - else - ac_cv_path_install="$ac_dir/$ac_prog -c" - break 2 - fi - fi + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi done - ;; - esac - done - IFS="$ac_save_IFS" + done + ;; +esac +done + fi if test "${ac_cv_path_install+set}" = set; then - INSTALL="$ac_cv_path_install" + INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. - INSTALL="$ac_install_sh" + INSTALL=$ac_install_sh fi fi -echo "$ac_t""$INSTALL" 1>&6 +echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' @@ -1354,25 +2158,15 @@ if test "$INSTALL" = "${srcdir}/scripts/ # The makefiles need to use a different form to find it in $srcdir. INSTALL='\$(..)./scripts/install-sh -c' fi -echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:1359: 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 - rm -f conftestdata -if ln -s X conftestdata 2>/dev/null -then - rm -f conftestdata - ac_cv_prog_LN_S="ln -s" -else - ac_cv_prog_LN_S=ln -fi -fi -LN_S="$ac_cv_prog_LN_S" -if test "$ac_cv_prog_LN_S" = "ln -s"; then - echo "$ac_t""yes" 1>&6 +echo "$as_me:$LINENO: checking whether ln -s works" >&5 +echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 else - echo "$ac_t""no" 1>&6 + echo "$as_me:$LINENO: result: no, using $LN_S" >&5 +echo "${ECHO_T}no, using $LN_S" >&6 fi @@ -1383,109 +2177,98 @@ fi # that. # Extract the first word of "pwd", so it can be a program name with args. set dummy pwd; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1388: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_path_PWD_P'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_PWD_P+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - case "$PWD_P" in - /*) + case $PWD_P in + [\\/]* | ?:[\\/]*) ac_cv_path_PWD_P="$PWD_P" # Let the user override the test with a path. ;; - ?:/*) - ac_cv_path_PWD_P="$PWD_P" # Let the user override the test with a dos path. - ;; *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_path_PWD_P="$ac_dir/$ac_word" - break - fi - done - IFS="$ac_save_ifs" + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PWD_P="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + test -z "$ac_cv_path_PWD_P" && ac_cv_path_PWD_P="no" ;; esac fi -PWD_P="$ac_cv_path_PWD_P" +PWD_P=$ac_cv_path_PWD_P + if test -n "$PWD_P"; then - echo "$ac_t""$PWD_P" 1>&6 + echo "$as_me:$LINENO: result: $PWD_P" >&5 +echo "${ECHO_T}$PWD_P" >&6 else - echo "$ac_t""no" 1>&6 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi if test "$PWD_P" = no; then - { echo "configure: error: *** A pwd binary could not be found." 1>&2; exit 1; } + { { echo "$as_me:$LINENO: error: *** A pwd binary could not be found." >&5 +echo "$as_me: error: *** A pwd binary could not be found." >&2;} + { (exit 1); exit 1; }; } fi # These programs are version sensitive. -echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:1427: checking build system type" >&5 - -build_alias=$build -case "$build_alias" in -NONE) - case $nonopt in - NONE) build_alias=$host_alias ;; - *) build_alias=$nonopt ;; - esac ;; -esac - -build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` -build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$build" 1>&6 - -if test $host != $build; then - ac_tool_prefix=${host_alias}- -else - ac_tool_prefix= -fi for ac_prog in ${ac_tool_prefix}gcc ${ac_tool_prefix}cc do -# Extract the first word of "$ac_prog", so it can be a program name with args. + # 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:1455: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_CC="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + fi fi -CC="$ac_cv_prog_CC" +CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$ac_t""$CC" 1>&6 + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 else - echo "$ac_t""no" 1>&6 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi -test -n "$CC" && break + test -n "$CC" && break done if test -z "$CC"; then ac_verc_fail=yes else # Found it, now check the version. - echo $ac_n "checking version of $CC""... $ac_c" 1>&6 -echo "configure:1489: checking version of $CC" >&5 + echo "$as_me:$LINENO: checking version of $CC" >&5 +echo $ECHO_N "checking version of $CC... $ECHO_C" >&6 ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustpi-]*[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; @@ -1494,7 +2277,8 @@ echo "configure:1489: checking version o *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; esac - echo "$ac_t""$ac_prog_version" 1>&6 + echo "$as_me:$LINENO: result: $ac_prog_version" >&5 +echo "${ECHO_T}$ac_prog_version" >&6 fi if test $ac_verc_fail = yes; then critic_missing="$critic_missing gcc" @@ -1502,44 +2286,50 @@ fi for ac_prog in gnumake gmake make do -# Extract the first word of "$ac_prog", so it can be a program name with args. + # 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:1509: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_MAKE'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_MAKE+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$MAKE"; then ac_cv_prog_MAKE="$MAKE" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_MAKE="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_MAKE="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + fi fi -MAKE="$ac_cv_prog_MAKE" +MAKE=$ac_cv_prog_MAKE if test -n "$MAKE"; then - echo "$ac_t""$MAKE" 1>&6 + echo "$as_me:$LINENO: result: $MAKE" >&5 +echo "${ECHO_T}$MAKE" >&6 else - echo "$ac_t""no" 1>&6 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi -test -n "$MAKE" && break + test -n "$MAKE" && break done if test -z "$MAKE"; then ac_verc_fail=yes else # Found it, now check the version. - echo $ac_n "checking version of $MAKE""... $ac_c" 1>&6 -echo "configure:1543: checking version of $MAKE" >&5 + echo "$as_me:$LINENO: checking version of $MAKE" >&5 +echo $ECHO_N "checking version of $MAKE... $ECHO_C" >&6 ac_prog_version=`$MAKE --version 2>&1 | sed -n 's/^.*GNU Make[^0-9]*\([0-9][0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; @@ -1548,7 +2338,8 @@ echo "configure:1543: checking version o *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; esac - echo "$ac_t""$ac_prog_version" 1>&6 + echo "$as_me:$LINENO: result: $ac_prog_version" >&5 +echo "${ECHO_T}$ac_prog_version" >&6 fi if test $ac_verc_fail = yes; then critic_missing="$critic_missing make" @@ -1557,52 +2348,62 @@ fi if test -n "$critic_missing"; then -{ echo "configure: error: +{ { echo "$as_me:$LINENO: error: *** These critical programs are missing or too old:$critic_missing -*** Check the INSTALL file for required versions." 1>&2; exit 1; } +*** Check the INSTALL file for required versions." >&5 +echo "$as_me: error: +*** These critical programs are missing or too old:$critic_missing +*** Check the INSTALL file for required versions." >&2;} + { (exit 1); exit 1; }; } fi for ac_prog in gnumsgfmt gmsgfmt msgfmt do -# Extract the first word of "$ac_prog", so it can be a program name with args. + # 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:1572: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_MSGFMT'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_MSGFMT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$MSGFMT"; then ac_cv_prog_MSGFMT="$MSGFMT" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_MSGFMT="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_MSGFMT="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + fi fi -MSGFMT="$ac_cv_prog_MSGFMT" +MSGFMT=$ac_cv_prog_MSGFMT if test -n "$MSGFMT"; then - echo "$ac_t""$MSGFMT" 1>&6 + echo "$as_me:$LINENO: result: $MSGFMT" >&5 +echo "${ECHO_T}$MSGFMT" >&6 else - echo "$ac_t""no" 1>&6 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi -test -n "$MSGFMT" && break + test -n "$MSGFMT" && break done if test -z "$MSGFMT"; then ac_verc_fail=yes else # Found it, now check the version. - echo $ac_n "checking version of $MSGFMT""... $ac_c" 1>&6 -echo "configure:1606: checking version of $MSGFMT" >&5 + echo "$as_me:$LINENO: checking version of $MSGFMT" >&5 +echo $ECHO_N "checking version of $MSGFMT... $ECHO_C" >&6 ac_prog_version=`$MSGFMT --version 2>&1 | sed -n 's/^.*GNU gettext.* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; @@ -1611,7 +2412,8 @@ echo "configure:1606: checking version o *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; esac - echo "$ac_t""$ac_prog_version" 1>&6 + echo "$as_me:$LINENO: result: $ac_prog_version" >&5 +echo "${ECHO_T}$ac_prog_version" >&6 fi if test $ac_verc_fail = yes; then MSGFMT=: aux_missing="$aux_missing msgfmt" @@ -1619,44 +2421,50 @@ fi for ac_prog in makeinfo do -# Extract the first word of "$ac_prog", so it can be a program name with args. + # 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:1626: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_MAKEINFO+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$MAKEINFO"; then ac_cv_prog_MAKEINFO="$MAKEINFO" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_MAKEINFO="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_MAKEINFO="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + fi fi -MAKEINFO="$ac_cv_prog_MAKEINFO" +MAKEINFO=$ac_cv_prog_MAKEINFO if test -n "$MAKEINFO"; then - echo "$ac_t""$MAKEINFO" 1>&6 + echo "$as_me:$LINENO: result: $MAKEINFO" >&5 +echo "${ECHO_T}$MAKEINFO" >&6 else - echo "$ac_t""no" 1>&6 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi -test -n "$MAKEINFO" && break + test -n "$MAKEINFO" && break done if test -z "$MAKEINFO"; then ac_verc_fail=yes else # Found it, now check the version. - echo $ac_n "checking version of $MAKEINFO""... $ac_c" 1>&6 -echo "configure:1660: checking version of $MAKEINFO" >&5 + echo "$as_me:$LINENO: checking version of $MAKEINFO" >&5 +echo $ECHO_N "checking version of $MAKEINFO... $ECHO_C" >&6 ac_prog_version=`$MAKEINFO --version 2>&1 | sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; @@ -1665,7 +2473,8 @@ echo "configure:1660: checking version o *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; esac - echo "$ac_t""$ac_prog_version" 1>&6 + echo "$as_me:$LINENO: result: $ac_prog_version" >&5 +echo "${ECHO_T}$ac_prog_version" >&6 fi if test $ac_verc_fail = yes; then MAKEINFO=: aux_missing="$aux_missing makeinfo" @@ -1673,44 +2482,50 @@ fi for ac_prog in sed do -# Extract the first word of "$ac_prog", so it can be a program name with args. + # 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:1680: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_SED'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_SED+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$SED"; then ac_cv_prog_SED="$SED" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_SED="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_SED="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + fi fi -SED="$ac_cv_prog_SED" +SED=$ac_cv_prog_SED if test -n "$SED"; then - echo "$ac_t""$SED" 1>&6 + echo "$as_me:$LINENO: result: $SED" >&5 +echo "${ECHO_T}$SED" >&6 else - echo "$ac_t""no" 1>&6 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi -test -n "$SED" && break + test -n "$SED" && break done if test -z "$SED"; then ac_verc_fail=yes else # Found it, now check the version. - echo $ac_n "checking version of $SED""... $ac_c" 1>&6 -echo "configure:1714: checking version of $SED" >&5 + echo "$as_me:$LINENO: checking version of $SED" >&5 +echo $ECHO_N "checking version of $SED... $ECHO_C" >&6 ac_prog_version=`$SED --version 2>&1 | sed -n 's/^.*GNU sed version \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; @@ -1719,288 +2534,1071 @@ echo "configure:1714: checking version o *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; esac - echo "$ac_t""$ac_prog_version" 1>&6 + echo "$as_me:$LINENO: result: $ac_prog_version" >&5 +echo "${ECHO_T}$ac_prog_version" >&6 fi if test $ac_verc_fail = yes; then SED=: aux_missing="$aux_missing sed" fi -for ac_prog in autoconf +if test "x$with_cvs" != xyes; then + for ac_prog in autoconf do -# Extract the first word of "$ac_prog", so it can be a program name with args. + # 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:1735: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_AUTOCONF'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_AUTOCONF+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AUTOCONF"; then ac_cv_prog_AUTOCONF="$AUTOCONF" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_AUTOCONF="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AUTOCONF="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + fi fi -AUTOCONF="$ac_cv_prog_AUTOCONF" +AUTOCONF=$ac_cv_prog_AUTOCONF if test -n "$AUTOCONF"; then - echo "$ac_t""$AUTOCONF" 1>&6 + echo "$as_me:$LINENO: result: $AUTOCONF" >&5 +echo "${ECHO_T}$AUTOCONF" >&6 else - echo "$ac_t""no" 1>&6 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi -test -n "$AUTOCONF" && break + test -n "$AUTOCONF" && break done test -n "$AUTOCONF" || AUTOCONF="no" -case "x$AUTOCONF" in -xno|x|x:) AUTOCONF=no ;; -*) - echo $ac_n "checking whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works""... $ac_c" 1>&6 -echo "configure:1769: checking whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works" >&5 -if eval "test \"`echo '$''{'libc_cv_autoconf_works'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 + case "x$AUTOCONF" in + xno|x|x:) AUTOCONF=no ;; + *) + echo "$as_me:$LINENO: checking whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works" >&5 +echo $ECHO_N "checking whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works... $ECHO_C" >&6 +if test "${libc_cv_autoconf_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - if (cd $srcdir; $AUTOCONF $ACFLAGS configure.in > /dev/null 2>&1); then - libc_cv_autoconf_works=yes - else - libc_cv_autoconf_works=no + if (cd $srcdir; $AUTOCONF $ACFLAGS configure.in > /dev/null 2>&1); then + libc_cv_autoconf_works=yes + else + libc_cv_autoconf_works=no + fi +fi +echo "$as_me:$LINENO: result: $libc_cv_autoconf_works" >&5 +echo "${ECHO_T}$libc_cv_autoconf_works" >&6 + test $libc_cv_autoconf_works = yes || AUTOCONF=no + ;; + esac + test "x$AUTOCONF" != xno || aux_missing="$aux_missing autoconf" +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 fi +done +done + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi -echo "$ac_t""$libc_cv_autoconf_works" 1>&6 - test $libc_cv_autoconf_works = yes || AUTOCONF=no - ;; -esac -test "x$AUTOCONF" != xno || aux_missing="$aux_missing autoconf" +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi -echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1788: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_cc_works'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 + CC=$ac_ct_CC else - -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross + CC="$ac_cv_prog_CC" +fi -cat > conftest.$ac_ext << EOF +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done -#line 1802 "configure" -#include "confdefs.h" +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi -main(){return(0);} -EOF -if { (eval echo configure:1807: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; 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 - ac_cv_prog_cc_cross=no - else - ac_cv_prog_cc_cross=yes +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 fi +done +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_cv_prog_cc_works=no + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi -rm -fr conftest* -ac_ext=c -# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. -ac_cpp='$CPP $CPPFLAGS' -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -cross_compiling=$ac_cv_prog_cc_cross + CC=$ac_ct_CC +else + CC="$ac_cv_prog_CC" fi -echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 -if test $ac_cv_prog_cc_works = no; then - cross_linkable=no - ac_cv_prog_cc_cross=yes +fi +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 "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - cross_linkable=yes + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi fi -echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:1838: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_cc_cross'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 else - : + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi -echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done -cross_compiling=$ac_cv_prog_cc_cross +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi -echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:1850: 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 + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl +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 "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat > conftest.c <&5 + break 2 + fi +done +done + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$ac_ct_CC" && break +done + + CC=$ac_ct_CC +fi + +fi + + +test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&5 +echo "$as_me: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + +# Provide some information about the compiler. +echo "$as_me:$LINENO:" \ + "checking for C compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 + (eval $ac_compiler --version &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 + (eval $ac_compiler -v &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 + (eval $ac_compiler -V &5) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +EXEEXT= +echo "$as_me:$LINENO: checking for suffix of object files" >&5 +echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 +if test "${ac_cv_objext+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +echo "${ECHO_T}$ac_cv_objext" >&6 +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 +if test "${ac_cv_c_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me #endif -EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1859: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then - ac_cv_prog_gcc=yes + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_compiler_gnu=yes else - ac_cv_prog_gcc=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_compiler_gnu=no fi +rm -f conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + fi +echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 +GCC=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +CFLAGS="-g" +echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 +if test "${ac_cv_prog_cc_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_prog_cc_g=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 +echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 +if test "${ac_cv_prog_cc_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_prog_cc_stdc=no +ac_save_CC=$CC +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +# Don't try gcc -ansi; that turns off useful extensions and +# breaks some systems' header files. +# AIX -qlanglvl=ansi +# Ultrix and OSF/1 -std1 +# HP-UX 10.20 and later -Ae +# HP-UX older versions -Aa -D_HPUX_SOURCE +# SVR4 -Xc -D__EXTENSIONS__ +for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_prog_cc_stdc=$ac_arg +break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 -echo "$ac_t""$ac_cv_prog_gcc" 1>&6 -if test $ac_cv_prog_gcc != yes; then - { echo "configure: error: GNU libc must be compiled using GNU CC" 1>&2; exit 1; } fi +rm -f conftest.$ac_objext +done +rm -f conftest.$ac_ext conftest.$ac_objext +CC=$ac_save_CC -echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:1872: checking build system type" >&5 +fi -build_alias=$build -case "$build_alias" in -NONE) - case $nonopt in - NONE) build_alias=$host_alias ;; - *) build_alias=$nonopt ;; - esac ;; +case "x$ac_cv_prog_cc_stdc" in + x|xno) + echo "$as_me:$LINENO: result: none needed" >&5 +echo "${ECHO_T}none needed" >&6 ;; + *) + echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 + CC="$CC $ac_cv_prog_cc_stdc" ;; esac -build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` -build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -echo "$ac_t""$build" 1>&6 +# Some people use a C++ compiler to compile C. Since we use `exit', +# in C++ we need to declare it. In case someone uses the same compiler +# for both compiling C and C++ we need to have the C++ compiler decide +# the declaration of exit, since it's the most demanding environment. +cat >conftest.$ac_ext <<_ACEOF +#ifndef __cplusplus + choke me +#endif +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + for ac_declaration in \ + ''\ + '#include ' \ + 'extern "C" void std::exit (int) throw (); using std::exit;' \ + 'extern "C" void std::exit (int); using std::exit;' \ + 'extern "C" void exit (int) throw ();' \ + 'extern "C" void exit (int);' \ + 'void exit (int);' +do + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +$ac_declaration +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +continue +fi +rm -f conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_declaration +int +main () +{ +exit (42); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.$ac_objext conftest.$ac_ext +done +rm -f conftest* +if test -n "$ac_declaration"; then + echo '#ifdef __cplusplus' >>confdefs.h + echo $ac_declaration >>confdefs.h + echo '#endif' >>confdefs.h +fi + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.$ac_objext conftest.$ac_ext +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu if test $host != $build; then for ac_prog in gcc cc do -# Extract the first word of "$ac_prog", so it can be a program name with args. + # 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:1895: 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 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_BUILD_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$BUILD_CC"; then ac_cv_prog_BUILD_CC="$BUILD_CC" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_BUILD_CC="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_BUILD_CC="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + fi fi -BUILD_CC="$ac_cv_prog_BUILD_CC" +BUILD_CC=$ac_cv_prog_BUILD_CC if test -n "$BUILD_CC"; then - echo "$ac_t""$BUILD_CC" 1>&6 + echo "$as_me:$LINENO: result: $BUILD_CC" >&5 +echo "${ECHO_T}$BUILD_CC" >&6 else - echo "$ac_t""no" 1>&6 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi -test -n "$BUILD_CC" && break + test -n "$BUILD_CC" && break done fi -echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1927: checking how to run the C preprocessor" >&5 +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then -if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 + if test "${ac_cv_prog_CPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - # This must be in double quotes, not single quotes, because CPP may get - # substituted into the Makefile and "${CC-cc}" will confuse make. - CPP="${CC-cc} -E" + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. - cat > conftest.$ac_ext < -Syntax Error -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1948: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - : + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - CPP="${CC-cc} -E -traditional-cpp" - cat > conftest.$ac_ext < -Syntax Error -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1965: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then : else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - CPP="${CC-cc} -nologo -E" - cat > conftest.$ac_ext < -Syntax Error -EOF -ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1982: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - : + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi else - echo "$ac_err" >&5 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - CPP=/lib/cpp + ac_cpp_err=yes fi -rm -f conftest* +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break fi -rm -f conftest* +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break fi -rm -f conftest* - ac_cv_prog_CPP="$CPP" + + done + ac_cv_prog_CPP=$CPP + fi - CPP="$ac_cv_prog_CPP" + CPP=$ac_cv_prog_CPP else - ac_cv_prog_CPP="$CPP" + ac_cv_prog_CPP=$CPP fi -echo "$ac_t""$CPP" 1>&6 +echo "$as_me:$LINENO: result: $CPP" >&5 +echo "${ECHO_T}$CPP" >&6 +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether non-existent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 + (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null; then + if test -s conftest.err; then + ac_cpp_err=$ac_c_preproc_warn_flag + else + ac_cpp_err= + fi +else + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu # Was a --with-binutils option given? if test -n "$path_binutils"; then @@ -2012,77 +3610,92 @@ AS=`$CC -print-prog-name=as` LD=`$CC -print-prog-name=ld` AR=`$CC -print-prog-name=ar` +OBJDUMP=`$CC -print-prog-name=objdump` + # ranlib has to be treated a bit differently since it might not exist at all. ac_ranlib=`$CC -print-prog-name=ranlib` if test "x$ac_ranlib" = xranlib; then # This extra check has to happen since gcc simply echos the parameter in # case it cannot find the value in its own directories. -# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +if test -n "$ac_tool_prefix"; then + # 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:2025: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - break - fi - done - IFS="$ac_save_ifs" +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + fi fi -RANLIB="$ac_cv_prog_RANLIB" +RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then - echo "$ac_t""$RANLIB" 1>&6 + echo "$as_me:$LINENO: result: $RANLIB" >&5 +echo "${ECHO_T}$RANLIB" >&6 else - echo "$ac_t""no" 1>&6 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi - +fi if test -z "$ac_cv_prog_RANLIB"; then -if test -n "$ac_tool_prefix"; then + ac_ct_RANLIB=$RANLIB # 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:2057: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_RANLIB="ranlib" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" fi fi -RANLIB="$ac_cv_prog_RANLIB" -if test -n "$RANLIB"; then - echo "$ac_t""$RANLIB" 1>&6 +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +echo "${ECHO_T}$ac_ct_RANLIB" >&6 else - echo "$ac_t""no" 1>&6 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi + RANLIB=$ac_ct_RANLIB else - RANLIB=":" -fi + RANLIB="$ac_cv_prog_RANLIB" fi else @@ -2091,10 +3704,10 @@ fi # Determine whether we are using GNU binutils. -echo $ac_n "checking whether $AS is GNU as""... $ac_c" 1>&6 -echo "configure:2096: 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 +echo "$as_me:$LINENO: checking whether $AS is GNU as" >&5 +echo $ECHO_N "checking whether $AS is GNU as... $ECHO_C" >&6 +if test "${libc_cv_prog_as_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else # Most GNU programs take a -v and spit out some text including # the word 'GNU'. Some try to read stdin, so give them /dev/null. @@ -2105,15 +3718,15 @@ else fi rm -fr contest* fi - -echo "$ac_t""$libc_cv_prog_as_gnu" 1>&6 +echo "$as_me:$LINENO: result: $libc_cv_prog_as_gnu" >&5 +echo "${ECHO_T}$libc_cv_prog_as_gnu" >&6 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:2115: 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 +echo "$as_me:$LINENO: checking whether $LD is GNU ld" >&5 +echo $ECHO_N "checking whether $LD is GNU ld... $ECHO_C" >&6 +if test "${libc_cv_prog_ld_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else # Most GNU programs take a -v and spit out some text including # the word 'GNU'. Some try to read stdin, so give them /dev/null. @@ -2124,89 +3737,143 @@ else fi rm -fr contest* fi - -echo "$ac_t""$libc_cv_prog_ld_gnu" 1>&6 +echo "$as_me:$LINENO: result: $libc_cv_prog_ld_gnu" >&5 +echo "${ECHO_T}$libc_cv_prog_ld_gnu" >&6 gnu_ld=$libc_cv_prog_ld_gnu -# Extract the first word of "${ac_tool_prefix}mig", so it can be a program name with args. -set dummy ${ac_tool_prefix}mig; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2135: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_MIG'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 + +# Accept binutils 2.13 or newer. +for ac_prog in $AS +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 "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_AS+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - if test -n "$MIG"; then - ac_cv_prog_MIG="$MIG" # Let the user override the test. + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_MIG="${ac_tool_prefix}mig" - break - fi - done - IFS="$ac_save_ifs" +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AS="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + fi fi -MIG="$ac_cv_prog_MIG" -if test -n "$MIG"; then - echo "$ac_t""$MIG" 1>&6 +AS=$ac_cv_prog_AS +if test -n "$AS"; then + echo "$as_me:$LINENO: result: $AS" >&5 +echo "${ECHO_T}$AS" >&6 else - echo "$ac_t""no" 1>&6 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi + test -n "$AS" && break +done -if test -z "$ac_cv_prog_MIG"; then -if test -n "$ac_tool_prefix"; then - # Extract the first word of "mig", so it can be a program name with args. -set dummy mig; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2167: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_MIG'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +if test -z "$AS"; then + ac_verc_fail=yes else - if test -n "$MIG"; then - ac_cv_prog_MIG="$MIG" # Let the user override the test. + # Found it, now check the version. + echo "$as_me:$LINENO: checking version of $AS" >&5 +echo $ECHO_N "checking version of $AS... $ECHO_C" >&6 + ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'` + case $ac_prog_version in + '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; + 2.1[3-9]*) + ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; + *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; + + esac + echo "$as_me:$LINENO: result: $ac_prog_version" >&5 +echo "${ECHO_T}$ac_prog_version" >&6 +fi +if test $ac_verc_fail = yes; then + AS=: critic_missing=t +fi + +for ac_prog in $LD +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 "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_LD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_MIG="mig" - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_prog_MIG" && ac_cv_prog_MIG="MISSING" + if test -n "$LD"; then + ac_cv_prog_LD="$LD" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LD="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + fi fi -MIG="$ac_cv_prog_MIG" -if test -n "$MIG"; then - echo "$ac_t""$MIG" 1>&6 +LD=$ac_cv_prog_LD +if test -n "$LD"; then + echo "$as_me:$LINENO: result: $LD" >&5 +echo "${ECHO_T}$LD" >&6 else - echo "$ac_t""no" 1>&6 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi + test -n "$LD" && break +done + +if test -z "$LD"; then + ac_verc_fail=yes else - MIG="MISSING" + # Found it, now check the version. + echo "$as_me:$LINENO: checking version of $LD" >&5 +echo $ECHO_N "checking version of $LD... $ECHO_C" >&6 + ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU ld.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'` + case $ac_prog_version in + '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; + 2.1[3-9]*) + ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; + *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; + + esac + echo "$as_me:$LINENO: result: $ac_prog_version" >&5 +echo "${ECHO_T}$ac_prog_version" >&6 fi +if test $ac_verc_fail = yes; then + LD=: critic_missing=t fi -# Accept binutils 2.10.1 or newer (and also any ia64 2.9 version) -# XXX Commented out because it filters out too many good versions. -# XXX --drepper -# AC_CHECK_PROG_VER(AS, $AS, --version, -# [GNU assembler.* \([0-9]*\.[0-9.]*\(-ia64-[0-9]*\)*\)], -# [2.10.[1-9]* | 2.1[1-9]* | 2.9-ia64-*], AS=: critic_missing=t) - -test -n "$aux_missing" && echo "configure: warning: +test -n "$aux_missing" && { echo "$as_me:$LINENO: WARNING: *** These auxiliary programs are missing or incompatible versions:$aux_missing *** some features will be disabled. -*** Check the INSTALL file for required versions." 1>&2 +*** Check the INSTALL file for required versions." >&5 +echo "$as_me: WARNING: +*** These auxiliary programs are missing or incompatible versions:$aux_missing +*** some features will be disabled. +*** Check the INSTALL file for required versions." >&2;} # glibcbug.in wants to know the compiler version. CCVERSION=`$CC -v 2>&1 | sed -n 's/gcc version //p'` @@ -2222,10 +3889,10 @@ fi # check if ranlib is necessary -echo $ac_n "checking whether ranlib is necessary""... $ac_c" 1>&6 -echo "configure:2227: checking whether ranlib is necessary" >&5 -if eval "test \"`echo '$''{'libc_cv_ranlib_necessary'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking whether ranlib is necessary" >&5 +echo $ECHO_N "checking whether ranlib is necessary... $ECHO_C" >&6 +if test "${libc_cv_ranlib_necessary+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.c <&6 +echo "$as_me:$LINENO: result: $libc_cv_ranlib_necessary" >&5 +echo "${ECHO_T}$libc_cv_ranlib_necessary" >&6 if test "$libc_cv_ranlib_necessary" = no; then RANLIB=: fi @@ -2256,8 +3923,8 @@ fi # - one of the terminals (":" and ";") is the first or last sign # - two terminals occur directly after each other # - the path contains an element with a dot in it -echo $ac_n "checking LD_LIBRARY_PATH variable""... $ac_c" 1>&6 -echo "configure:2261: checking LD_LIBRARY_PATH variable" >&5 +echo "$as_me:$LINENO: checking LD_LIBRARY_PATH variable" >&5 +echo $ECHO_N "checking LD_LIBRARY_PATH variable... $ECHO_C" >&6 case ${LD_LIBRARY_PATH} in [:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* ) ld_library_path_setting="contains current directory" @@ -2266,18 +3933,24 @@ case ${LD_LIBRARY_PATH} in ld_library_path_setting="ok" ;; esac -echo "$ac_t""$ld_library_path_setting" 1>&6 +echo "$as_me:$LINENO: result: $ld_library_path_setting" >&5 +echo "${ECHO_T}$ld_library_path_setting" >&6 if test "$ld_library_path_setting" != "ok"; then -{ echo "configure: error: +{ { echo "$as_me:$LINENO: error: *** LD_LIBRARY_PATH shouldn't contain the current directory when *** building glibc. Please change the environment variable -*** and run configure again." 1>&2; exit 1; } +*** and run configure again." >&5 +echo "$as_me: error: +*** LD_LIBRARY_PATH shouldn't contain the current directory when +*** building glibc. Please change the environment variable +*** and run configure again." >&2;} + { (exit 1); exit 1; }; } fi -echo $ac_n "checking whether GCC supports -static-libgcc""... $ac_c" 1>&6 -echo "configure:2279: checking whether GCC supports -static-libgcc" >&5 -if eval "test \"`echo '$''{'libc_cv_gcc_static_libgcc'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking whether GCC supports -static-libgcc" >&5 +echo $ECHO_N "checking whether GCC supports -static-libgcc... $ECHO_C" >&6 +if test "${libc_cv_gcc_static_libgcc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else if $CC -v -static-libgcc 2>&1 | grep -q 'unrecognized option.*static-libgcc'; then libc_cv_gcc_static_libgcc= @@ -2285,44 +3958,48 @@ else libc_cv_gcc_static_libgcc=-static-libgcc fi fi - -echo "$ac_t""$libc_cv_gcc_static_libgcc" 1>&6 +echo "$as_me:$LINENO: result: $libc_cv_gcc_static_libgcc" >&5 +echo "${ECHO_T}$libc_cv_gcc_static_libgcc" >&6 # 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:2296: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_BASH+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - case "$BASH" in - /*) + case $BASH in + [\\/]* | ?:[\\/]*) ac_cv_path_BASH="$BASH" # Let the user override the test with a path. ;; - ?:/*) - ac_cv_path_BASH="$BASH" # Let the user override the test with a dos path. - ;; *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_path_BASH="$ac_dir/$ac_word" - break - fi - done - IFS="$ac_save_ifs" + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_BASH="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + test -z "$ac_cv_path_BASH" && ac_cv_path_BASH="no" ;; esac fi -BASH="$ac_cv_path_BASH" +BASH=$ac_cv_path_BASH + if test -n "$BASH"; then - echo "$ac_t""$BASH" 1>&6 + echo "$as_me:$LINENO: result: $BASH" >&5 +echo "${ECHO_T}$BASH" >&6 else - echo "$ac_t""no" 1>&6 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi if test "$BASH" != no && @@ -2337,38 +4014,42 @@ fi 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:2342: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_path_KSH'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_KSH+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - case "$KSH" in - /*) + case $KSH in + [\\/]* | ?:[\\/]*) ac_cv_path_KSH="$KSH" # Let the user override the test with a path. ;; - ?:/*) - ac_cv_path_KSH="$KSH" # Let the user override the test with a dos path. - ;; *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_path_KSH="$ac_dir/$ac_word" - break - fi - done - IFS="$ac_save_ifs" + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_KSH="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + test -z "$ac_cv_path_KSH" && ac_cv_path_KSH="no" ;; esac fi -KSH="$ac_cv_path_KSH" +KSH=$ac_cv_path_KSH + if test -n "$KSH"; then - echo "$ac_t""$KSH" 1>&6 + echo "$as_me:$LINENO: result: $KSH" >&5 +echo "${ECHO_T}$KSH" >&6 else - echo "$ac_t""no" 1>&6 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi if test "$KSH" = no; then @@ -2378,79 +4059,89 @@ fi fi else KSH="$BASH" - + libc_cv_have_ksh=yes fi for ac_prog in gawk mawk nawk awk do -# Extract the first word of "$ac_prog", so it can be a program name with args. + # 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:2392: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_AWK+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_AWK="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + fi fi -AWK="$ac_cv_prog_AWK" +AWK=$ac_cv_prog_AWK if test -n "$AWK"; then - echo "$ac_t""$AWK" 1>&6 + echo "$as_me:$LINENO: result: $AWK" >&5 +echo "${ECHO_T}$AWK" >&6 else - echo "$ac_t""no" 1>&6 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi -test -n "$AWK" && break + test -n "$AWK" && break done # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2424: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_PERL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - case "$PERL" in - /*) + case $PERL in + [\\/]* | ?:[\\/]*) ac_cv_path_PERL="$PERL" # Let the user override the test with a path. ;; - ?:/*) - ac_cv_path_PERL="$PERL" # Let the user override the test with a dos path. - ;; *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_path_PERL="$ac_dir/$ac_word" - break - fi - done - IFS="$ac_save_ifs" + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="no" ;; esac fi -PERL="$ac_cv_path_PERL" +PERL=$ac_cv_path_PERL + if test -n "$PERL"; then - echo "$ac_t""$PERL" 1>&6 + echo "$as_me:$LINENO: result: $PERL" >&5 +echo "${ECHO_T}$PERL" >&6 else - echo "$ac_t""no" 1>&6 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi if test "$PERL" != no && @@ -2459,45 +4150,50 @@ if test "$PERL" != no && fi # Extract the first word of "install-info", so it can be a program name with args. set dummy install-info; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2464: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_path_INSTALL_INFO'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_INSTALL_INFO+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - case "$INSTALL_INFO" in - /*) + case $INSTALL_INFO in + [\\/]* | ?:[\\/]*) ac_cv_path_INSTALL_INFO="$INSTALL_INFO" # Let the user override the test with a path. ;; - ?:/*) - ac_cv_path_INSTALL_INFO="$INSTALL_INFO" # Let the user override the test with a dos path. - ;; *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_path_INSTALL_INFO="$ac_dir/$ac_word" - break - fi - done - IFS="$ac_save_ifs" + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_dummy="$PATH:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin" +for as_dir in $as_dummy +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_INSTALL_INFO="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + test -z "$ac_cv_path_INSTALL_INFO" && ac_cv_path_INSTALL_INFO="no" ;; esac fi -INSTALL_INFO="$ac_cv_path_INSTALL_INFO" +INSTALL_INFO=$ac_cv_path_INSTALL_INFO + if test -n "$INSTALL_INFO"; then - echo "$ac_t""$INSTALL_INFO" 1>&6 + echo "$as_me:$LINENO: result: $INSTALL_INFO" >&5 +echo "${ECHO_T}$INSTALL_INFO" >&6 else - echo "$ac_t""no" 1>&6 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi if test "$INSTALL_INFO" != "no"; then -echo $ac_n "checking for old Debian install-info""... $ac_c" 1>&6 -echo "configure:2499: checking for old Debian install-info" >&5 -if eval "test \"`echo '$''{'libc_cv_old_debian_install_info'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking for old Debian install-info" >&5 +echo $ECHO_N "checking for old Debian install-info... $ECHO_C" >&6 +if test "${libc_cv_old_debian_install_info+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else mkdir conftest.d # There is a hard ^_ on the next line. I am open to better ideas. @@ -2518,10 +4214,11 @@ else fi rm -fr conftest.d fi - -echo "$ac_t""$libc_cv_old_debian_install_info" 1>&6 +echo "$as_me:$LINENO: result: $libc_cv_old_debian_install_info" >&5 +echo "${ECHO_T}$libc_cv_old_debian_install_info" >&6 if test -n "$testfailed" -then echo "configure: warning: install-info errored out, check config.log" 1>&2 +then { echo "$as_me:$LINENO: WARNING: install-info errored out, check config.log" >&5 +echo "$as_me: WARNING: install-info errored out, check config.log" >&2;} fi OLD_DEBIAN_INSTALL_INFO=$libc_cv_old_debian_install_info fi @@ -2529,45 +4226,50 @@ fi # Extract the first word of "bison", so it can be a program name with args. set dummy bison; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2534: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_path_BISON'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_BISON+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - case "$BISON" in - /*) + case $BISON in + [\\/]* | ?:[\\/]*) ac_cv_path_BISON="$BISON" # Let the user override the test with a path. ;; - ?:/*) - ac_cv_path_BISON="$BISON" # Let the user override the test with a dos path. - ;; *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH:/usr/local/bin:/usr/bin:/bin" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_path_BISON="$ac_dir/$ac_word" - break - fi - done - IFS="$ac_save_ifs" + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_dummy="$PATH:/usr/local/bin:/usr/bin:/bin" +for as_dir in $as_dummy +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_BISON="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + test -z "$ac_cv_path_BISON" && ac_cv_path_BISON="no" ;; esac fi -BISON="$ac_cv_path_BISON" +BISON=$ac_cv_path_BISON + if test -n "$BISON"; then - echo "$ac_t""$BISON" 1>&6 + echo "$as_me:$LINENO: result: $BISON" >&5 +echo "${ECHO_T}$BISON" >&6 else - echo "$ac_t""no" 1>&6 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 fi -echo $ac_n "checking for signed size_t type""... $ac_c" 1>&6 -echo "configure:2569: 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 +echo "$as_me:$LINENO: checking for signed size_t type" >&5 +echo $ECHO_N "checking for signed size_t type... $ECHO_C" >&6 +if test "${libc_cv_signed_size_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else echo '#include FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c @@ -2579,8 +4281,8 @@ else fi rm -f conftest* fi - -echo "$ac_t""$libc_cv_signed_size_t" 1>&6 +echo "$as_me:$LINENO: result: $libc_cv_signed_size_t" >&5 +echo "${ECHO_T}$libc_cv_signed_size_t" >&6 if test $libc_cv_signed_size_t = yes; then cat >> confdefs.h <<\EOF #undef __SIZE_TYPE__ @@ -2588,49 +4290,68 @@ if test $libc_cv_signed_size_t = yes; th EOF fi -echo $ac_n "checking for libc-friendly stddef.h""... $ac_c" 1>&6 -echo "configure:2593: 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 + +echo "$as_me:$LINENO: checking for libc-friendly stddef.h" >&5 +echo $ECHO_N "checking for libc-friendly stddef.h... $ECHO_C" >&6 +if test "${libc_cv_friendly_stddef+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat > conftest.$ac_ext <conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ #define __need_size_t #define __need_wchar_t #include #define __need_NULL #include -int main() { +int +main () +{ size_t size; wchar_t wchar; #ifdef offsetof #error stddef.h ignored __need_* #endif if (&size == NULL || &wchar == NULL) abort (); -; return 0; } -EOF -if { (eval echo configure:2613: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then libc_cv_friendly_stddef=yes else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - libc_cv_friendly_stddef=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +libc_cv_friendly_stddef=no fi -rm -f conftest* +rm -f conftest.$ac_objext conftest.$ac_ext fi - -echo "$ac_t""$libc_cv_friendly_stddef" 1>&6 +echo "$as_me:$LINENO: result: $libc_cv_friendly_stddef" >&5 +echo "${ECHO_T}$libc_cv_friendly_stddef" >&6 if test $libc_cv_friendly_stddef = yes; then config_vars="$config_vars override stddef.h = # The installed 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:2632: 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 +echo "$as_me:$LINENO: checking whether we need to use -P to assemble .S files" >&5 +echo $ECHO_N "checking whether we need to use -P to assemble .S files... $ECHO_C" >&6 +if test "${libc_cv_need_minus_P+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.S <&6 +echo "$as_me:$LINENO: result: $libc_cv_need_minus_P" >&5 +echo "${ECHO_T}$libc_cv_need_minus_P" >&6 if test $libc_cv_need_minus_P = yes; then config_vars="$config_vars asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives." fi -echo $ac_n "checking whether .text pseudo-op must be used""... $ac_c" 1>&6 -echo "configure:2655: checking whether .text pseudo-op must be used" >&5 -if eval "test \"`echo '$''{'libc_cv_dot_text'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking whether .text pseudo-op must be used" >&5 +echo $ECHO_N "checking whether .text pseudo-op must be used... $ECHO_C" >&6 +if test "${libc_cv_dot_text+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.s <&6 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 else - echo "$ac_t""yes" 1>&6 + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 fi -echo $ac_n "checking for assembler global-symbol directive""... $ac_c" 1>&6 -echo "configure:2676: 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 +echo "$as_me:$LINENO: checking for assembler global-symbol directive" >&5 +echo $ECHO_N "checking for assembler global-symbol directive... $ECHO_C" >&6 +if test "${libc_cv_asm_global_directive+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else libc_cv_asm_global_directive=UNKNOWN for ac_globl in .globl .global .EXPORT; do @@ -2690,21 +4413,23 @@ EOF test $libc_cv_asm_global_directive != UNKNOWN && break done fi - -echo "$ac_t""$libc_cv_asm_global_directive" 1>&6 +echo "$as_me:$LINENO: result: $libc_cv_asm_global_directive" >&5 +echo "${ECHO_T}$libc_cv_asm_global_directive" >&6 if test $libc_cv_asm_global_directive = UNKNOWN; then - { echo "configure: error: cannot determine asm global directive" 1>&2; exit 1; } + { { echo "$as_me:$LINENO: error: cannot determine asm global directive" >&5 +echo "$as_me: error: cannot determine asm global directive" >&2;} + { (exit 1); exit 1; }; } else - cat >> confdefs.h <>confdefs.h <<_ACEOF #define ASM_GLOBAL_DIRECTIVE ${libc_cv_asm_global_directive} -EOF +_ACEOF fi -echo $ac_n "checking for .set assembler directive""... $ac_c" 1>&6 -echo "configure:2706: 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 +echo "$as_me:$LINENO: checking for .set assembler directive" >&5 +echo $ECHO_N "checking for .set assembler directive... $ECHO_C" >&6 +if test "${libc_cv_asm_set_directive+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.s <&6 +echo "$as_me:$LINENO: result: $libc_cv_asm_set_directive" >&5 +echo "${ECHO_T}$libc_cv_asm_set_directive" >&6 if test $libc_cv_asm_set_directive = yes; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_ASM_SET_DIRECTIVE 1 -EOF +_ACEOF fi -echo $ac_n "checking for assembler .type directive prefix""... $ac_c" 1>&6 -echo "configure:2740: checking for assembler .type directive prefix" >&5 -if eval "test \"`echo '$''{'libc_cv_asm_type_prefix'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking for assembler .type directive prefix" >&5 +echo $ECHO_N "checking for assembler .type directive prefix... $ECHO_C" >&6 +if test "${libc_cv_asm_type_prefix+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else libc_cv_asm_type_prefix=no for ac_try_prefix in '@' '%' '#'; do @@ -2757,12 +4482,12 @@ EOF test "x$libc_cv_asm_type_prefix" != xno && break done fi - -echo "$ac_t""$libc_cv_asm_type_prefix" 1>&6 +echo "$as_me:$LINENO: result: $libc_cv_asm_type_prefix" >&5 +echo "${ECHO_T}$libc_cv_asm_type_prefix" >&6 if test "x$libc_cv_asm_type_prefix" != xno; then - cat >> confdefs.h <>confdefs.h <<_ACEOF #define ASM_TYPE_DIRECTIVE_PREFIX ${libc_cv_asm_type_prefix} -EOF +_ACEOF fi @@ -2770,16 +4495,16 @@ fi # Unfortunately also used in the PPC64 ELF ABI. case "${os}${machine}" in aix4.3* | linux*powerpc/powerpc64*) - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_ASM_GLOBAL_DOT_NAME 1 -EOF +_ACEOF esac -echo $ac_n "checking for .symver assembler directive""... $ac_c" 1>&6 -echo "configure:2781: 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 +echo "$as_me:$LINENO: checking for .symver assembler directive" >&5 +echo $ECHO_N "checking for .symver assembler directive... $ECHO_C" >&6 +if test "${libc_cv_asm_symver_directive+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.s <&6 -echo $ac_n "checking for ld --version-script""... $ac_c" 1>&6 -echo "configure:2800: 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 +echo "$as_me:$LINENO: result: $libc_cv_asm_symver_directive" >&5 +echo "${ECHO_T}$libc_cv_asm_symver_directive" >&6 +echo "$as_me:$LINENO: checking for ld --version-script" >&5 +echo $ECHO_N "checking for ld --version-script... $ECHO_C" >&6 +if test "${libc_cv_ld_version_script_option+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else if test $libc_cv_asm_symver_directive = yes; then cat > conftest.s <&5; (eval $ac_try) 2>&5; }; }; + 1>&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then libc_cv_ld_version_script_option=yes else @@ -2833,16 +4563,16 @@ else fi rm -f conftest* fi - -echo "$ac_t""$libc_cv_ld_version_script_option" 1>&6 +echo "$as_me:$LINENO: result: $libc_cv_ld_version_script_option" >&5 +echo "${ECHO_T}$libc_cv_ld_version_script_option" >&6 if test $shared != no && test $libc_cv_asm_symver_directive = yes && test $libc_cv_ld_version_script_option = yes && test $enable_versioning = yes; then VERSIONING=yes - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define DO_VERSIONING 1 -EOF +_ACEOF else VERSIONING=no @@ -2857,59 +4587,69 @@ if test $elf = yes && test $shared != no *** For versioning you need recent binutils (binutils-2.8.1.0.23 or newer)." fi if test $elf = yes; then - echo $ac_n "checking for .previous assembler directive""... $ac_c" 1>&6 -echo "configure:2862: 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 + echo "$as_me:$LINENO: checking for .previous assembler directive" >&5 +echo $ECHO_N "checking for .previous assembler directive... $ECHO_C" >&6 +if test "${libc_cv_asm_previous_directive+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.s <&5; (eval $ac_try) 2>&5; }; }; then + if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then libc_cv_asm_previous_directive=yes else libc_cv_asm_previous_directive=no fi rm -f conftest* fi - -echo "$ac_t""$libc_cv_asm_previous_directive" 1>&6 +echo "$as_me:$LINENO: result: $libc_cv_asm_previous_directive" >&5 +echo "${ECHO_T}$libc_cv_asm_previous_directive" >&6 if test $libc_cv_asm_previous_directive = yes; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_ASM_PREVIOUS_DIRECTIVE 1 -EOF +_ACEOF else - echo $ac_n "checking for .popsection assembler directive""... $ac_c" 1>&6 -echo "configure:2886: 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 + echo "$as_me:$LINENO: checking for .popsection assembler directive" >&5 +echo $ECHO_N "checking for .popsection assembler directive... $ECHO_C" >&6 +if test "${libc_cv_asm_popsection_directive+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.s <&5; (eval $ac_try) 2>&5; }; }; then + if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then libc_cv_asm_popsection_directive=yes else libc_cv_asm_popsection_directive=no fi rm -f conftest* fi - -echo "$ac_t""$libc_cv_asm_popsection_directive" 1>&6 +echo "$as_me:$LINENO: result: $libc_cv_asm_popsection_directive" >&5 +echo "${ECHO_T}$libc_cv_asm_popsection_directive" >&6 if test $libc_cv_asm_popsection_directive = yes; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_ASM_POPSECTION_DIRECTIVE 1 -EOF +_ACEOF fi fi - echo $ac_n "checking for .protected and .hidden assembler directive""... $ac_c" 1>&6 -echo "configure:2911: checking for .protected and .hidden assembler directive" >&5 -if eval "test \"`echo '$''{'libc_cv_asm_protected_directive'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 + echo "$as_me:$LINENO: checking for .protected and .hidden assembler directive" >&5 +echo $ECHO_N "checking for .protected and .hidden assembler directive... $ECHO_C" >&6 +if test "${libc_cv_asm_protected_directive+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.s <&5; (eval $ac_try) 2>&5; }; }; then + if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then libc_cv_asm_protected_directive=yes else libc_cv_asm_protected_directive=no fi rm -f conftest* fi +echo "$as_me:$LINENO: result: $libc_cv_asm_protected_directive" >&5 +echo "${ECHO_T}$libc_cv_asm_protected_directive" >&6 -echo "$ac_t""$libc_cv_asm_protected_directive" 1>&6 - - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_PROTECTED 1 -EOF +_ACEOF - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_HIDDEN 1 -EOF +_ACEOF if test $libc_cv_asm_protected_directive = yes; then - echo $ac_n "checking whether __attribute__((visibility())) is supported""... $ac_c" 1>&6 -echo "configure:2942: checking whether __attribute__((visibility())) is supported" >&5 -if eval "test \"`echo '$''{'libc_cv_visibility_attribute'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 + echo "$as_me:$LINENO: checking whether __attribute__((visibility())) is supported" >&5 +echo $ECHO_N "checking whether __attribute__((visibility())) is supported... $ECHO_C" >&6 +if test "${libc_cv_visibility_attribute+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.c <&6 +fi +echo "$as_me:$LINENO: result: $libc_cv_visibility_attribute" >&5 +echo "${ECHO_T}$libc_cv_visibility_attribute" >&6 if test $libc_cv_visibility_attribute = yes; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_VISIBILITY_ATTRIBUTE 1 -EOF +_ACEOF fi fi if test $libc_cv_visibility_attribute = yes; then - echo $ac_n "checking for broken __attribute__((visibility()))""... $ac_c" 1>&6 -echo "configure:2973: checking for broken __attribute__((visibility()))" >&5 -if eval "test \"`echo '$''{'libc_cv_broken_visibility_attribute'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 + echo "$as_me:$LINENO: checking for broken __attribute__((visibility()))" >&5 +echo $ECHO_N "checking for broken __attribute__((visibility()))... $ECHO_C" >&6 +if test "${libc_cv_broken_visibility_attribute+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.c <&6 +fi +echo "$as_me:$LINENO: result: $libc_cv_broken_visibility_attribute" >&5 +echo "${ECHO_T}$libc_cv_broken_visibility_attribute" >&6 if test $libc_cv_broken_visibility_attribute = yes; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_BROKEN_VISIBILITY_ATTRIBUTE 1 -EOF +_ACEOF fi fi - echo $ac_n "checking for broken __attribute__((alias()))""... $ac_c" 1>&6 -echo "configure:3002: checking for broken __attribute__((alias()))" >&5 -if eval "test \"`echo '$''{'libc_cv_broken_alias_attribute'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 + echo "$as_me:$LINENO: checking for broken __attribute__((alias()))" >&5 +echo $ECHO_N "checking for broken __attribute__((alias()))... $ECHO_C" >&6 +if test "${libc_cv_broken_alias_attribute+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.c <&6 +fi +echo "$as_me:$LINENO: result: $libc_cv_broken_alias_attribute" >&5 +echo "${ECHO_T}$libc_cv_broken_alias_attribute" >&6 if test $libc_cv_broken_alias_attribute = yes; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_BROKEN_ALIAS_ATTRIBUTE 1 -EOF +_ACEOF fi if test $libc_cv_visibility_attribute = yes -a $gnu_ld = yes; then - echo $ac_n "checking whether to put _rtld_local into .sdata section""... $ac_c" 1>&6 -echo "configure:3035: checking whether to put _rtld_local into .sdata section" >&5 -if eval "test \"`echo '$''{'libc_cv_have_sdata_section'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 + echo "$as_me:$LINENO: checking whether to put _rtld_local into .sdata section" >&5 +echo $ECHO_N "checking whether to put _rtld_local into .sdata section... $ECHO_C" >&6 +if test "${libc_cv_have_sdata_section+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else echo "int i;" > conftest.c libc_cv_have_sdata_section=no @@ -3042,22 +4787,22 @@ else libc_cv_have_sdata_section=yes fi rm -f conftest.c conftest.so - -fi -echo "$ac_t""$libc_cv_have_sdata_section" 1>&6 +fi +echo "$as_me:$LINENO: result: $libc_cv_have_sdata_section" >&5 +echo "${ECHO_T}$libc_cv_have_sdata_section" >&6 if test $libc_cv_have_sdata_section = yes; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_SDATA_SECTION 1 -EOF +_ACEOF fi fi - echo $ac_n "checking for .preinit_array/.init_array/.fini_array support""... $ac_c" 1>&6 -echo "configure:3059: checking for .preinit_array/.init_array/.fini_array support" >&5 -if eval "test \"`echo '$''{'libc_cv_initfinit_array'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 + echo "$as_me:$LINENO: checking for .preinit_array/.init_array/.fini_array support" >&5 +echo $ECHO_N "checking for .preinit_array/.init_array/.fini_array support... $ECHO_C" >&6 +if test "${libc_cv_initfinit_array+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } + -static -nostartfiles -nostdlib 1>&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } then if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then libc_cv_initfinit_array=yes @@ -3078,27 +4828,32 @@ EOF fi rm -f conftest* fi +echo "$as_me:$LINENO: result: $libc_cv_initfinit_array" >&5 +echo "${ECHO_T}$libc_cv_initfinit_array" >&6 -echo "$ac_t""$libc_cv_initfinit_array" 1>&6 - if test $libc_cv_initfinit_array = yes; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_INITFINI_ARRAY 1 -EOF +_ACEOF fi - echo $ac_n "checking for -z nodelete option""... $ac_c" 1>&6 -echo "configure:3093: checking for -z nodelete option" >&5 -if eval "test \"`echo '$''{'libc_cv_z_nodelete'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 + echo "$as_me:$LINENO: checking for -z nodelete option" >&5 +echo $ECHO_N "checking for -z nodelete option... $ECHO_C" >&6 +if test "${libc_cv_z_nodelete+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } + -Wl,--enable-new-dtags,-z,nodelete 1>&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } then libc_cv_z_nodelete=yes else @@ -3106,21 +4861,26 @@ EOF fi rm -f conftest* fi +echo "$as_me:$LINENO: result: $libc_cv_z_nodelete" >&5 +echo "${ECHO_T}$libc_cv_z_nodelete" >&6 -echo "$ac_t""$libc_cv_z_nodelete" 1>&6 - - echo $ac_n "checking for -z nodlopen option""... $ac_c" 1>&6 -echo "configure:3115: checking for -z nodlopen option" >&5 -if eval "test \"`echo '$''{'libc_cv_z_nodlopen'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 + echo "$as_me:$LINENO: checking for -z nodlopen option" >&5 +echo $ECHO_N "checking for -z nodlopen option... $ECHO_C" >&6 +if test "${libc_cv_z_nodlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } + -Wl,--enable-new-dtags,-z,nodlopen 1>&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } then libc_cv_z_nodlopen=yes else @@ -3128,21 +4888,26 @@ EOF fi rm -f conftest* fi +echo "$as_me:$LINENO: result: $libc_cv_z_nodlopen" >&5 +echo "${ECHO_T}$libc_cv_z_nodlopen" >&6 -echo "$ac_t""$libc_cv_z_nodlopen" 1>&6 - - echo $ac_n "checking for -z initfirst option""... $ac_c" 1>&6 -echo "configure:3137: checking for -z initfirst option" >&5 -if eval "test \"`echo '$''{'libc_cv_z_initfirst'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 + echo "$as_me:$LINENO: checking for -z initfirst option" >&5 +echo $ECHO_N "checking for -z initfirst option... $ECHO_C" >&6 +if test "${libc_cv_z_initfirst+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } + -Wl,--enable-new-dtags,-z,initfirst 1>&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } then libc_cv_z_initfirst=yes else @@ -3150,19 +4915,24 @@ EOF fi rm -f conftest* fi +echo "$as_me:$LINENO: result: $libc_cv_z_initfirst" >&5 +echo "${ECHO_T}$libc_cv_z_initfirst" >&6 -echo "$ac_t""$libc_cv_z_initfirst" 1>&6 - - echo $ac_n "checking for -Bgroup option""... $ac_c" 1>&6 -echo "configure:3159: checking for -Bgroup option" >&5 -if eval "test \"`echo '$''{'libc_cv_Bgroup'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 + echo "$as_me:$LINENO: checking for -Bgroup option" >&5 +echo $ECHO_N "checking for -Bgroup option... $ECHO_C" >&6 +if test "${libc_cv_Bgroup+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } + if { ac_try='${CC-cc} -shared -o conftest.so conftest.c -Wl,-Bgroup -nostdlib 1>&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } then libc_cv_Bgroup=yes else @@ -3170,14 +4940,14 @@ EOF fi rm -f conftest* fi +echo "$as_me:$LINENO: result: $libc_cv_Bgroup" >&5 +echo "${ECHO_T}$libc_cv_Bgroup" >&6 -echo "$ac_t""$libc_cv_Bgroup" 1>&6 - - echo $ac_n "checking for -z combreloc""... $ac_c" 1>&6 -echo "configure:3179: checking for -z combreloc" >&5 -if eval "test \"`echo '$''{'libc_cv_z_combreloc'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 + echo "$as_me:$LINENO: checking for -z combreloc" >&5 +echo $ECHO_N "checking for -z combreloc... $ECHO_C" >&6 +if test "${libc_cv_z_combreloc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } + -Wl,-z,combreloc 1>&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } then if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then libc_cv_z_combreloc=yes @@ -3198,59 +4973,77 @@ EOF fi rm -f conftest* fi - -echo "$ac_t""$libc_cv_z_combreloc" 1>&6 +echo "$as_me:$LINENO: result: $libc_cv_z_combreloc" >&5 +echo "${ECHO_T}$libc_cv_z_combreloc" >&6 if test "$libc_cv_z_combreloc" = yes; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_Z_COMBRELOC 1 -EOF +_ACEOF fi fi if test $elf != yes; then - echo $ac_n "checking for .init and .fini sections""... $ac_c" 1>&6 -echo "configure:3215: 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 + echo "$as_me:$LINENO: checking for .init and .fini sections" >&5 +echo $ECHO_N "checking for .init and .fini sections... $ECHO_C" >&6 +if test "${libc_cv_have_initfini+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat > conftest.$ac_ext <conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ -int main() { +int +main () +{ asm (".section .init"); asm (".section .fini"); asm ("${libc_cv_dot_text}"); -; return 0; } -EOF -if { (eval echo configure:3229: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then libc_cv_have_initfini=yes else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - libc_cv_have_initfini=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +libc_cv_have_initfini=no fi -rm -f conftest* +rm -f conftest.$ac_objext conftest.$ac_ext fi - -echo "$ac_t""$libc_cv_have_initfini" 1>&6 +echo "$as_me:$LINENO: result: $libc_cv_have_initfini" >&5 +echo "${ECHO_T}$libc_cv_have_initfini" >&6 if test $libc_cv_have_initfini = yes; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_INITFINI 1 -EOF +_ACEOF fi fi if test $elf = yes -a $gnu_ld = yes; then - echo $ac_n "checking whether cc puts quotes around section names""... $ac_c" 1>&6 -echo "configure:3252: checking whether cc puts quotes around section names" >&5 -if eval "test \"`echo '$''{'libc_cv_have_section_quotes'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 + echo "$as_me:$LINENO: checking whether cc puts quotes around section names" >&5 +echo $ECHO_N "checking whether cc puts quotes around section names... $ECHO_C" >&6 +if test "${libc_cv_have_section_quotes+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.c <&6 +fi +echo "$as_me:$LINENO: result: $libc_cv_have_section_quotes" >&5 +echo "${ECHO_T}$libc_cv_have_section_quotes" >&6 if test $libc_cv_have_section_quotes = yes; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_SECTION_QUOTES 1 -EOF +_ACEOF fi fi @@ -3284,45 +5077,67 @@ if test $elf = yes; then libc_cv_asm_underscores=no 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:3289: 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 + echo "$as_me:$LINENO: checking for _ prefix on C symbol names" >&5 +echo $ECHO_N "checking for _ prefix on C symbol names... $ECHO_C" >&6 +if test "${libc_cv_asm_underscores+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat > conftest.$ac_ext <conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ asm ("_glibc_foobar:"); -int main() { +int +main () +{ glibc_foobar (); -; return 0; } -EOF -if { (eval echo configure:3301: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then libc_cv_asm_underscores=yes else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - libc_cv_asm_underscores=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +libc_cv_asm_underscores=no fi -rm -f conftest* +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi - -echo "$ac_t""$libc_cv_asm_underscores" 1>&6 +echo "$as_me:$LINENO: result: $libc_cv_asm_underscores" >&5 +echo "${ECHO_T}$libc_cv_asm_underscores" >&6 else - echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6 -echo "configure:3316: 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 + echo "$as_me:$LINENO: checking for _ prefix on C symbol names" >&5 +echo $ECHO_N "checking for _ prefix on C symbol names... $ECHO_C" >&6 +if test "${libc_cv_asm_underscores+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then if grep _underscore_test conftest* >/dev/null; then rm -f conftest* libc_cv_asm_underscores=yes @@ -3338,14 +5153,14 @@ else fi rm -f conftest* fi - -echo "$ac_t""$libc_cv_asm_underscores" 1>&6 +echo "$as_me:$LINENO: result: $libc_cv_asm_underscores" >&5 +echo "${ECHO_T}$libc_cv_asm_underscores" >&6 fi fi if test $libc_cv_asm_underscores = no; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define NO_UNDERSCORES 1 -EOF +_ACEOF fi @@ -3353,10 +5168,10 @@ if test $elf = yes; then libc_cv_weak_symbols=yes fi -echo $ac_n "checking for assembler .weak directive""... $ac_c" 1>&6 -echo "configure:3358: 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 +echo "$as_me:$LINENO: checking for assembler .weak directive" >&5 +echo $ECHO_N "checking for assembler .weak directive... $ECHO_C" >&6 +if test "${libc_cv_asm_weak_directive+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.s <&6 +echo "$as_me:$LINENO: result: $libc_cv_asm_weak_directive" >&5 +echo "${ECHO_T}$libc_cv_asm_weak_directive" >&6 if test $libc_cv_asm_weak_directive = no; then - echo $ac_n "checking for assembler .weakext directive""... $ac_c" 1>&6 -echo "configure:3381: 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 + echo "$as_me:$LINENO: checking for assembler .weakext directive" >&5 +echo $ECHO_N "checking for assembler .weakext directive... $ECHO_C" >&6 +if test "${libc_cv_asm_weakext_directive+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.s <&6 +echo "$as_me:$LINENO: result: $libc_cv_asm_weakext_directive" >&5 +echo "${ECHO_T}$libc_cv_asm_weakext_directive" >&6 fi # no .weak if test $libc_cv_asm_weak_directive = yes; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_ASM_WEAK_DIRECTIVE 1 -EOF +_ACEOF elif test $libc_cv_asm_weakext_directive = yes; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_ASM_WEAKEXT_DIRECTIVE 1 -EOF +_ACEOF fi case "${host_cpu}-${host_os}" in cris*) libc_cv_asm_line_sep='@' - cat >> confdefs.h <>confdefs.h <<_ACEOF #define ASM_LINE_SEP $libc_cv_asm_line_sep -EOF +_ACEOF ;; hppa*linux*) - echo $ac_n "checking for assembler line separator""... $ac_c" 1>&6 -echo "configure:3428: checking for assembler line separator" >&5 -if eval "test \"`echo '$''{'libc_cv_asm_line_sep'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 + echo "$as_me:$LINENO: checking for assembler line separator" >&5 +echo $ECHO_N "checking for assembler line separator... $ECHO_C" >&6 +if test "${libc_cv_asm_line_sep+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.s <&5; (eval $ac_try) 2>&5; }; }; then + if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then libc_cv_asm_line_sep='!' else if test -z "$enable_hacker_mode"; then @@ -3443,19 +5263,19 @@ EOF fi rm -f conftest* fi - -echo "$ac_t""$libc_cv_asm_line_sep" 1>&6 - cat >> confdefs.h <&5 +echo "${ECHO_T}$libc_cv_asm_line_sep" >&6 + cat >>confdefs.h <<_ACEOF #define ASM_LINE_SEP $libc_cv_asm_line_sep -EOF +_ACEOF ;; esac -echo $ac_n "checking for ld --no-whole-archive""... $ac_c" 1>&6 -echo "configure:3457: 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 +echo "$as_me:$LINENO: checking for ld --no-whole-archive" >&5 +echo $ECHO_N "checking for ld --no-whole-archive... $ECHO_C" >&6 +if test "${libc_cv_ld_no_whole_archive+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.c <<\EOF _start () {} @@ -3464,23 +5284,28 @@ __throw () {} EOF if { ac_try='${CC-cc} $CFLAGS -nostdlib -nostartfiles -Wl,--no-whole-archive - -o conftest conftest.c 1>&5'; { (eval echo configure:3468: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then + -o conftest conftest.c 1>&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then libc_cv_ld_no_whole_archive=yes else libc_cv_ld_no_whole_archive=no fi rm -f conftest* fi - -echo "$ac_t""$libc_cv_ld_no_whole_archive" 1>&6 +echo "$as_me:$LINENO: result: $libc_cv_ld_no_whole_archive" >&5 +echo "${ECHO_T}$libc_cv_ld_no_whole_archive" >&6 if test $libc_cv_ld_no_whole_archive = yes; then no_whole_archive=-Wl,--no-whole-archive fi -echo $ac_n "checking for gcc -fexceptions""... $ac_c" 1>&6 -echo "configure:3482: checking for gcc -fexceptions" >&5 -if eval "test \"`echo '$''{'libc_cv_gcc_exceptions'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking for gcc -fexceptions" >&5 +echo $ECHO_N "checking for gcc -fexceptions... $ECHO_C" >&6 +if test "${libc_cv_gcc_exceptions+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.c <<\EOF _start () {} @@ -3489,95 +5314,86 @@ __throw () {} EOF if { ac_try='${CC-cc} $CFLAGS -nostdlib -nostartfiles -fexceptions - -o conftest conftest.c 1>&5'; { (eval echo configure:3493: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then + -o conftest conftest.c 1>&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then libc_cv_gcc_exceptions=yes else libc_cv_gcc_exceptions=no fi rm -f conftest* fi - -echo "$ac_t""$libc_cv_gcc_exceptions" 1>&6 +echo "$as_me:$LINENO: result: $libc_cv_gcc_exceptions" >&5 +echo "${ECHO_T}$libc_cv_gcc_exceptions" >&6 if test $libc_cv_gcc_exceptions = yes; then exceptions=-fexceptions fi -if test "$base_machine" = alpha ; then -echo $ac_n "checking for function ..ng prefix""... $ac_c" 1>&6 -echo "configure:3508: checking for function ..ng prefix" >&5 -if eval "test \"`echo '$''{'libc_cv_gcc_alpha_ng_prefix'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.c <<\EOF -foo () { } -EOF -if { ac_try='${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null'; { (eval echo configure:3515: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; -then - libc_cv_gcc_alpha_ng_prefix=yes -else - libc_cv_gcc_alpha_ng_prefix=no -fi -rm -f conftest* -fi - -echo "$ac_t""$libc_cv_gcc_alpha_ng_prefix" 1>&6 -if test $libc_cv_gcc_alpha_ng_prefix = yes ; then - cat >> confdefs.h <<\EOF -#define ASM_ALPHA_NG_SYMBOL_PREFIX "$" -EOF - -else - cat >> confdefs.h <<\EOF -#define ASM_ALPHA_NG_SYMBOL_PREFIX "" -EOF - -fi -fi - if test "$host_cpu" = powerpc ; then # Check for a bug present in at least versions 2.8.x of GCC # and versions 1.0.x of EGCS. -echo $ac_n "checking whether clobbering cr0 causes problems""... $ac_c" 1>&6 -echo "configure:3542: checking whether clobbering cr0 causes problems" >&5 -if eval "test \"`echo '$''{'libc_cv_c_asmcr0_bug'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking whether clobbering cr0 causes problems" >&5 +echo $ECHO_N "checking whether clobbering cr0 causes problems... $ECHO_C" >&6 +if test "${libc_cv_c_asmcr0_bug+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat > conftest.$ac_ext <conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ int tester(int x) { asm ("" : : : "cc"); return x & 123; } -int main() { +int +main () +{ -; return 0; } -EOF -if { (eval echo configure:3554: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then libc_cv_c_asmcr0_bug='no' else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - libc_cv_c_asmcr0_bug='yes' + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +libc_cv_c_asmcr0_bug='yes' fi -rm -f conftest* +rm -f conftest.$ac_objext conftest.$ac_ext fi - -echo "$ac_t""$libc_cv_c_asmcr0_bug" 1>&6 +echo "$as_me:$LINENO: result: $libc_cv_c_asmcr0_bug" >&5 +echo "${ECHO_T}$libc_cv_c_asmcr0_bug" >&6 if test "$libc_cv_c_asmcr0_bug" != 'no'; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define BROKEN_PPC_ASM_CR0 1 -EOF +_ACEOF fi fi -echo $ac_n "checking for DWARF2 unwind info support""... $ac_c" 1>&6 -echo "configure:3576: 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 +echo "$as_me:$LINENO: checking for DWARF2 unwind info support" >&5 +echo $ECHO_N "checking for DWARF2 unwind info support... $ECHO_C" >&6 +if test "${libc_cv_gcc_dwarf2_unwind_info+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.c <&5; (eval $ac_try) 2>&5; }; }; then + -o conftest conftest.c -lgcc >&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then libc_cv_gcc_dwarf2_unwind_info=static else libc_cv_gcc_dwarf2_unwind_info=no fi -if { ac_try='${CC-cc} $CFLAGS -DCHECK__register_frame_info - -nostdlib -nostartfiles - -o conftest conftest.c -lgcc -lgcc_eh >&5'; { (eval echo configure:3616: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then - if ${CC-cc} $CFLAGS -DCHECK__register_frame_info -nostdlib -nostartfiles \ - -o conftest conftest.c -lgcc -lgcc_eh -v 2>&1 >/dev/null \ +# Some platforms' specs put -lgcc first. The second one doesn't hurt. +libc_unwind_check="${CC-cc} $CFLAGS -DCHECK__register_frame_info \ + -nostdlib -nostartfiles -o conftest conftest.c \ + -lgcc -lgcc_eh -lgcc" +if { ac_try='$libc_unwind_check >&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + if $libc_unwind_check -v 2>&1 >/dev/null \ | grep -q -- --eh-frame-hdr; then libc_cv_gcc_dwarf2_unwind_info=no_registry_needed else @@ -3626,7 +5453,12 @@ fi if test $libc_cv_gcc_dwarf2_unwind_info = no; then if { ac_try='${CC-cc} $CFLAGS -DCHECK__register_frame -nostdlib -nostartfiles - -o conftest conftest.c -lgcc >&5'; { (eval echo configure:3630: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then + -o conftest conftest.c -lgcc >&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then libc_cv_gcc_dwarf2_unwind_info=yes else libc_cv_gcc_dwarf2_unwind_info=no @@ -3634,34 +5466,34 @@ if test $libc_cv_gcc_dwarf2_unwind_info fi rm -f conftest* fi - -echo "$ac_t""$libc_cv_gcc_dwarf2_unwind_info" 1>&6 +echo "$as_me:$LINENO: result: $libc_cv_gcc_dwarf2_unwind_info" >&5 +echo "${ECHO_T}$libc_cv_gcc_dwarf2_unwind_info" >&6 case $libc_cv_gcc_dwarf2_unwind_info in yes) - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_DWARF2_UNWIND_INFO 1 -EOF +_ACEOF ;; static) - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_DWARF2_UNWIND_INFO 1 -EOF +_ACEOF - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_DWARF2_UNWIND_INFO_STATIC 1 -EOF +_ACEOF ;; esac -echo $ac_n "checking for __builtin_expect""... $ac_c" 1>&6 -echo "configure:3660: checking for __builtin_expect" >&5 -if eval "test \"`echo '$''{'libc_cv_gcc_builtin_expect'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking for __builtin_expect" >&5 +echo $ECHO_N "checking for __builtin_expect... $ECHO_C" >&6 +if test "${libc_cv_gcc_builtin_expect+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.c <&5; (eval $ac_try) 2>&5; }; }; then + -o conftest conftest.c -lgcc >&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then libc_cv_gcc_builtin_expect=yes else libc_cv_gcc_builtin_expect=no fi rm -f conftest* fi - -echo "$ac_t""$libc_cv_gcc_builtin_expect" 1>&6 +echo "$as_me:$LINENO: result: $libc_cv_gcc_builtin_expect" >&5 +echo "${ECHO_T}$libc_cv_gcc_builtin_expect" >&6 if test "$libc_cv_gcc_builtin_expect" = yes; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_BUILTIN_EXPECT 1 -EOF +_ACEOF fi -echo $ac_n "checking for __builtin_memset""... $ac_c" 1>&6 -echo "configure:3690: checking for __builtin_memset" >&5 -if eval "test \"`echo '$''{'libc_cv_gcc_builtin_memset'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking for __builtin_memset" >&5 +echo $ECHO_N "checking for __builtin_memset... $ECHO_C" >&6 +if test "${libc_cv_gcc_builtin_memset+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.c <<\EOF void zero (void *x) @@ -3696,30 +5533,35 @@ void zero (void *x) __builtin_memset (x, 0, 1000); } EOF -if { ac_try='${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null'; { (eval echo configure:3700: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; +if { ac_try='${CC-cc} -O3 -S conftest.c -o - | fgrep "memset" > /dev/null' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then libc_cv_gcc_builtin_memset=no else libc_cv_gcc_builtin_memset=yes fi -rm -f conftest* +rm -f conftest* fi - -echo "$ac_t""$libc_cv_gcc_builtin_memset" 1>&6 +echo "$as_me:$LINENO: result: $libc_cv_gcc_builtin_memset" >&5 +echo "${ECHO_T}$libc_cv_gcc_builtin_memset" >&6 if test "$libc_cv_gcc_builtin_memset" = yes ; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_BUILTIN_MEMSET 1 -EOF +_ACEOF fi -echo $ac_n "checking for local label subtraction""... $ac_c" 1>&6 -echo "configure:3718: checking for local label subtraction" >&5 -if eval "test \"`echo '$''{'libc_cv_gcc_subtract_local_labels'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking for local label subtraction" >&5 +echo $ECHO_N "checking for local label subtraction... $ECHO_C" >&6 +if test "${libc_cv_gcc_subtract_local_labels+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.c <&5; (eval $ac_try) 2>&5; }; }; then + -o conftest conftest.c -lgcc >&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then libc_cv_gcc_subtract_local_labels=yes else libc_cv_gcc_subtract_local_labels=no fi rm -f conftest* fi - -echo "$ac_t""$libc_cv_gcc_subtract_local_labels" 1>&6 +echo "$as_me:$LINENO: result: $libc_cv_gcc_subtract_local_labels" >&5 +echo "${ECHO_T}$libc_cv_gcc_subtract_local_labels" >&6 if test "$libc_cv_gcc_subtract_local_labels" = yes; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_SUBTRACT_LOCAL_LABELS 1 -EOF +_ACEOF fi -echo $ac_n "checking for __thread""... $ac_c" 1>&6 -echo "configure:3753: checking for __thread" >&5 -if eval "test \"`echo '$''{'libc_cv_gcc___thread'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +if test "x$use__thread" != xno; then + echo "$as_me:$LINENO: checking for __thread" >&5 +echo $ECHO_N "checking for __thread... $ECHO_C" >&6 +if test "${libc_cv_gcc___thread+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.c <<\EOF __thread int a = 42; EOF -if { ac_try='${CC-cc} $CFLAGS -c conftest.c >&5'; { (eval echo configure:3760: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then - libc_cv_gcc___thread=yes + if { ac_try='${CC-cc} $CFLAGS -c conftest.c >&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + libc_cv_gcc___thread=yes + else + libc_cv_gcc___thread=no + fi + rm -f conftest* +fi +echo "$as_me:$LINENO: result: $libc_cv_gcc___thread" >&5 +echo "${ECHO_T}$libc_cv_gcc___thread" >&6 + if test "$libc_cv_gcc___thread" = yes; then + cat >>confdefs.h <<\_ACEOF +#define HAVE___THREAD 1 +_ACEOF + + fi else libc_cv_gcc___thread=no fi -rm -f conftest* -fi -echo "$ac_t""$libc_cv_gcc___thread" 1>&6 if test "$libc_cv_gcc___thread" = yes; then - cat >> confdefs.h <<\EOF -#define HAVE___THREAD 1 + echo "$as_me:$LINENO: checking for tls_model attribute" >&5 +echo $ECHO_N "checking for tls_model attribute... $ECHO_C" >&6 +if test "${libc_cv_gcc_tls_model_attr+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat > conftest.c <<\EOF +extern __thread int a __attribute__((tls_model ("initial-exec"))); EOF - + if { ac_try='${CC-cc} $CFLAGS -S -Werror conftest.c >&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + libc_cv_gcc_tls_model_attr=yes + else + libc_cv_gcc_tls_model_attr=no + fi + rm -f conftest* fi +echo "$as_me:$LINENO: result: $libc_cv_gcc_tls_model_attr" >&5 +echo "${ECHO_T}$libc_cv_gcc_tls_model_attr" >&6 + if test "$libc_cv_gcc_tls_model_attr" = yes; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_TLS_MODEL_ATTRIBUTE 1 +_ACEOF + fi +fi -echo $ac_n "checking for libgd""... $ac_c" 1>&6 -echo "configure:3778: checking for libgd" >&5 +echo "$as_me:$LINENO: checking for libgd" >&5 +echo $ECHO_N "checking for libgd... $ECHO_C" >&6 if test "$with_gd" != "no"; then old_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $libgd_include" @@ -3782,70 +5668,650 @@ if test "$with_gd" != "no"; then LDFLAGS="$LDFLAGS $libgd_ldflags" old_LIBS="$LIBS" LIBS="$LIBS -lgd -lpng -lz -lm" - cat > conftest.$ac_ext <conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ #include -int main() { +int +main () +{ gdImagePng (0, 0) -; return 0; } -EOF -if { (eval echo configure:3794: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then LIBGD=yes else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - LIBGD=no + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +LIBGD=no fi -rm -f conftest* +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext CFLAGS="$old_CFLAGS" LDFLAGS="$old_LDFLAGS" LIBS="$old_LIBS" else LIBGD=no fi -echo "$ac_t""$LIBGD" 1>&6 +echo "$as_me:$LINENO: result: $LIBGD" >&5 +echo "${ECHO_T}$LIBGD" >&6 -echo $ac_n "checking size of long double""... $ac_c" 1>&6 -echo "configure:3814: checking size of long double" >&5 -if eval "test \"`echo '$''{'ac_cv_sizeof_long_double'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 + +echo "$as_me:$LINENO: checking for egrep" >&5 +echo $ECHO_N "checking for egrep... $ECHO_C" >&6 +if test "${ac_cv_prog_egrep+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if echo a | (grep -E '(a|b)') >/dev/null 2>&1 + then ac_cv_prog_egrep='grep -E' + else ac_cv_prog_egrep='egrep' + fi +fi +echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 +echo "${ECHO_T}$ac_cv_prog_egrep" >&6 + EGREP=$ac_cv_prog_egrep + + +echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_header_stdc=yes else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_header_stdc=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then - ac_cv_sizeof_long_double=0 + : else - cat > conftest.$ac_ext < -int main() + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () { - FILE *f=fopen("conftestval", "w"); - if (!f) return(1); - fprintf(f, "%d\n", sizeof(long double)); - return(0); + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + exit(2); + exit (0); } -EOF -if { (eval echo configure:3833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null -then - ac_cv_sizeof_long_double=`cat conftestval` +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -fr conftest* - ac_cv_sizeof_long_double=0 + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi fi -rm -fr conftest* fi +echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6 +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF fi -echo "$ac_t""$ac_cv_sizeof_long_double" 1>&6 -cat >> confdefs.h <&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 +if eval "test \"\${$as_ac_Header+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +eval "$as_ac_Header=no" +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +echo "$as_me:$LINENO: checking for long double" >&5 +echo $ECHO_N "checking for long double... $ECHO_C" >&6 +if test "${ac_cv_type_long_double+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +if ((long double *) 0) + return 0; +if (sizeof (long double)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_long_double=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_type_long_double=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_type_long_double" >&5 +echo "${ECHO_T}$ac_cv_type_long_double" >&6 + +echo "$as_me:$LINENO: checking size of long double" >&5 +echo $ECHO_N "checking size of long double... $ECHO_C" >&6 +if test "${ac_cv_sizeof_long_double+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$ac_cv_type_long_double" = yes; then + # The cast to unsigned long works around a bug in the HP C Compiler + # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects + # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. + # This bug is HP SR number 8606223364. + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (long double))) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (long double))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi +rm -f conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (long double))) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (long double))) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi +rm -f conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo= ac_hi= +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((long) (sizeof (long double))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_lo=`expr '(' $ac_mid ')' + 1` +fi +rm -f conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) ac_cv_sizeof_long_double=$ac_lo;; +'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long double), 77 +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (long double), 77 +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } ;; +esac +else + if test "$cross_compiling" = yes; then + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run test program while cross compiling +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +long longval () { return (long) (sizeof (long double)); } +unsigned long ulongval () { return (long) (sizeof (long double)); } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + exit (1); + if (((long) (sizeof (long double))) < 0) + { + long i = longval (); + if (i != ((long) (sizeof (long double)))) + exit (1); + fprintf (f, "%ld\n", i); + } + else + { + unsigned long i = ulongval (); + if (i != ((long) (sizeof (long double)))) + exit (1); + fprintf (f, "%lu\n", i); + } + exit (ferror (f) || fclose (f) != 0); + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_long_double=`cat conftest.val` +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long double), 77 +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (long double), 77 +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi +rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +rm -f conftest.val +else + ac_cv_sizeof_long_double=0 +fi +fi +echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_double" >&5 +echo "${ECHO_T}$ac_cv_sizeof_long_double" >&6 +cat >>confdefs.h <<_ACEOF #define SIZEOF_LONG_DOUBLE $ac_cv_sizeof_long_double -EOF +_ACEOF sizeof_long_double=$ac_cv_sizeof_long_double @@ -3854,10 +6320,6 @@ sizeof_long_double=$ac_cv_sizeof_long_do ### End of automated tests. ### Now run sysdeps configure fragments. -# sysdeps configure fragments may set these with files to be linked below. -libc_link_dests= -libc_link_sources= - # They also can set these variables. use_ldconfig=no ldd_rewrite_script=no @@ -3873,7 +6335,8 @@ for dir in $sysnames; do *) dest=$srcdir/$dir ;; esac if test -r $dest/configure; then - echo "$ac_t""running configure fragment for $dest" 1>&6 + echo "$as_me:$LINENO: result: running configure fragment for $dest" >&5 +echo "${ECHO_T}running configure fragment for $dest" >&6 . $dest/configure fi @@ -3888,15 +6351,13 @@ for dir in $sysnames; do done if test x$libc_cv_gcc_unwind_find_fde = xyes; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define EXPORT_UNWIND_FIND_FDE 1 -EOF +_ACEOF fi - - # If we will use the generic uname implementation, we must figure out what # it will say by examining the system, and write the results in config-name.h. if test "$uname" = "sysdeps/generic"; then @@ -3906,12 +6367,20 @@ if test "$uname" = "sysdeps/generic"; th config_release=`echo $config_os | sed s/$uname_sysname//` fi - echo $ac_n "checking OS release for uname""... $ac_c" 1>&6 -echo "configure:3911: 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 + echo "$as_me:$LINENO: checking OS release for uname" >&5 +echo $ECHO_N "checking OS release for uname... $ECHO_C" >&6 +if test "${libc_cv_uname_release+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'` + 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 + + kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'` if test x`echo "$config_release" | sed "s/^$kernel_release//"` \ != x$config_release; then # The configuration release is a substring of the kernel release. @@ -3924,24 +6393,32 @@ else libc_cv_uname_release=unknown fi fi - -echo "$ac_t""$libc_cv_uname_release" 1>&6 +echo "$as_me:$LINENO: result: $libc_cv_uname_release" >&5 +echo "${ECHO_T}$libc_cv_uname_release" >&6 uname_release="$libc_cv_uname_release" - echo $ac_n "checking OS version for uname""... $ac_c" 1>&6 -echo "configure:3933: 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 + echo "$as_me:$LINENO: checking OS version for uname" >&5 +echo $ECHO_N "checking OS version for uname... $ECHO_C" >&6 +if test "${libc_cv_uname_version+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else - kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'` + 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 + + kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'` if test -n "$kernel_version"; then libc_cv_uname_version="$kernel_version" else libc_cv_uname_version=unknown fi fi - -echo "$ac_t""$libc_cv_uname_version" 1>&6 +echo "$as_me:$LINENO: result: $libc_cv_uname_version" >&5 +echo "${ECHO_T}$libc_cv_uname_version" >&6 uname_version="$libc_cv_uname_version" config_uname=config-name.h:config-name.in @@ -3950,25 +6427,28 @@ else config_uname= fi -cat >> confdefs.h <<\EOF +cat >>confdefs.h <<\_ACEOF #define USE_IN_LIBIO 1 -EOF +_ACEOF # Test for old glibc 2.0.x headers so that they can be removed properly # Search only in includedir. -echo $ac_n "checking for old glibc 2.0.x headers""... $ac_c" 1>&6 -echo "configure:3962: checking for old glibc 2.0.x headers" >&5 +echo "$as_me:$LINENO: checking for old glibc 2.0.x headers" >&5 +echo $ECHO_N "checking for old glibc 2.0.x headers... $ECHO_C" >&6 if eval test -f "${includedir}/elfclass.h" -a -f "${includedir}/fcntlbits.h" then old_glibc_headers=yes else old_glibc_headers=no fi -echo "$ac_t""$old_glibc_headers" 1>&6 +echo "$as_me:$LINENO: result: $old_glibc_headers" >&5 +echo "${ECHO_T}$old_glibc_headers" >&6 if test ${old_glibc_headers} = yes; then - echo "configure: warning: *** During \"make install\" old headers from glibc 2.0.x will" 1>&2 - echo "configure: warning: *** be removed." 1>&2 + { echo "$as_me:$LINENO: WARNING: *** During \"make install\" old headers from glibc 2.0.x will" >&5 +echo "$as_me: WARNING: *** During \"make install\" old headers from glibc 2.0.x will" >&2;} + { echo "$as_me:$LINENO: WARNING: *** be removed." >&5 +echo "$as_me: WARNING: *** be removed." >&2;} fi @@ -3980,29 +6460,29 @@ fi - + if test $gnu_ld = yes; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_GNU_LD 1 -EOF +_ACEOF fi if test $gnu_as = yes; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_GNU_AS 1 -EOF +_ACEOF fi if test $elf = yes; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_ELF 1 -EOF +_ACEOF fi if test $xcoff = yes; then - cat >> confdefs.h <<\EOF + cat >>confdefs.h <<\_ACEOF #define HAVE_XCOFF 1 -EOF +_ACEOF fi @@ -4018,10 +6498,10 @@ if test $shared = default; then fi fi -echo $ac_n "checking whether -fPIC is default""... $ac_c" 1>&6 -echo "configure:4023: checking whether -fPIC is default" >&5 -if eval "test \"`echo '$''{'pic_default'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 +echo "$as_me:$LINENO: checking whether -fPIC is default" >&5 +echo $ECHO_N "checking whether -fPIC is default... $ECHO_C" >&6 +if test "${pic_default+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 else pic_default=yes cat > conftest.c <&5 1>& fi rm -f conftest.* fi - -echo "$ac_t""$pic_default" 1>&6 +echo "$as_me:$LINENO: result: $pic_default" >&5 +echo "${ECHO_T}$pic_default" >&6 @@ -4065,496 +6545,1257 @@ RELEASE=`sed -n -e 's/^#define RELEASE " -trap '' 1 2 15 -cat > confcache <<\EOF + ac_config_files="$ac_config_files config.make glibcbug ${config_makefile} ${config_uname}" + + ac_config_commands="$ac_config_commands default" + +cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure -# scripts and configure runs. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. # -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. # -EOF +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, don't put newlines in cache variables' values. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. -(set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote substitution - # turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - -e "s/'/'\\\\''/g" \ - -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' - ;; - esac >> confcache -if cmp -s $cache_file confcache; then - : -else +{ + (set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n \ + "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" + ;; + esac; +} | + sed ' + t clear + : clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + : end' >>confcache +if diff $cache_file confcache >/dev/null 2>&1; then :; else if test -w $cache_file; then - echo "updating cache $cache_file" - cat confcache > $cache_file + test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" + cat confcache >$cache_file else echo "not updating unwritable cache $cache_file" fi fi rm -f confcache -trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 - test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' -# Any assignment to VPATH causes Sun make to only execute -# the first set of double-colon rules, so remove it if not needed. -# If there is a colon in the path, we need to keep it. +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/; +s/:*\${srcdir}:*/:/; +s/:*@srcdir@:*/:/; +s/^\([^=]*=[ ]*\):*/\1/; +s/:*$//; +s/^[^=]*=[ ]*$//; +}' fi -trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 - DEFS=-DHAVE_CONFIG_H -# Without the "./", some shells look in PATH for config.status. -: ${CONFIG_STATUS=./config.status} +ac_libobjs= +ac_ltlibobjs= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_i=`echo "$ac_i" | + sed 's/\$U\././;s/\.o$//;s/\.obj$//'` + # 2. Add them. + ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs -echo creating $CONFIG_STATUS -rm -f $CONFIG_STATUS -cat > $CONFIG_STATUS <&5 +echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF +#! $SHELL +# Generated by $as_me. # Run this file to recreate the current configuration. -# This directory was configured as follows, -# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# -# $0 $ac_configure_args -# # Compiler output produced by configure, useful for debugging -# configure, is in ./config.log if it exists. +# configure, is in config.log if it exists. -ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" -for ac_option +debug=false +ac_cs_recheck=false +ac_cs_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' +elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then + set -o posix +fi + +# Support unset when possible. +if (FOO=FOO; unset FOO) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# Work around bugs in pre-3.0 UWIN ksh. +$as_unset ENV MAIL MAILPATH +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME do - case "\$ac_option" in - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" - exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; - -version | --version | --versio | --versi | --vers | --ver | --ve | --v) - echo "$CONFIG_STATUS generated by autoconf version 2.13" - exit 0 ;; - -help | --help | --hel | --he | --h) - echo "\$ac_cs_usage"; exit 0 ;; - *) echo "\$ac_cs_usage"; exit 1 ;; - esac + if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + $as_unset $as_var + fi done -ac_given_srcdir=$srcdir -ac_given_INSTALL="$INSTALL" +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi -trap 'rm -fr `echo "config.make glibcbug ${config_makefile} ${config_uname} config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 -EOF -cat >> $CONFIG_STATUS </dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi -# Protect against being on the right side of a sed subst in config.status. -sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; - s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF -$ac_vpsub -$extrasub -s%@SHELL@%$SHELL%g -s%@CFLAGS@%$CFLAGS%g -s%@CPPFLAGS@%$CPPFLAGS%g -s%@CXXFLAGS@%$CXXFLAGS%g -s%@FFLAGS@%$FFLAGS%g -s%@DEFS@%$DEFS%g -s%@LDFLAGS@%$LDFLAGS%g -s%@LIBS@%$LIBS%g -s%@exec_prefix@%$exec_prefix%g -s%@prefix@%$prefix%g -s%@program_transform_name@%$program_transform_name%g -s%@bindir@%$bindir%g -s%@sbindir@%$sbindir%g -s%@libexecdir@%$libexecdir%g -s%@datadir@%$datadir%g -s%@sysconfdir@%$sysconfdir%g -s%@sharedstatedir@%$sharedstatedir%g -s%@localstatedir@%$localstatedir%g -s%@libdir@%$libdir%g -s%@includedir@%$includedir%g -s%@oldincludedir@%$oldincludedir%g -s%@infodir@%$infodir%g -s%@mandir@%$mandir%g -s%@with_fp@%$with_fp%g -s%@with_cvs@%$with_cvs%g -s%@oldest_abi@%$oldest_abi%g -s%@subdirs@%$subdirs%g -s%@force_install@%$force_install%g -s%@all_warnings@%$all_warnings%g -s%@host@%$host%g -s%@host_alias@%$host_alias%g -s%@host_cpu@%$host_cpu%g -s%@host_vendor@%$host_vendor%g -s%@host_os@%$host_os%g -s%@base_machine@%$base_machine%g -s%@sysnames@%$sysnames%g -s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g -s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g -s%@INSTALL_DATA@%$INSTALL_DATA%g -s%@LN_S@%$LN_S%g -s%@PWD_P@%$PWD_P%g -s%@build@%$build%g -s%@build_alias@%$build_alias%g -s%@build_cpu@%$build_cpu%g -s%@build_vendor@%$build_vendor%g -s%@build_os@%$build_os%g -s%@CC@%$CC%g -s%@MAKE@%$MAKE%g -s%@MSGFMT@%$MSGFMT%g -s%@MAKEINFO@%$MAKEINFO%g -s%@SED@%$SED%g -s%@AUTOCONF@%$AUTOCONF%g -s%@cross_linkable@%$cross_linkable%g -s%@BUILD_CC@%$BUILD_CC%g -s%@cross_compiling@%$cross_compiling%g -s%@CPP@%$CPP%g -s%@AR@%$AR%g -s%@RANLIB@%$RANLIB%g -s%@MIG@%$MIG%g -s%@CCVERSION@%$CCVERSION%g -s%@SYSINCLUDES@%$SYSINCLUDES%g -s%@libc_cv_gcc_static_libgcc@%$libc_cv_gcc_static_libgcc%g -s%@BASH@%$BASH%g -s%@libc_cv_have_bash2@%$libc_cv_have_bash2%g -s%@KSH@%$KSH%g -s%@libc_cv_have_ksh@%$libc_cv_have_ksh%g -s%@AWK@%$AWK%g -s%@PERL@%$PERL%g -s%@INSTALL_INFO@%$INSTALL_INFO%g -s%@OLD_DEBIAN_INSTALL_INFO@%$OLD_DEBIAN_INSTALL_INFO%g -s%@BISON@%$BISON%g -s%@VERSIONING@%$VERSIONING%g -s%@libc_cv_asm_protected_directive@%$libc_cv_asm_protected_directive%g -s%@libc_cv_initfinit_array@%$libc_cv_initfinit_array%g -s%@libc_cv_z_nodelete@%$libc_cv_z_nodelete%g -s%@libc_cv_z_nodlopen@%$libc_cv_z_nodlopen%g -s%@libc_cv_z_initfirst@%$libc_cv_z_initfirst%g -s%@libc_cv_Bgroup@%$libc_cv_Bgroup%g -s%@libc_cv_z_combreloc@%$libc_cv_z_combreloc%g -s%@libc_cv_have_initfini@%$libc_cv_have_initfini%g -s%@no_whole_archive@%$no_whole_archive%g -s%@exceptions@%$exceptions%g -s%@LIBGD@%$LIBGD%g -s%@sizeof_long_double@%$sizeof_long_double%g -s%@libc_cv_gcc_unwind_find_fde@%$libc_cv_gcc_unwind_find_fde%g -s%@uname_sysname@%$uname_sysname%g -s%@uname_release@%$uname_release%g -s%@uname_version@%$uname_version%g -s%@old_glibc_headers@%$old_glibc_headers%g -s%@libc_cv_slibdir@%$libc_cv_slibdir%g -s%@libc_cv_localedir@%$libc_cv_localedir%g -s%@libc_cv_sysconfdir@%$libc_cv_sysconfdir%g -s%@libc_cv_rootsbindir@%$libc_cv_rootsbindir%g -s%@use_ldconfig@%$use_ldconfig%g -s%@ldd_rewrite_script@%$ldd_rewrite_script%g -s%@gnu_ld@%$gnu_ld%g -s%@gnu_as@%$gnu_as%g -s%@elf@%$elf%g -s%@xcoff@%$xcoff%g -s%@static@%$static%g -s%@shared@%$shared%g -s%@pic_default@%$pic_default%g -s%@profile@%$profile%g -s%@omitfp@%$omitfp%g -s%@bounded@%$bounded%g -s%@static_nss@%$static_nss%g -s%@nopic_initfini@%$nopic_initfini%g -s%@DEFINES@%$DEFINES%g -s%@linux_doors@%$linux_doors%g -s%@mach_interface_list@%$mach_interface_list%g -s%@VERSION@%$VERSION%g -s%@RELEASE@%$RELEASE%g -CEOF -EOF +# Name of the executable. +as_me=`$as_basename "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)$' \| \ + . : '\(.\)' 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } + /^X\/\(\/\/\)$/{ s//\1/; q; } + /^X\/\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` -cat >> $CONFIG_STATUS <<\EOF -# Split the substitutions into bite-sized pieces for seds with -# small command number limits, like on Digital OSF/1 and HP-UX. -ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. -ac_file=1 # Number of current file. -ac_beg=1 # First line for current file. -ac_end=$ac_max_sed_cmds # Line after last line for current file. -ac_more_lines=: -ac_sed_cmds="" -while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file +# PATH needs CR, and LINENO needs CR and PATH. +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' else - sed "${ac_end}q" conftest.subs > conftest.s$ac_file + PATH_SEPARATOR=: fi - if test ! -s conftest.s$ac_file; then - ac_more_lines=false - rm -f conftest.s$ac_file + rm -f conf$$.sh +fi + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" || { + # Find who we are. Look in the path if we contain no path at all + # relative or not. + case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done + + ;; + esac + # We did not find ourselves, most probably we were run as `sh COMMAND' + # in which case we are not to be found in the path. + if test "x$as_myself" = x; then + as_myself=$0 + fi + if test ! -f "$as_myself"; then + { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 +echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} + { (exit 1); exit 1; }; } + fi + case $CONFIG_SHELL in + '') + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for as_base in sh bash ksh sh5; do + case $as_dir in + /*) + if ("$as_dir/$as_base" -c ' + as_lineno_1=$LINENO + as_lineno_2=$LINENO + as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then + $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } + $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } + CONFIG_SHELL=$as_dir/$as_base + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$0" ${1+"$@"} + fi;; + esac + done +done +;; + esac + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line before each line; the second 'sed' does the real + # work. The second script uses 'N' to pair each line-number line + # with the numbered line, and appends trailing '-' during + # substitution so that $LINENO is not a special case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) + sed '=' <$as_myself | + sed ' + N + s,$,-, + : loop + s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, + t loop + s,-$,, + s,^['$as_cr_digits']*\n,, + ' >$as_me.lineno && + chmod +x $as_me.lineno || + { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 +echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensible to this). + . ./$as_me.lineno + # Exit status is that of the last command. + exit +} + + +case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in + *c*,-n*) ECHO_N= ECHO_C=' +' ECHO_T=' ' ;; + *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; + *) ECHO_N= ECHO_C='\c' ECHO_T= ;; +esac + +if expr a : '\(a\)' >/dev/null 2>&1; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + # We could just check for DJGPP; but this test a) works b) is more generic + # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). + if test -f conf$$.exe; then + # Don't use ln at all; we don't have any links + as_ln_s='cp -p' else - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f conftest.s$ac_file" - else - ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" - fi - ac_file=`expr $ac_file + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_cmds` + as_ln_s='ln -s' fi +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.file + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + as_mkdir_p=false +fi + +as_executable_p="test -f" + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" + + +# IFS +# We need space, tab and new line, in precisely that order. +as_nl=' +' +IFS=" $as_nl" + +# CDPATH. +$as_unset CDPATH + +exec 6>&1 + +# Open the log real soon, to keep \$[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. Logging --version etc. is OK. +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX +} >&5 +cat >&5 <<_CSEOF + +This file was extended by GNU C Library $as_me (see version.h), which was +generated by GNU Autoconf 2.57. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +_CSEOF +echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 +echo >&5 +_ACEOF + +# Files that config.status was made for. +if test -n "$ac_config_files"; then + echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_headers"; then + echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_links"; then + echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS +fi + +if test -n "$ac_config_commands"; then + echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS +fi + +cat >>$CONFIG_STATUS <<\_ACEOF + +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTIONS] [FILE]... + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to ." +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF +ac_cs_version="\\ +GNU C Library config.status (see version.h) +configured by $0, generated by GNU Autoconf 2.57, + with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" + +Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 +Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." +srcdir=$srcdir +INSTALL="$INSTALL" +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If no file are specified by the user, then we need to provide default +# value. By we need to know if files were specified by the user. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=*) + ac_option=`expr "x$1" : 'x\([^=]*\)='` + ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` + ac_shift=: + ;; + -*) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + *) # This is not an option, so the user has probably given explicit + # arguments. + ac_option=$1 + ac_need_defaults=false;; + esac + + case $ac_option in + # Handling of the options. +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --vers* | -V ) + echo "$ac_cs_version"; exit 0 ;; + --he | --h) + # Conflict between --help and --header + { { echo "$as_me:$LINENO: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + echo "$ac_cs_usage"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + CONFIG_FILES="$CONFIG_FILES $ac_optarg" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + ac_need_defaults=false;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&5 +echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2;} + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" ;; + + esac + shift done -if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" fi -EOF -cat >> $CONFIG_STATUS <>$CONFIG_STATUS <<_ACEOF +if \$ac_cs_recheck; then + echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 + exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion +fi -CONFIG_FILES=\${CONFIG_FILES-"config.make glibcbug ${config_makefile} ${config_uname}"} -EOF -cat >> $CONFIG_STATUS <<\EOF -for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF +# +# INIT-COMMANDS section. +# + +config_vars='$config_vars' + +_ACEOF + + + +cat >>$CONFIG_STATUS <<\_ACEOF +for ac_config_target in $ac_config_targets +do + case "$ac_config_target" in + # Handling of arguments. + "config.make" ) CONFIG_FILES="$CONFIG_FILES config.make" ;; + "glibcbug" ) CONFIG_FILES="$CONFIG_FILES glibcbug" ;; + "${config_makefile}" ) CONFIG_FILES="$CONFIG_FILES ${config_makefile}" ;; + "${config_uname}" ) CONFIG_FILES="$CONFIG_FILES ${config_uname}" ;; + "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; + "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; esac +done - # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" - # A "../" for each directory in $ac_dir_suffix. - ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` - else - ac_dir_suffix= ac_dots= +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason to put it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Create a temporary directory, and hook for its removal unless debugging. +$debug || +{ + trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} + +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./confstat$$-$RANDOM + (umask 077 && mkdir $tmp) +} || +{ + echo "$me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } +} + +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF + +# +# CONFIG_FILES section. +# + +# No need to generate the scripts if there are no CONFIG_FILES. +# This happens for instance when ./config.status config.h +if test -n "\$CONFIG_FILES"; then + # Protect against being on the right side of a sed subst in config.status. + sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; + s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF +s,@SHELL@,$SHELL,;t t +s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t +s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t +s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t +s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t +s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t +s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t +s,@exec_prefix@,$exec_prefix,;t t +s,@prefix@,$prefix,;t t +s,@program_transform_name@,$program_transform_name,;t t +s,@bindir@,$bindir,;t t +s,@sbindir@,$sbindir,;t t +s,@libexecdir@,$libexecdir,;t t +s,@datadir@,$datadir,;t t +s,@sysconfdir@,$sysconfdir,;t t +s,@sharedstatedir@,$sharedstatedir,;t t +s,@localstatedir@,$localstatedir,;t t +s,@libdir@,$libdir,;t t +s,@includedir@,$includedir,;t t +s,@oldincludedir@,$oldincludedir,;t t +s,@infodir@,$infodir,;t t +s,@mandir@,$mandir,;t t +s,@build_alias@,$build_alias,;t t +s,@host_alias@,$host_alias,;t t +s,@target_alias@,$target_alias,;t t +s,@DEFS@,$DEFS,;t t +s,@ECHO_C@,$ECHO_C,;t t +s,@ECHO_N@,$ECHO_N,;t t +s,@ECHO_T@,$ECHO_T,;t t +s,@LIBS@,$LIBS,;t t +s,@with_fp@,$with_fp,;t t +s,@with_cvs@,$with_cvs,;t t +s,@oldest_abi@,$oldest_abi,;t t +s,@subdirs@,$subdirs,;t t +s,@force_install@,$force_install,;t t +s,@all_warnings@,$all_warnings,;t t +s,@build@,$build,;t t +s,@build_cpu@,$build_cpu,;t t +s,@build_vendor@,$build_vendor,;t t +s,@build_os@,$build_os,;t t +s,@host@,$host,;t t +s,@host_cpu@,$host_cpu,;t t +s,@host_vendor@,$host_vendor,;t t +s,@host_os@,$host_os,;t t +s,@base_machine@,$base_machine,;t t +s,@sysnames@,$sysnames,;t t +s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t +s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t +s,@INSTALL_DATA@,$INSTALL_DATA,;t t +s,@LN_S@,$LN_S,;t t +s,@PWD_P@,$PWD_P,;t t +s,@CC@,$CC,;t t +s,@MAKE@,$MAKE,;t t +s,@MSGFMT@,$MSGFMT,;t t +s,@MAKEINFO@,$MAKEINFO,;t t +s,@SED@,$SED,;t t +s,@AUTOCONF@,$AUTOCONF,;t t +s,@CFLAGS@,$CFLAGS,;t t +s,@LDFLAGS@,$LDFLAGS,;t t +s,@CPPFLAGS@,$CPPFLAGS,;t t +s,@ac_ct_CC@,$ac_ct_CC,;t t +s,@OBJEXT@,$OBJEXT,;t t +s,@BUILD_CC@,$BUILD_CC,;t t +s,@cross_compiling@,$cross_compiling,;t t +s,@CPP@,$CPP,;t t +s,@AR@,$AR,;t t +s,@OBJDUMP@,$OBJDUMP,;t t +s,@RANLIB@,$RANLIB,;t t +s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t +s,@MIG@,$MIG,;t t +s,@AS@,$AS,;t t +s,@LD@,$LD,;t t +s,@CCVERSION@,$CCVERSION,;t t +s,@SYSINCLUDES@,$SYSINCLUDES,;t t +s,@libc_cv_gcc_static_libgcc@,$libc_cv_gcc_static_libgcc,;t t +s,@BASH@,$BASH,;t t +s,@libc_cv_have_bash2@,$libc_cv_have_bash2,;t t +s,@KSH@,$KSH,;t t +s,@libc_cv_have_ksh@,$libc_cv_have_ksh,;t t +s,@AWK@,$AWK,;t t +s,@PERL@,$PERL,;t t +s,@INSTALL_INFO@,$INSTALL_INFO,;t t +s,@OLD_DEBIAN_INSTALL_INFO@,$OLD_DEBIAN_INSTALL_INFO,;t t +s,@BISON@,$BISON,;t t +s,@VERSIONING@,$VERSIONING,;t t +s,@libc_cv_asm_protected_directive@,$libc_cv_asm_protected_directive,;t t +s,@libc_cv_initfinit_array@,$libc_cv_initfinit_array,;t t +s,@libc_cv_z_nodelete@,$libc_cv_z_nodelete,;t t +s,@libc_cv_z_nodlopen@,$libc_cv_z_nodlopen,;t t +s,@libc_cv_z_initfirst@,$libc_cv_z_initfirst,;t t +s,@libc_cv_Bgroup@,$libc_cv_Bgroup,;t t +s,@libc_cv_z_combreloc@,$libc_cv_z_combreloc,;t t +s,@libc_cv_have_initfini@,$libc_cv_have_initfini,;t t +s,@no_whole_archive@,$no_whole_archive,;t t +s,@exceptions@,$exceptions,;t t +s,@LIBGD@,$LIBGD,;t t +s,@EGREP@,$EGREP,;t t +s,@sizeof_long_double@,$sizeof_long_double,;t t +s,@libc_cv_gcc_unwind_find_fde@,$libc_cv_gcc_unwind_find_fde,;t t +s,@uname_sysname@,$uname_sysname,;t t +s,@uname_release@,$uname_release,;t t +s,@uname_version@,$uname_version,;t t +s,@old_glibc_headers@,$old_glibc_headers,;t t +s,@libc_cv_slibdir@,$libc_cv_slibdir,;t t +s,@libc_cv_localedir@,$libc_cv_localedir,;t t +s,@libc_cv_sysconfdir@,$libc_cv_sysconfdir,;t t +s,@libc_cv_rootsbindir@,$libc_cv_rootsbindir,;t t +s,@use_ldconfig@,$use_ldconfig,;t t +s,@ldd_rewrite_script@,$ldd_rewrite_script,;t t +s,@gnu_ld@,$gnu_ld,;t t +s,@gnu_as@,$gnu_as,;t t +s,@elf@,$elf,;t t +s,@xcoff@,$xcoff,;t t +s,@static@,$static,;t t +s,@shared@,$shared,;t t +s,@pic_default@,$pic_default,;t t +s,@profile@,$profile,;t t +s,@omitfp@,$omitfp,;t t +s,@bounded@,$bounded,;t t +s,@static_nss@,$static_nss,;t t +s,@nopic_initfini@,$nopic_initfini,;t t +s,@DEFINES@,$DEFINES,;t t +s,@linux_doors@,$linux_doors,;t t +s,@mach_interface_list@,$mach_interface_list,;t t +s,@VERSION@,$VERSION,;t t +s,@RELEASE@,$RELEASE,;t t +s,@LIBOBJS@,$LIBOBJS,;t t +s,@LTLIBOBJS@,$LTLIBOBJS,;t t +CEOF + +_ACEOF + + cat >>$CONFIG_STATUS <<\_ACEOF + # Split the substitutions into bite-sized pieces for seds with + # small command number limits, like on Digital OSF/1 and HP-UX. + ac_max_sed_lines=48 + ac_sed_frag=1 # Number of current file. + ac_beg=1 # First line for current file. + ac_end=$ac_max_sed_lines # Line after last line for current file. + ac_more_lines=: + ac_sed_cmds= + while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + else + sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag + fi + if test ! -s $tmp/subs.frag; then + ac_more_lines=false + else + # The purpose of the label and of the branching condition is to + # speed up the sed processing (if there are no `@' at all, there + # is no need to browse any of the substitutions). + # These are the two extra sed commands mentioned above. + (echo ':t + /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" + else + ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" + fi + ac_sed_frag=`expr $ac_sed_frag + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_lines` + fi + done + if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat fi +fi # test -n "$CONFIG_FILES" - case "$ac_given_srcdir" in - .) srcdir=. - if test -z "$ac_dots"; then top_srcdir=. - else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; - /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; - *) # Relative path. - srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" - top_srcdir="$ac_dots$ac_given_srcdir" ;; +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case $ac_file in + - | *:- | *:-:* ) # input from stdin + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; esac - case "$ac_given_INSTALL" in - [/$]*) INSTALL="$ac_given_INSTALL" ;; - *) INSTALL="$ac_dots$ac_given_INSTALL" ;; - esac + # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. + ac_dir=`(dirname "$ac_file") 2>/dev/null || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dir" + else + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } - echo creating "$ac_file" - rm -f "$ac_file" - configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." - case "$ac_file" in - *Makefile*) ac_comsub="1i\\ -# $configure_input" ;; - *) ac_comsub= ;; + ac_builddir=. + +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac +# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +# absolute. +ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` + + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` - sed -e "$ac_comsub -s%@configure_input@%$configure_input%g -s%@srcdir@%$srcdir%g -s%@top_srcdir@%$top_srcdir%g -s%@INSTALL@%$INSTALL%g -" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file -fi; done -rm -f conftest.s* + if test x"$ac_file" != x-; then + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + rm -f "$ac_file" + fi + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + if test x"$ac_file" = x-; then + configure_input= + else + configure_input="$ac_file. " + fi + configure_input=$configure_input"Generated from `echo $ac_file_in | + sed 's,.*/,,'` by configure." + + # First look for the input files in the build tree, otherwise in the + # src tree. + ac_file_inputs=`IFS=: + for f in $ac_file_in; do + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + echo $f;; + *) # Relative + if test -f "$f"; then + # Build tree + echo $f + elif test -f "$srcdir/$f"; then + # Source tree + echo $srcdir/$f + else + # /dev/null tree + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; + esac + done` || { (exit 1); exit 1; } +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF + sed "$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s,@configure_input@,$configure_input,;t t +s,@srcdir@,$ac_srcdir,;t t +s,@abs_srcdir@,$ac_abs_srcdir,;t t +s,@top_srcdir@,$ac_top_srcdir,;t t +s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t +s,@builddir@,$ac_builddir,;t t +s,@abs_builddir@,$ac_abs_builddir,;t t +s,@top_builddir@,$ac_top_builddir,;t t +s,@abs_top_builddir@,$ac_abs_top_builddir,;t t +s,@INSTALL@,$ac_INSTALL,;t t +" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out + rm -f $tmp/stdin + if test x"$ac_file" != x-; then + mv $tmp/out $ac_file + else + cat $tmp/out + rm -f $tmp/out + fi + +done +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF + +# +# CONFIG_HEADER section. +# # These sed commands are passed to sed as "A NAME B NAME C VALUE D", where # NAME is the cpp macro being defined and VALUE is the value it is being given. # # ac_d sets the value in "#define NAME VALUE" lines. -ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)' -ac_dB='\([ ][ ]*\)[^ ]*%\1#\2' -ac_dC='\3' -ac_dD='%g' -# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE". -ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_uB='\([ ]\)%\1#\2define\3' +ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' +ac_dB='[ ].*$,\1#\2' +ac_dC=' ' +ac_dD=',;t' +# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". +ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +ac_uB='$,\1#\2define\3' ac_uC=' ' -ac_uD='\4%g' -# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE". -ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_eB='$%\1#\2define\3' -ac_eC=' ' -ac_eD='%g' +ac_uD=',;t' -if test "${CONFIG_HEADERS+set}" != set; then -EOF -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF -fi -for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then +for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case "$ac_file" in - *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` - ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - *) ac_file_in="${ac_file}.in" ;; + case $ac_file in + - | *:- | *:-:* ) # input from stdin + cat >$tmp/stdin + ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; + * ) ac_file_in=$ac_file.in ;; esac - echo creating $ac_file + test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} - rm -f conftest.frag conftest.in conftest.out - ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` - cat $ac_file_inputs > conftest.in + # First look for the input files in the build tree, otherwise in the + # src tree. + ac_file_inputs=`IFS=: + for f in $ac_file_in; do + case $f in + -) echo $tmp/stdin ;; + [\\/$]*) + # Absolute (can't be DOS-style, as IFS=:) + test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + echo $f;; + *) # Relative + if test -f "$f"; then + # Build tree + echo $f + elif test -f "$srcdir/$f"; then + # Source tree + echo $srcdir/$f + else + # /dev/null tree + { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 +echo "$as_me: error: cannot find input file: $f" >&2;} + { (exit 1); exit 1; }; } + fi;; + esac + done` || { (exit 1); exit 1; } + # Remove the trailing spaces. + sed 's/[ ]*$//' $ac_file_inputs >$tmp/in -EOF +_ACEOF -# Transform confdefs.h into a sed script conftest.vals that substitutes -# the proper values into config.h.in to produce config.h. And first: -# Protect against being on the right side of a sed subst in config.status. -# Protect against being in an unquoted here document in config.status. -rm -f conftest.vals -cat > conftest.hdr <<\EOF -s/[\\&%]/\\&/g -s%[\\$`]%\\&%g -s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp -s%ac_d%ac_u%gp -s%ac_u%ac_e%gp -EOF -sed -n -f conftest.hdr confdefs.h > conftest.vals -rm -f conftest.hdr +# Transform confdefs.h into two sed scripts, `conftest.defines' and +# `conftest.undefs', that substitutes the proper values into +# config.h.in to produce config.h. The first handles `#define' +# templates, and the second `#undef' templates. +# And first: Protect against being on the right side of a sed subst in +# config.status. Protect against being in an unquoted here document +# in config.status. +rm -f conftest.defines conftest.undefs +# Using a here document instead of a string reduces the quoting nightmare. +# Putting comments in sed scripts is not portable. +# +# `end' is used to avoid that the second main sed command (meant for +# 0-ary CPP macros) applies to n-ary macro definitions. +# See the Autoconf documentation for `clear'. +cat >confdef2sed.sed <<\_ACEOF +s/[\\&,]/\\&/g +s,[\\$`],\\&,g +t clear +: clear +s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp +t end +s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp +: end +_ACEOF +# If some macros were called several times there might be several times +# the same #defines, which is useless. Nevertheless, we may not want to +# sort them, since we want the *last* AC-DEFINE to be honored. +uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines +sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs +rm -f confdef2sed.sed # This sed command replaces #undef with comments. This is necessary, for # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. -cat >> conftest.vals <<\EOF -s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */% -EOF +cat >>conftest.undefs <<\_ACEOF +s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, +_ACEOF -# Break up conftest.vals because some shells have a limit on -# the size of here documents, and old seds have small limits too. +# Break up conftest.defines because some shells have a limit on the size +# of here documents, and old seds have small limits too (100 cmds). +echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS +echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS +echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS +echo ' :' >>$CONFIG_STATUS +rm -f conftest.tail +while grep . conftest.defines >/dev/null +do + # Write a limited-size here document to $tmp/defines.sed. + echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS + # Speed up: don't consider the non `#define' lines. + echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS + # Work around the forget-to-reset-the-flag bug. + echo 't clr' >>$CONFIG_STATUS + echo ': clr' >>$CONFIG_STATUS + sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS + echo 'CEOF + sed -f $tmp/defines.sed $tmp/in >$tmp/out + rm -f $tmp/in + mv $tmp/out $tmp/in +' >>$CONFIG_STATUS + sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail + rm -f conftest.defines + mv conftest.tail conftest.defines +done +rm -f conftest.defines +echo ' fi # grep' >>$CONFIG_STATUS +echo >>$CONFIG_STATUS +# Break up conftest.undefs because some shells have a limit on the size +# of here documents, and old seds have small limits too (100 cmds). +echo ' # Handle all the #undef templates' >>$CONFIG_STATUS rm -f conftest.tail -while : +while grep . conftest.undefs >/dev/null do - ac_lines=`grep -c . conftest.vals` - # grep -c gives empty output for an empty file on some AIX systems. - if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi - # Write a limited-size here document to conftest.frag. - echo ' cat > conftest.frag <> $CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS + # Write a limited-size here document to $tmp/undefs.sed. + echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS + # Speed up: don't consider the non `#undef' + echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS + # Work around the forget-to-reset-the-flag bug. + echo 't clr' >>$CONFIG_STATUS + echo ': clr' >>$CONFIG_STATUS + sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS echo 'CEOF - sed -f conftest.frag conftest.in > conftest.out - rm -f conftest.in - mv conftest.out conftest.in -' >> $CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail - rm -f conftest.vals - mv conftest.tail conftest.vals + sed -f $tmp/undefs.sed $tmp/in >$tmp/out + rm -f $tmp/in + mv $tmp/out $tmp/in +' >>$CONFIG_STATUS + sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail + rm -f conftest.undefs + mv conftest.tail conftest.undefs done -rm -f conftest.vals +rm -f conftest.undefs -cat >> $CONFIG_STATUS <<\EOF - rm -f conftest.frag conftest.h - echo "/* $ac_file. Generated automatically by configure. */" > conftest.h - cat conftest.in >> conftest.h - rm -f conftest.in - if cmp -s $ac_file conftest.h 2>/dev/null; then - echo "$ac_file is unchanged" - rm -f conftest.h +cat >>$CONFIG_STATUS <<\_ACEOF + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + if test x"$ac_file" = x-; then + echo "/* Generated by configure. */" >$tmp/config.h else - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` - if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - # The file is in a subdirectory. - test ! -d "$ac_dir" && mkdir "$ac_dir" - fi - rm -f $ac_file - mv conftest.h $ac_file - fi -fi; done - -EOF - -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF -srcdir=$ac_given_srcdir -while test -n "$ac_sources"; do - set $ac_dests; ac_dest=$1; shift; ac_dests=$* - set $ac_sources; ac_source=$1; shift; ac_sources=$* - - echo "linking $srcdir/$ac_source to $ac_dest" - - if test ! -r $srcdir/$ac_source; then - { echo "configure: error: $srcdir/$ac_source: File not found" 1>&2; exit 1; } + echo "/* $ac_file. Generated by configure. */" >$tmp/config.h fi - rm -f $ac_dest - - # Make relative symlinks. - # Remove last slash and all that follows it. Not all systems have dirname. - ac_dest_dir=`echo $ac_dest|sed 's%/[^/][^/]*$%%'` - if test "$ac_dest_dir" != "$ac_dest" && test "$ac_dest_dir" != .; then - # The dest file is in a subdirectory. - test ! -d "$ac_dest_dir" && mkdir "$ac_dest_dir" - ac_dest_dir_suffix="/`echo $ac_dest_dir|sed 's%^\./%%'`" - # A "../" for each directory in $ac_dest_dir_suffix. - ac_dots=`echo $ac_dest_dir_suffix|sed 's%/[^/]*%../%g'` + cat $tmp/in >>$tmp/config.h + rm -f $tmp/in + if test x"$ac_file" != x-; then + if diff $ac_file $tmp/config.h >/dev/null 2>&1; then + { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 +echo "$as_me: $ac_file is unchanged" >&6;} + else + ac_dir=`(dirname "$ac_file") 2>/dev/null || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + { if $as_mkdir_p; then + mkdir -p "$ac_dir" else - ac_dest_dir_suffix= ac_dots= - fi - - case "$srcdir" in - [/$]*) ac_rel_source="$srcdir/$ac_source" ;; - *) ac_rel_source="$ac_dots$srcdir/$ac_source" ;; - esac + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } - # Make a symlink if possible; otherwise try a hard link. - if ln -s $ac_rel_source $ac_dest 2>/dev/null || - ln $srcdir/$ac_source $ac_dest; then : + rm -f $ac_file + mv $tmp/config.h $ac_file + fi else - { echo "configure: error: can not link $ac_dest to $srcdir/$ac_source" 1>&2; exit 1; } + cat $tmp/config.h + rm -f $tmp/config.h fi done -EOF -cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF + +# +# CONFIG_COMMANDS section. +# +for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue + ac_dest=`echo "$ac_file" | sed 's,:.*,,'` + ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` + ac_dir=`(dirname "$ac_dest") 2>/dev/null || +$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_dest" : 'X\(//\)[^/]' \| \ + X"$ac_dest" : 'X\(//\)$' \| \ + X"$ac_dest" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$ac_dest" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + ac_builddir=. +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi + +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac +# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +# absolute. +ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` + + + { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 +echo "$as_me: executing $ac_dest commands" >&6;} + case $ac_dest in + default ) case $CONFIG_FILES in *config.make*) echo "$config_vars" >> config.make;; esac -test -d bits || mkdir bits -exit 0 -EOF +test -d bits || mkdir bits ;; + esac +done +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF + +{ (exit 0); exit 0; } +_ACEOF chmod +x $CONFIG_STATUS -rm -fr confdefs* $ac_clean_files -test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 +ac_clean_files=$ac_clean_files_save + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || { (exit 1); exit 1; } +fi +# +# CONFIG_SUBDIRS section. +# if test "$no_recursion" != yes; then # Remove --cache-file and --srcdir arguments so they do not pile up. @@ -4565,87 +7806,131 @@ if test "$no_recursion" != yes; then ac_prev= continue fi - case "$ac_arg" in + case $ac_arg in -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \ + | --c=*) + ;; + --config-cache | -C) ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) ;; + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + ;; *) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;; esac done - for ac_config_dir in $add_ons; do + # Always prepend --prefix to ensure using the same prefix + # in subdir configurations. + ac_sub_configure_args="--prefix=$prefix $ac_sub_configure_args" + + ac_popdir=`pwd` + for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue # Do not complain, so a configure script can configure whichever # parts of a large source tree are present. - if test ! -d $srcdir/$ac_config_dir; then - continue - fi + test -d $srcdir/$ac_dir || continue - echo configuring in $ac_config_dir + { echo "$as_me:$LINENO: configuring in $ac_dir" >&5 +echo "$as_me: configuring in $ac_dir" >&6;} + { if $as_mkdir_p; then + mkdir -p "$ac_dir" + else + as_dir="$ac_dir" + as_dirs= + while test ! -d "$as_dir"; do + as_dirs="$as_dir $as_dirs" + as_dir=`(dirname "$as_dir") 2>/dev/null || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| \ + . : '\(.\)' 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } + /^X\(\/\/\)[^/].*/{ s//\1/; q; } + /^X\(\/\/\)$/{ s//\1/; q; } + /^X\(\/\).*/{ s//\1/; q; } + s/.*/./; q'` + done + test ! -n "$as_dirs" || mkdir $as_dirs + fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 +echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} + { (exit 1); exit 1; }; }; } - case "$srcdir" in - .) ;; - *) - if test -d ./$ac_config_dir || mkdir ./$ac_config_dir; then :; - else - { echo "configure: error: can not create `pwd`/$ac_config_dir" 1>&2; exit 1; } - fi - ;; - esac + ac_builddir=. - ac_popdir=`pwd` - cd $ac_config_dir +if test "$ac_dir" != .; then + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A "../" for each directory in $ac_dir_suffix. + ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` +else + ac_dir_suffix= ac_top_builddir= +fi - # A "../" for each directory in /$ac_config_dir. - ac_dots=`echo $ac_config_dir|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'` +case $srcdir in + .) # No --srcdir option. We are building in place. + ac_srcdir=. + if test -z "$ac_top_builddir"; then + ac_top_srcdir=. + else + ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` + fi ;; + [\\/]* | ?:[\\/]* ) # Absolute path. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir ;; + *) # Relative path. + ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_builddir$srcdir ;; +esac +# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be +# absolute. +ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` +ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd` +ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` +ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` - case "$srcdir" in - .) # No --srcdir option. We are building in place. - ac_sub_srcdir=$srcdir ;; - /*) # Absolute path. - ac_sub_srcdir=$srcdir/$ac_config_dir ;; - *) # Relative path. - ac_sub_srcdir=$ac_dots$srcdir/$ac_config_dir ;; - esac + + cd $ac_dir # Check for guested configure; otherwise get Cygnus style configure. - if test -f $ac_sub_srcdir/configure; then - ac_sub_configure=$ac_sub_srcdir/configure - elif test -f $ac_sub_srcdir/configure.in; then + if test -f $ac_srcdir/configure.gnu; then + ac_sub_configure="$SHELL '$ac_srcdir/configure.gnu'" + elif test -f $ac_srcdir/configure; then + ac_sub_configure="$SHELL '$ac_srcdir/configure'" + elif test -f $ac_srcdir/configure.in; then ac_sub_configure=$ac_configure else - echo "configure: warning: no configuration information is in $ac_config_dir" 1>&2 + { echo "$as_me:$LINENO: WARNING: no configuration information is in $ac_dir" >&5 +echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;} ac_sub_configure= fi # The recursion is here. if test -n "$ac_sub_configure"; then - # Make the cache file name correct relative to the subdirectory. - case "$cache_file" in - /*) ac_sub_cache_file=$cache_file ;; + case $cache_file in + [\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;; *) # Relative path. - ac_sub_cache_file="$ac_dots$cache_file" ;; + ac_sub_cache_file=$ac_top_builddir$cache_file ;; esac - case "$ac_given_INSTALL" in - [/$]*) INSTALL="$ac_given_INSTALL" ;; - *) INSTALL="$ac_dots$ac_given_INSTALL" ;; - esac - echo "running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir" + { echo "$as_me:$LINENO: running $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5 +echo "$as_me: running $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;} # The eval makes quoting arguments work. - if eval ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir - then : - else - { echo "configure: error: $ac_sub_configure failed for $ac_config_dir" 1>&2; exit 1; } - fi + eval $ac_sub_configure $ac_sub_configure_args \ + --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir || + { { echo "$as_me:$LINENO: error: $ac_sub_configure failed for $ac_dir" >&5 +echo "$as_me: error: $ac_sub_configure failed for $ac_dir" >&2;} + { (exit 1); exit 1; }; } fi cd $ac_popdir diff -durpN glibc-2.3.1/configure.in glibc-2.3.2/configure.in --- glibc-2.3.1/configure.in 2002-10-08 11:09:38.000000000 -0700 +++ glibc-2.3.2/configure.in 2003-02-25 16:46:31.000000000 -0800 @@ -1,27 +1,34 @@ dnl Process this file with autoconf to produce a configure script. AC_REVISION([$CVSid$]) -AC_PREREQ(2.13)dnl dnl Minimum Autoconf version required. -AC_INIT(include/features.h) -AC_CONFIG_HEADER(config.h) -AC_CONFIG_AUX_DIR(scripts) +AC_PREREQ(2.53)dnl dnl Minimum Autoconf version required. +AC_INIT([GNU C Library], [(see version.h)], [glibc]) +AC_CONFIG_SRCDIR([include/features.h]) +AC_CONFIG_HEADERS([config.h]) +AC_CONFIG_AUX_DIR([scripts]) + +if test "`cd $srcdir; /bin/pwd`" = "`/bin/pwd`"; then + AC_MSG_ERROR([you must configure in a separate build directory]) +fi # This will get text that should go into config.make. config_vars= # Check for a --with-gmp argument and set gmp-srcdir in config.make. -AC_ARG_WITH(gmp, dnl - --with-gmp=DIRECTORY find GMP source code in DIRECTORY (not needed), - [dnl +AC_ARG_WITH([gmp], + AC_HELP_STRING([--with-gmp=DIRECTORY], + [find GMP source code in DIRECTORY (not needed)]), + [ case "$with_gmp" in -yes) AC_MSG_ERROR(--with-gmp requires an argument; use --with-gmp=DIRECTORY) ;; +yes) AC_MSG_ERROR([--with-gmp requires an argument; use --with-gmp=DIRECTORY]) ;; ''|no) ;; *) config_vars="$config_vars gmp-srcdir = $withval" ;; esac ]) # Check for a --with-gd argument and set libgd-LDFLAGS in config.make. -AC_ARG_WITH(gd, dnl - --with-gd=DIR find libgd include dir and library with prefix DIR, +AC_ARG_WITH([gd], + AC_HELP_STRING([--with-gd=DIR], + [find libgd include dir and library with prefix DIR]), [dnl case "$with_gd" in yes|''|no) ;; @@ -29,16 +36,18 @@ yes|''|no) ;; libgd_ldflags="-L$withval/lib" ;; esac ]) -AC_ARG_WITH(gd-include, dnl - --with-gd-include=DIR find libgd include files in DIR, +AC_ARG_WITH([gd-include], + AC_HELP_STRING([--with-gd-include=DIR], + [find libgd include files in DIR]), [dnl case "$with_gd_include" in ''|no) ;; *) libgd_include="-I$withval" ;; esac ]) -AC_ARG_WITH(gd-lib, dnl - --with-gd-lib=DIR find libgd library files in DIR, +AC_ARG_WITH([gd-lib], + AC_HELP_STRING([--with-gd-lib=DIR], + [find libgd library files in DIR]), [dnl case "$with_gd_lib" in ''|no) ;; @@ -56,22 +65,32 @@ libgd-LDFLAGS = $libgd_ldflags" fi dnl Arguments to specify presence of other packages/features. -AC_ARG_WITH(fp, dnl -[ --with-fp if using floating-point hardware [default=yes]], - with_fp=$withval, with_fp=yes) +AC_ARG_WITH([fp], + AC_HELP_STRING([--with-fp], + [if using floating-point hardware @<:@default=yes@:>@]), + [with_fp=$withval], + [with_fp=yes]) AC_SUBST(with_fp) -AC_ARG_WITH(binutils, dnl - --with-binutils=PATH specify location of binutils (as and ld), - path_binutils=$withval, path_binutils='') -AC_ARG_WITH(elf, dnl - --with-elf if using the ELF object format, - elf=$withval, elf=no) -AC_ARG_WITH(xcoff, dnl - --with-xcoff if using the XCOFF object format, - xcoff=$withval, xcoff=no) -AC_ARG_WITH(cvs, dnl -[ --without-cvs if CVS should not be used], - with_cvs=$withval, with_cvs=yes) +AC_ARG_WITH([binutils], + AC_HELP_STRING([--with-binutils=PATH], + [specify location of binutils (as and ld)]), + [path_binutils=$withval], + [path_binutils='']) +AC_ARG_WITH([elf], + AC_HELP_STRING([--with-elf], + [if using the ELF object format]), + [elf=$withval], + [elf=no]) +AC_ARG_WITH([xcoff], + AC_HELP_STRING([--with-xcoff], + [if using the XCOFF object format]), + [xcoff=$withval], + [xcoff=no]) +AC_ARG_WITH([cvs], + AC_HELP_STRING([--without-cvs], + [if CVS should not be used]), + [with_cvs=$withval], + [with_cvs=yes]) if test "$with_cvs" = yes; then if test -d $srcdir/CVS && grep :pserver: $srcdir/CVS/Root > /dev/null then @@ -80,46 +99,61 @@ if test "$with_cvs" = yes; then fi AC_SUBST(with_cvs) -AC_ARG_WITH(headers, dnl -[ --with-headers=PATH location of system headers to use - [e.g. /usr/src/linux/include] - [default=compiler default]], - sysheaders=$withval, sysheaders='') +AC_ARG_WITH([headers], + AC_HELP_STRING([--with-headers=PATH], + [location of system headers to use + (for example /usr/src/linux/include) + @<:@default=compiler default@:>@]), + [sysheaders=$withval], + [sysheaders='']) -AC_ARG_ENABLE(sanity-checks, dnl -[ --disable-sanity-checks really do not use threads (should not be used - except in special situations) [default=yes]], - enable_sanity=$enableval, enable_sanity=yes) +AC_ARG_ENABLE([sanity-checks], + AC_HELP_STRING([--disable-sanity-checks], + [really do not use threads (should not be used except in special situations) @<:@default=yes@:>@]), + [enable_sanity=$enableval], + [enable_sanity=yes]) dnl Arguments to enable or disable building the static, shared, profiled, dnl and -fomit-frame-pointer libraries. dnl I've disabled this for now since we cannot build glibc without static dnl libraries built in the moment. -dnl AC_ARG_ENABLE(static, dnl -dnl [ --enable-static build static library [default=yes]], -dnl static=$enableval, static=yes) +dnl AC_ARG_ENABLE([static], +dnl AC_HELP_STRING([--enable-static], +dnl [build static library @<:@default=yes@:>@]), +dnl [static=$enableval], +dnl [static=yes]) static=yes -AC_ARG_ENABLE(shared, dnl -[ --enable-shared build shared library [default=yes if GNU ld & ELF]], - shared=$enableval, shared=default) -AC_ARG_ENABLE(profile, dnl -[ --enable-profile build profiled library [default=yes]], - profile=$enableval, profile=yes) -AC_ARG_ENABLE(omitfp, dnl -[ --enable-omitfp build undebuggable optimized library [default=no]], - omitfp=$enableval, omitfp=no) -AC_ARG_ENABLE(bounded, dnl -[ --enable-bounded build with runtime bounds checking [default=no]], - bounded=$enableval, bounded=no) -AC_ARG_ENABLE(versioning, dnl -[ --disable-versioning do not include versioning information in the - library objects [default=yes if supported]], - enable_versioning=$enableval, enable_versioning=yes) +AC_ARG_ENABLE([shared], + AC_HELP_STRING([--enable-shared], + [build shared library @<:@default=yes if GNU ld & ELF@:>@]), + [shared=$enableval], + [shared=default]) +AC_ARG_ENABLE([profile], + AC_HELP_STRING([--enable-profile], + [build profiled library @<:@default=yes@:>@]), + [profile=$enableval], + [profile=yes]) +AC_ARG_ENABLE([omitfp], + AC_HELP_STRING([--enable-omitfp], + [build undebuggable optimized library @<:@default=no@:>@]), + [omitfp=$enableval], + [omitfp=no]) +AC_ARG_ENABLE([bounded], + AC_HELP_STRING([--enable-bounded], + [build with runtime bounds checking @<:@default=no@:>@]), + [bounded=$enableval], + [bounded=no]) +AC_ARG_ENABLE([versioning], + AC_HELP_STRING([--disable-versioning], + [do not include versioning information in the library objects @<:@default=yes if supported@:>@]), + [enable_versioning=$enableval], + [enable_versioning=yes]) -AC_ARG_ENABLE(oldest-abi, dnl -[ --enable-oldest-abi=ABI configure the oldest ABI supported [e.g. 2.2] - [default=glibc default]], - oldest_abi=$enableval, oldest_abi=no) +AC_ARG_ENABLE([oldest-abi], + AC_HELP_STRING([--enable-oldest-abi=ABI], + [configure the oldest ABI supported @<:@e.g. 2.2@:>@ @<:@default=glibc default@:>@]), + [oldest_abi=$enableval], + [oldest_abi=no]) if test "$oldest_abi" = yes || test "$oldest_abi" = no; then oldest_abi=default else @@ -128,10 +162,9 @@ fi AC_SUBST(oldest_abi) dnl Generic infrastructure for drop-in additions to libc. -AC_ARG_ENABLE(add-ons, dnl -[ --enable-add-ons[=DIR1,DIR2]... - configure and build add-ons in DIR1,DIR2,... - search for add-ons if no parameter given], +AC_ARG_ENABLE([add-ons], + AC_HELP_STRING([--enable-add-ons@<:@=DIRS...@:>@], + [configure and build add-ons in DIR1,DIR2,... search for add-ons if no parameter given]), [case "$enableval" in yes) add_ons=`cd $srcdir && echo */configure | sed -e 's!/configure!!g'` test "$add_ons" = "*" && add_ons= ;; @@ -141,18 +174,28 @@ AC_ARG_ENABLE(add-ons, dnl dnl Let the user avoid using TLS. Don't know why but... dnl XXX For now we disable support by default. -AC_ARG_WITH(tls, dnl -[ --with-tls enable support for TLS], - usetls=$withval, usetls=no) +AC_ARG_WITH([tls], + AC_HELP_STRING([--with-tls], + [enable support for TLS]), + [usetls=$withval], + [usetls=no]) -AC_ARG_ENABLE(hidden-plt, dnl -[ --disable-hidden-plt do not hide internal function calls to avoid PLT], - hidden=$enableval, hidden=yes) +AC_ARG_WITH([__thread], + AC_HELP_STRING([--without-__thread], + [do not use TLS features even when supporting them]), + [use__thread=$withval], + [use__thread=yes]) + +AC_ARG_ENABLE([hidden-plt], + AC_HELP_STRING([--disable-hidden-plt], + [do not hide internal function calls to avoid PLT]), + [hidden=$enableval], + [hidden=yes]) if test "x$hidden" = xno; then AC_DEFINE(NO_HIDDEN) fi -AC_CONFIG_SUBDIRS($add_ons) +AC_CONFIG_SUBDIRS([ ])dnl Bonehead new Autoconf whines if we do it cleanly. add_ons_pfx= if test x"$add_ons" != x; then for f in $add_ons; do @@ -174,6 +217,10 @@ if test x"$add_ons" != x; then # Test whether such a subdir really exists. if test -d $srcdir/$f; then add_ons_pfx="$add_ons_pfx $f/" + dnl This variable is what AC_CONFIG_SUBDIRS is supposed to set, + dnl but the new Autoconf maintainers don't care about compatibility + dnl so we cannot use it normally any more without complaints. + subdirs="$subdirs $f" else AC_MSG_ERROR(add-on directory \"$f\" does not exist) fi @@ -182,27 +229,31 @@ fi dnl On some platforms we cannot use dynamic loading. We must provide dnl static NSS modules. -AC_ARG_ENABLE(static-nss, dnl -[ --enable-static-nss build static NSS modules [default=no]], - static_nss=$enableval, static_nss=no) +AC_ARG_ENABLE([static-nss], + AC_HELP_STRING([--enable-static-nss], + [build static NSS modules @<:@default=no@:>@]), + [static_nss=$enableval], + [static_nss=no]) dnl Enable static NSS also if we build no shared objects. if test x"$static_nss" = xyes || test x"$shared" = xno; then static_nss=yes AC_DEFINE(DO_STATIC_NSS) fi -AC_ARG_ENABLE(force-install, -[ --disable-force-install don't force installation of files from this package, - even if they are older than the installed files], - force_install=$enableval, force_install=yes) +AC_ARG_ENABLE([force-install], + AC_HELP_STRING([--disable-force-install], + [don't force installation of files from this package, even if they are older than the installed files]), + [force_install=$enableval], + [force_install=yes]) AC_SUBST(force_install) dnl On some platforms we allow dropping compatibility with all kernel dnl versions. -AC_ARG_ENABLE(kernel, -[ --enable-kernel=VERSION compile for compatibility with kernel not older - than VERSION], - minimum_kernel=$enableval) +AC_ARG_ENABLE([kernel], + AC_HELP_STRING([--enable-kernel=VERSION], + [compile for compatibility with kernel not older than VERSION]), + [minimum_kernel=$enableval], + []) dnl Prevent unreasonable values. if test "$minimum_kernel" = yes || test "$minimum_kernel" = no; then # Better nothing than this. @@ -216,9 +267,11 @@ fi dnl For the development we sometimes want gcc to issue even more warnings. dnl This is not the default since many of the extra warnings are not dnl appropriate. -AC_ARG_ENABLE(all-warnings, -[ --enable-all-warnings enable all useful warnings gcc can issue], - all_warnings=$enableval) +AC_ARG_ENABLE([all-warnings], + AC_HELP_STRING([--enable-all-warnings], + [enable all useful warnings gcc can issue]), + [all_warnings=$enableval], + []) AC_SUBST(all_warnings) AC_CANONICAL_HOST @@ -276,6 +329,13 @@ if test "$machine" = rs6000; then machine="powerpc" fi +# Braindead PowerPC box with absolutely no FPU. +case "$machine-$host_os" in + powerpc*-*soft) + with_fp=no + ;; +esac + ### ### I put this here to prevent those annoying emails from people who cannot ### read and try to compile glibc on unsupported platforms. --drepper @@ -414,6 +474,8 @@ while m=`echo $tail | sed 's@^\(.*\)/\([ # Prepend the machine's FPU directory unless --without-fp. if test "$with_fp" = yes; then mach="$mach /$1/fpu" + else + mach="$mach /$1/nofpu" fi mach="$mach /$1" tail="$2" @@ -493,7 +555,7 @@ while test $# -gt 0; do esac # Report each name as we discover it, so there is no long pause in output. - echo $ac_n "$name $ac_c" >&AC_FD_MSG + echo $ECHO_N "$name $ECHO_C" >&AS_MESSAGE_FD name_base=`echo $name | sed -e 's@\(.*sysdeps\)/.*@\1@'` @@ -586,7 +648,7 @@ if test "$PWD_P" = no; then fi # These programs are version sensitive. -AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl +AC_CHECK_TOOL_PREFIX AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v, [version \([egcygnustpi-]*[0-9.]*\)], [3.[2-9]*], critic_missing="$critic_missing gcc") @@ -615,38 +677,40 @@ AC_CHECK_PROG_VER(SED, sed, --version, [3.0[2-9]*|3.[1-9]*|[4-9]*], SED=: aux_missing="$aux_missing sed") -AC_CHECK_PROGS(AUTOCONF, autoconf, no) -case "x$AUTOCONF" in -xno|x|x:) AUTOCONF=no ;; -*) - AC_CACHE_CHECK(dnl +if test "x$with_cvs" != xyes; then + AC_CHECK_PROGS(AUTOCONF, autoconf, no) + case "x$AUTOCONF" in + xno|x|x:) AUTOCONF=no ;; + *) + AC_CACHE_CHECK(dnl whether $AUTOCONF${ACFLAGS:+ }$ACFLAGS works, libc_cv_autoconf_works, [dnl - if (cd $srcdir; $AUTOCONF $ACFLAGS configure.in > /dev/null 2>&1); then - libc_cv_autoconf_works=yes - else - libc_cv_autoconf_works=no - fi]) - test $libc_cv_autoconf_works = yes || AUTOCONF=no - ;; -esac -test "x$AUTOCONF" != xno || aux_missing="$aux_missing autoconf" + if (cd $srcdir; $AUTOCONF $ACFLAGS configure.in > /dev/null 2>&1); then + libc_cv_autoconf_works=yes + else + libc_cv_autoconf_works=no + fi]) + test $libc_cv_autoconf_works = yes || AUTOCONF=no + ;; + esac + test "x$AUTOCONF" != xno || aux_missing="$aux_missing autoconf" +fi -AC_PROG_CC_LOCAL -AC_CANONICAL_BUILD +AC_PROG_CC if test $host != $build; then AC_CHECK_PROGS(BUILD_CC, gcc cc) fi AC_SUBST(cross_compiling) AC_PROG_CPP LIBC_PROG_BINUTILS -AC_CHECK_TOOL(MIG, mig, MISSING) +AC_SUBST(MIG)dnl Needed by sysdeps/mach/configure.in -# Accept binutils 2.10.1 or newer (and also any ia64 2.9 version) -# XXX Commented out because it filters out too many good versions. -# XXX --drepper -# AC_CHECK_PROG_VER(AS, $AS, --version, -# [GNU assembler.* \([0-9]*\.[0-9.]*\(-ia64-[0-9]*\)*\)], -# [2.10.[1-9]* | 2.1[1-9]* | 2.9-ia64-*], AS=: critic_missing=t) +# Accept binutils 2.13 or newer. +AC_CHECK_PROG_VER(AS, $AS, --version, + [GNU assembler.* \([0-9]*\.[0-9.]*\)], + [2.1[3-9]*], AS=: critic_missing=t) +AC_CHECK_PROG_VER(LD, $LD, --version, + [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)], + [2.1[3-9]*], LD=: critic_missing=t) test -n "$aux_missing" && AC_MSG_WARN([ *** These auxiliary programs are missing or incompatible versions:$aux_missing @@ -765,7 +829,7 @@ AC_CACHE_CHECK(for old Debian install-in echo 'START-INFO-DIR-ENTRY' echo '* Prog: (prog). Program.' echo 'END-INFO-DIR-ENTRY') >conftest.d/prog.info - if $INSTALL_INFO --info-dir=conftest.d conftest.d/prog.info >&AC_FD_CC 2>&1 + if $INSTALL_INFO --info-dir=conftest.d conftest.d/prog.info >&AS_MESSAGE_LOG_FD 2>&1 then if grep -s 'i-d-s works' conftest.d/dir >/dev/null then libc_cv_old_debian_install_info=no @@ -887,7 +951,7 @@ extern int glibc_conftest_frobozz; main () { printf ("%d\n", glibc_conftest_frobozz); } EOF if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \ - -o conftest conftest.s conftest1.c 1>&AC_FD_CC 2>&AC_FD_CC; then + -o conftest conftest.s conftest1.c 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then libc_cv_asm_set_directive=yes else libc_cv_asm_set_directive=no @@ -932,7 +996,7 @@ ${libc_cv_dot_text} _sym: .symver _sym,sym@VERS EOF -if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AC_FD_CC 2>&AC_FD_CC; then +if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then libc_cv_asm_symver_directive=yes else libc_cv_asm_symver_directive=no @@ -954,11 +1018,11 @@ VERS_2 { global: sym; } VERS_1; EOF - if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AC_FD_CC 2>&AC_FD_CC; then + if ${CC-cc} -c $CFLAGS $CPPFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD; then if AC_TRY_COMMAND([${CC-cc} $CFLAGS -shared -o conftest.so conftest.o -nostartfiles -nostdlib -Wl,--version-script,conftest.map - 1>&AC_FD_CC]); + 1>&AS_MESSAGE_LOG_FD]); then libc_cv_ld_version_script_option=yes else @@ -996,7 +1060,7 @@ if test $elf = yes; then .section foo_section .previous EOF - if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then + if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then libc_cv_asm_previous_directive=yes else libc_cv_asm_previous_directive=no @@ -1011,7 +1075,7 @@ EOF .pushsection foo_section .popsection EOF - if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then + if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then libc_cv_asm_popsection_directive=yes else libc_cv_asm_popsection_directive=no @@ -1029,7 +1093,7 @@ foo: .hidden bar bar: EOF - if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then + if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then libc_cv_asm_protected_directive=yes else libc_cv_asm_protected_directive=no @@ -1132,7 +1196,7 @@ int foo (void) { return 1; } int (*fp) (void) __attribute__ ((section (".init_array"))) = foo; EOF if AC_TRY_COMMAND([${CC-cc} -o conftest conftest.c - -static -nostartfiles -nostdlib 1>&AC_FD_CC]) + -static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD]) then if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then libc_cv_initfinit_array=yes @@ -1155,7 +1219,7 @@ int _start (void) { return 42; } EOF if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c -nostartfiles -nostdlib - -Wl,--enable-new-dtags,-z,nodelete 1>&AC_FD_CC]) + -Wl,--enable-new-dtags,-z,nodelete 1>&AS_MESSAGE_LOG_FD]) then libc_cv_z_nodelete=yes else @@ -1171,7 +1235,7 @@ int _start (void) { return 42; } EOF if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c -nostartfiles -nostdlib - -Wl,--enable-new-dtags,-z,nodlopen 1>&AC_FD_CC]) + -Wl,--enable-new-dtags,-z,nodlopen 1>&AS_MESSAGE_LOG_FD]) then libc_cv_z_nodlopen=yes else @@ -1187,7 +1251,7 @@ int _start (void) { return 42; } EOF if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c -nostartfiles -nostdlib - -Wl,--enable-new-dtags,-z,initfirst 1>&AC_FD_CC]) + -Wl,--enable-new-dtags,-z,initfirst 1>&AS_MESSAGE_LOG_FD]) then libc_cv_z_initfirst=yes else @@ -1201,7 +1265,7 @@ EOF cat > conftest.c <&AC_FD_CC]) + if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c -Wl,-Bgroup -nostdlib 1>&AS_MESSAGE_LOG_FD]) then libc_cv_Bgroup=yes else @@ -1219,7 +1283,7 @@ int foo (void) { return bar (mumble); } EOF if AC_TRY_COMMAND([${CC-cc} -shared -o conftest.so conftest.c -nostdlib -nostartfiles - -Wl,-z,combreloc 1>&AC_FD_CC]) + -Wl,-z,combreloc 1>&AS_MESSAGE_LOG_FD]) then dnl The following test is a bit weak. We must use a tool which can test dnl cross-platform since the gcc used can be a cross compiler. Without @@ -1296,8 +1360,8 @@ if AC_TRY_EVAL(ac_compile); then $2]) fi else - echo "configure: failed program was:" >&AC_FD_CC - cat conftest.$ac_ext >&AC_FD_CC + echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD ifelse([$2], , , [rm -f conftest* $2]) fi @@ -1383,7 +1447,7 @@ case "${host_cpu}-${host_os}" in cat > conftest.s <&AC_FD_CC); then + if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AS_MESSAGE_LOG_FD); then libc_cv_asm_line_sep='!' else if test -z "$enable_hacker_mode"; then @@ -1407,7 +1471,7 @@ EOF dnl No \ in command here because it ends up inside ''. if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles -Wl,--no-whole-archive - -o conftest conftest.c 1>&AC_FD_CC]); then + -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then libc_cv_ld_no_whole_archive=yes else libc_cv_ld_no_whole_archive=no @@ -1427,7 +1491,7 @@ EOF dnl No \ in command here because it ends up inside ''. if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles -fexceptions - -o conftest conftest.c 1>&AC_FD_CC]); then + -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD]); then libc_cv_gcc_exceptions=yes else libc_cv_gcc_exceptions=no @@ -1438,26 +1502,6 @@ if test $libc_cv_gcc_exceptions = yes; t fi AC_SUBST(exceptions)dnl -if test "$base_machine" = alpha ; then -AC_CACHE_CHECK(for function ..ng prefix, libc_cv_gcc_alpha_ng_prefix, [dnl -cat > conftest.c <<\EOF -foo () { } -EOF -dnl -if AC_TRY_COMMAND([${CC-cc} -S conftest.c -o - | fgrep "\$foo..ng" > /dev/null]); -then - libc_cv_gcc_alpha_ng_prefix=yes -else - libc_cv_gcc_alpha_ng_prefix=no -fi -rm -f conftest* ]) -if test $libc_cv_gcc_alpha_ng_prefix = yes ; then - AC_DEFINE(ASM_ALPHA_NG_SYMBOL_PREFIX, "$") -else - AC_DEFINE(ASM_ALPHA_NG_SYMBOL_PREFIX, "") -fi -fi - if test "$host_cpu" = powerpc ; then # Check for a bug present in at least versions 2.8.x of GCC # and versions 1.0.x of EGCS. @@ -1501,16 +1545,17 @@ EOF dnl No \ in command here because it ends up inside ''. if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame_info -nostdlib -nostartfiles - -o conftest conftest.c -lgcc >&AC_FD_CC]); then + -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then libc_cv_gcc_dwarf2_unwind_info=static else libc_cv_gcc_dwarf2_unwind_info=no fi -if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame_info - -nostdlib -nostartfiles - -o conftest conftest.c -lgcc -lgcc_eh >&AC_FD_CC]); then - if ${CC-cc} $CFLAGS -DCHECK__register_frame_info -nostdlib -nostartfiles \ - -o conftest conftest.c -lgcc -lgcc_eh -v 2>&1 >/dev/null \ +# Some platforms' specs put -lgcc first. The second one doesn't hurt. +libc_unwind_check="${CC-cc} $CFLAGS -DCHECK__register_frame_info \ + -nostdlib -nostartfiles -o conftest conftest.c \ + -lgcc -lgcc_eh -lgcc" +if AC_TRY_COMMAND([$libc_unwind_check >&AS_MESSAGE_LOG_FD]); then + if $libc_unwind_check -v 2>&1 >/dev/null \ | grep -q -- --eh-frame-hdr; then libc_cv_gcc_dwarf2_unwind_info=no_registry_needed else @@ -1522,7 +1567,7 @@ fi if test $libc_cv_gcc_dwarf2_unwind_info = no; then if AC_TRY_COMMAND([${CC-cc} $CFLAGS -DCHECK__register_frame -nostdlib -nostartfiles - -o conftest conftest.c -lgcc >&AC_FD_CC]); then + -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then libc_cv_gcc_dwarf2_unwind_info=yes else libc_cv_gcc_dwarf2_unwind_info=no @@ -1551,7 +1596,7 @@ int foo (int a) EOF dnl No \ in command here because it ends up inside ''. if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles - -o conftest conftest.c -lgcc >&AC_FD_CC]); then + -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then libc_cv_gcc_builtin_expect=yes else libc_cv_gcc_builtin_expect=no @@ -1599,7 +1644,7 @@ changequote([,])dnl EOF dnl No \ in command here because it ends up inside ''. if AC_TRY_COMMAND([${CC-cc} $CFLAGS -nostdlib -nostartfiles - -o conftest conftest.c -lgcc >&AC_FD_CC]); then + -o conftest conftest.c -lgcc >&AS_MESSAGE_LOG_FD]); then libc_cv_gcc_subtract_local_labels=yes else libc_cv_gcc_subtract_local_labels=no @@ -1610,21 +1655,41 @@ if test "$libc_cv_gcc_subtract_local_lab fi dnl Check whether the compiler supports the __thread keyword. -AC_CACHE_CHECK([for __thread], libc_cv_gcc___thread, -[cat > conftest.c <<\EOF +if test "x$use__thread" != xno; then + AC_CACHE_CHECK([for __thread], libc_cv_gcc___thread, + [cat > conftest.c <<\EOF __thread int a = 42; EOF -if AC_TRY_COMMAND([${CC-cc} $CFLAGS -c conftest.c >&AC_FD_CC]); then - libc_cv_gcc___thread=yes + if AC_TRY_COMMAND([${CC-cc} $CFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then + libc_cv_gcc___thread=yes + else + libc_cv_gcc___thread=no + fi + rm -f conftest*]) + if test "$libc_cv_gcc___thread" = yes; then + AC_DEFINE(HAVE___THREAD) + fi else libc_cv_gcc___thread=no fi -rm -f conftest*]) + if test "$libc_cv_gcc___thread" = yes; then - AC_DEFINE(HAVE___THREAD) + dnl Check whether the compiler supports the tls_model attribute. + AC_CACHE_CHECK([for tls_model attribute], libc_cv_gcc_tls_model_attr, [dnl + cat > conftest.c <<\EOF +extern __thread int a __attribute__((tls_model ("initial-exec"))); +EOF + if AC_TRY_COMMAND([${CC-cc} $CFLAGS -S -Werror conftest.c >&AS_MESSAGE_LOG_FD]); then + libc_cv_gcc_tls_model_attr=yes + else + libc_cv_gcc_tls_model_attr=no + fi + rm -f conftest*]) + if test "$libc_cv_gcc_tls_model_attr" = yes; then + AC_DEFINE(HAVE_TLS_MODEL_ATTRIBUTE) + fi fi - dnl Check whether we have the gd library available. AC_MSG_CHECKING(for libgd) if test "$with_gd" != "no"; then @@ -1652,10 +1717,6 @@ AC_SUBST(sizeof_long_double) ### End of automated tests. ### Now run sysdeps configure fragments. -# sysdeps configure fragments may set these with files to be linked below. -libc_link_dests= -libc_link_sources= - # They also can set these variables. use_ldconfig=no ldd_rewrite_script=no @@ -1691,8 +1752,6 @@ if test x$libc_cv_gcc_unwind_find_fde = fi AC_SUBST(libc_cv_gcc_unwind_find_fde) -AC_LINK_FILES(`echo $libc_link_sources`, `echo $libc_link_dests`) - # If we will use the generic uname implementation, we must figure out what # it will say by examining the system, and write the results in config-name.h. if test "$uname" = "sysdeps/generic"; then @@ -1715,7 +1774,7 @@ AC_DEFUN(LIBC_KERNEL_ID, [dnl ])dnl AC_CACHE_CHECK(OS release for uname, libc_cv_uname_release, [dnl -AC_REQUIRE([LIBC_KERNEL_ID])dnl +LIBC_KERNEL_ID changequote(,)dnl kernel_release=`echo "$kernel_id" | sed 's/^[^0-9.]*\([0-9.]*\).*$/\1/'` changequote([,])dnl @@ -1733,7 +1792,7 @@ changequote([,])dnl uname_release="$libc_cv_uname_release" AC_CACHE_CHECK(OS version for uname, libc_cv_uname_version, [dnl -AC_REQUIRE([LIBC_KERNEL_ID])dnl +LIBC_KERNEL_ID changequote(,)dnl kernel_version=`echo "$kernel_id" | sed 's/^[^#]*#\([0-9]*\).*$/\1/'` changequote([,])dnl @@ -1811,7 +1870,7 @@ cat > conftest.c <&AC_FD_CC 1>&AC_FD_CC"; then +if eval "${CC-cc} -S conftest.c 2>&AS_MESSAGE_LOG_FD 1>&AS_MESSAGE_LOG_FD"; then pic_default=no fi rm -f conftest.*]) @@ -1845,8 +1904,10 @@ RELEASE=`sed -n -e 's/^#define RELEASE " AC_SUBST(VERSION) AC_SUBST(RELEASE) -AC_OUTPUT(config.make glibcbug ${config_makefile} ${config_uname}, [ +AC_CONFIG_FILES([config.make glibcbug ${config_makefile} ${config_uname}]) +AC_CONFIG_COMMANDS([default],[[ case $CONFIG_FILES in *config.make*) echo "$config_vars" >> config.make;; esac -test -d bits || mkdir bits], [config_vars='$config_vars']) +test -d bits || mkdir bits]],[[config_vars='$config_vars']]) +AC_OUTPUT diff -durpN glibc-2.3.1/cppflags-iterator.mk glibc-2.3.2/cppflags-iterator.mk --- glibc-2.3.1/cppflags-iterator.mk 2002-09-23 16:59:54.000000000 -0700 +++ glibc-2.3.2/cppflags-iterator.mk 2002-10-17 10:05:51.000000000 -0700 @@ -4,4 +4,4 @@ cpp-src := $(firstword $(cpp-srcs-left)) cpp-srcs-left := $(filter-out $(cpp-src),$(cpp-srcs-left)) -CPPFLAGS-$(cpp-src) += -DNOT_IN_libc -DIS_IN_$(lib) +libof-$(cpp-src) := $(lib) diff -durpN glibc-2.3.1/crypt/crypt_util.c glibc-2.3.2/crypt/crypt_util.c --- glibc-2.3.1/crypt/crypt_util.c 2002-08-26 21:52:34.000000000 -0700 +++ glibc-2.3.2/crypt/crypt_util.c 2002-11-02 20:48:25.000000000 -0800 @@ -536,6 +536,9 @@ small_tables_done: } } + __data->current_saltbits = 0; + __data->current_salt[0] = 0; + __data->current_salt[1] = 0; __data->initialized++; } diff -durpN glibc-2.3.1/crypt/md5-crypt.c glibc-2.3.2/crypt/md5-crypt.c --- glibc-2.3.1/crypt/md5-crypt.c 2001-12-29 07:09:15.000000000 -0800 +++ glibc-2.3.2/crypt/md5-crypt.c 2002-11-11 17:54:55.000000000 -0800 @@ -1,5 +1,6 @@ /* One way encryption based on MD5 sum. - Copyright (C) 1996, 1997, 1999, 2000, 2001 Free Software Foundation, Inc. + Compatible with the behavior of MD5 crypt introduced in FreeBSD 2.0. + Copyright (C) 1996,1997,1999,2000,2001,2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -233,8 +234,10 @@ __md5_crypt_r (key, salt, buffer, buflen return buffer; } - -static char *buffer; +#ifndef _LIBC +# define libc_freeres_ptr(decl) decl +#endif +libc_freeres_ptr (static char *buffer); char * __md5_crypt (const char *key, const char *salt) @@ -261,10 +264,11 @@ __md5_crypt (const char *key, const char return __md5_crypt_r (key, salt, buffer, buflen); } - +#ifndef _LIBC static void __attribute__ ((__destructor__)) free_mem (void) { free (buffer); } +#endif diff -durpN glibc-2.3.1/csu/abi-note.S glibc-2.3.2/csu/abi-note.S --- glibc-2.3.1/csu/abi-note.S 2001-07-07 12:20:52.000000000 -0700 +++ glibc-2.3.2/csu/abi-note.S 2002-12-10 11:46:36.000000000 -0800 @@ -1,5 +1,5 @@ /* Special .init and .fini section support. - Copyright (C) 1997, 2001 Free Software Foundation, Inc. + Copyright (C) 1997, 2001, 2002 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 @@ -38,13 +38,13 @@ Offsets and lengths are bytes or (parenthetical references) to the values in other fields. -offset length contents +offset length contents 0 4 length of name 4 4 length of data 8 4 note type 12 (0) vendor name - null-terminated ASCII string, padded to 4-byte alignment -12+(0) (4) note data, +12+(0) (4) note data, The GNU project and cooperating development efforts (including the Linux community) use note type 1 and a vendor name string of "GNU" @@ -56,18 +56,18 @@ offset length contents #include #include /* OS-specific ABI tag value */ - + /* The linker (GNU ld 2.8 and later) recognizes an allocated section whose name begins with `.note' and creates a PT_NOTE program header entry pointing at it. */ .section ".note.ABI-tag", "a" - .align 4 + .p2align 2 .long 1f - 0f /* name length */ .long 3f - 2f /* data length */ .long 1 /* note type */ 0: .asciz "GNU" /* vendor name */ -1: .align 4 +1: .p2align 2 2: .long __ABI_TAG_OS /* note data: the ABI tag */ .long __ABI_TAG_VERSION -3: .align 4 /* pad out section */ +3: .p2align 2 /* pad out section */ diff -durpN glibc-2.3.1/csu/dso_handle.c glibc-2.3.2/csu/dso_handle.c --- glibc-2.3.1/csu/dso_handle.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/csu/dso_handle.c 2002-12-31 14:24:26.000000000 -0800 @@ -0,0 +1,21 @@ +/* Copyright (C) 2002 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 Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +/* We have to define __dso_handle ourselves since we do not use gcc's + crtbegin files. */ +void *__dso_handle __attribute__ ((__visibility__ ("hidden"))) = &__dso_handle; diff -durpN glibc-2.3.1/csu/elf-init.c glibc-2.3.2/csu/elf-init.c --- glibc-2.3.1/csu/elf-init.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/csu/elf-init.c 2002-12-31 15:41:32.000000000 -0800 @@ -0,0 +1,82 @@ +/* Startup support for ELF initializers/finalizers in the main executable. + Copyright (C) 2002 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 Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include + +#ifdef HAVE_INITFINI_ARRAY +/* These magic symbols are provided by the linker. */ +extern void (*__preinit_array_start []) (void); +extern void (*__preinit_array_end []) (void); +extern void (*__init_array_start []) (void); +extern void (*__init_array_end []) (void); +extern void (*__fini_array_start []) (void); +extern void (*__fini_array_end []) (void); +#endif + +/* These function symbols are provided for the .init/.fini section entry + points automagically by the linker. */ +extern void _init (void); +extern void _fini (void); + +/* These functions are passed to __libc_start_main by the startup code. + These get statically linked into each program. For dynamically linked + programs, this module will come from libc_nonshared.a and differs from + the libc.a module in that it doesn't call the preinit array. */ + +void +__libc_csu_init (void) +{ +#ifdef HAVE_INITFINI_ARRAY + /* For dynamically linked executables the preinit array is executed by + the dynamic linker (before initializing any shared object. */ + +# ifndef LIBC_NONSHARED + /* For static executables, preinit happens rights before init. */ + { + const size_t size = __preinit_array_end - __preinit_array_start; + size_t i; + for (i = 0; i < size; i++) + (*__preinit_array_start [i]) (); + } +# endif +#endif + + _init (); + +#ifdef HAVE_INITFINI_ARRAY + { + const size_t size = __init_array_end - __init_array_start; + size_t i; + for (i = 0; i < size; i++) + (*__init_array_start [i]) (); + } +#endif +} + +void +__libc_csu_fini (void) +{ +#ifdef HAVE_INITFINI_ARRAY + size_t i = __fini_array_end - __fini_array_start; + while (i-- > 0) + (*__fini_array_start [i]) (); +#endif + + _fini (); +} diff -durpN glibc-2.3.1/csu/gmon-start.c glibc-2.3.2/csu/gmon-start.c --- glibc-2.3.1/csu/gmon-start.c 2002-09-14 19:18:52.000000000 -0700 +++ glibc-2.3.2/csu/gmon-start.c 2002-11-22 12:16:13.000000000 -0800 @@ -36,11 +36,11 @@ extern void ENTRY_POINT; extern void etext; #ifndef TEXT_START -#ifdef ENTRY_POINT_DECL -#define TEXT_START ENTRY_POINT -#else -#define TEXT_START &ENTRY_POINT -#endif +# ifdef ENTRY_POINT_DECL +# define TEXT_START ENTRY_POINT +# else +# define TEXT_START &ENTRY_POINT +# endif #endif #ifndef HAVE_INITFINI @@ -71,11 +71,7 @@ __gmon_start__ (void) #endif /* Start keeping profiling records. */ -#ifdef ENTRY_POINT_DECL - __monstartup ((u_long) ENTRY_POINT, (u_long) &etext); -#else __monstartup ((u_long) TEXT_START, (u_long) &etext); -#endif /* Call _mcleanup before exiting; it will write out gmon.out from the collected data. */ diff -durpN glibc-2.3.1/csu/Makefile glibc-2.3.2/csu/Makefile --- glibc-2.3.1/csu/Makefile 2002-08-15 00:54:11.000000000 -0700 +++ glibc-2.3.2/csu/Makefile 2002-12-31 14:24:37.000000000 -0800 @@ -27,8 +27,10 @@ subdir := csu routines = init-first libc-start $(libc-init) sysdep version check_fds \ - libc-tls + libc-tls elf-init dso_handle +aux = errno elide-routines.os = libc-tls +static-only-routines = elf-init csu-dummies = $(filter-out $(start-installed-name),crt1.o Mcrt1.o) extra-objs = start.o gmon-start.o \ $(start-installed-name) g$(start-installed-name) $(csu-dummies) @@ -78,6 +80,11 @@ ifeq ($(have-initfini),yes) CPPFLAGS += -DHAVE_INITFINI +# We don't want this compiled with PIC. +# It's never included in shared libraries, unlike the rest of libc_nonshared.a. +CPPFLAGS-elf-init.oS = $(patsubst %,-UPIC,$(pic-ccflag)) +CFLAGS-elf-init.oS = $(patsubst -f%,-fno-%,$(pic-ccflag)) + # These are the special initializer/finalizer files. They are always the # first and last file in the link. crti.o ... crtn.o define the global # "functions" _init and _fini to run the .init and .fini sections. @@ -112,6 +119,11 @@ $(objpfx)crtn.S: $(objpfx)initfini.s -e '/@_.*_EPILOG_BEGINS/,/@_.*_EPILOG_ENDS/p' \ -e '/@TRAILER_BEGINS/,$$p' $< > $@ +# These explicit rules are necessary when the $(objpfx) subdirectory +# did not exist at the time make considered the implicit rules using it. +# This comes up with a fresh build using no_deps=t. +$(patsubst %,$(objpfx)crt%.o,i n): %.o: %.S + $(objpfx)defs.h: $(objpfx)initfini.s sed -n -e '/@TESTS_BEGIN/,/@TESTS_END/p' $< | \ $(AWK) -f defs.awk > $@ diff -durpN glibc-2.3.1/csu/version.c glibc-2.3.2/csu/version.c --- glibc-2.3.1/csu/version.c 2002-02-08 17:28:00.000000000 -0800 +++ glibc-2.3.2/csu/version.c 2003-01-02 12:01:04.000000000 -0800 @@ -1,4 +1,4 @@ -/* Copyright (C) 1992,93,94,95,96,97,98,99,2000 Free Software Foundation, Inc. +/* Copyright (C) 1992-2002, 2003 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 @@ -25,7 +25,7 @@ static const char __libc_version[] = VER static const char banner[] = "GNU C Library "RELEASE" release version "VERSION", by Roland McGrath et al.\n\ -Copyright (C) 1992-2001, 2002 Free Software Foundation, Inc.\n\ +Copyright (C) 2003 Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions.\n\ There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\ PARTICULAR PURPOSE.\n\ diff -durpN glibc-2.3.1/csu/Versions glibc-2.3.2/csu/Versions --- glibc-2.3.1/csu/Versions 2002-09-24 22:28:36.000000000 -0700 +++ glibc-2.3.2/csu/Versions 2002-11-14 20:12:10.000000000 -0800 @@ -17,7 +17,7 @@ libc { # New special glibc functions. gnu_get_libc_release; gnu_get_libc_version; } - GLIBC_2.3 { + GLIBC_PRIVATE { %if USE_TLS && HAVE___THREAD # This version is for the TLS symbol, GLIBC_2.0 is the old object symbol. errno; diff -durpN glibc-2.3.1/debug/catchsegv.sh glibc-2.3.2/debug/catchsegv.sh --- glibc-2.3.1/debug/catchsegv.sh 2002-04-03 16:06:25.000000000 -0800 +++ glibc-2.3.2/debug/catchsegv.sh 2003-02-05 19:03:51.000000000 -0800 @@ -1,5 +1,5 @@ #! /bin/sh -# Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc. +# Copyright (C) 1998, 1999, 2001, 2003 Free Software Foundation, Inc. # This file is part of the GNU C Library. # Contributed by Ulrich Drepper , 1998. @@ -19,7 +19,7 @@ # 02111-1307 USA. if test $# -eq 0; then - echo "$0: missing programm name" >&2 + echo "$0: missing program name" >&2 echo "Try \`$0 --help' for more information." >&2 exit 1 fi @@ -38,7 +38,7 @@ if test $# -eq 0; then ;; --v | --ve | --ver | --vers | --versi | --versio | --version) echo 'catchsegv (GNU libc) @VERSION@' - echo 'Copyright (C) 2002 Free Software Foundation, Inc. + echo 'Copyright (C) 2003 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Ulrich Drepper.' diff -durpN glibc-2.3.1/debug/xtrace.sh glibc-2.3.2/debug/xtrace.sh --- glibc-2.3.1/debug/xtrace.sh 2002-05-14 19:29:59.000000000 -0700 +++ glibc-2.3.2/debug/xtrace.sh 2003-01-02 12:03:09.000000000 -0800 @@ -1,5 +1,5 @@ #! @BASH@ -# Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc. +# Copyright (C) 1999, 2001, 2002, 2003 Free Software Foundation, Inc. # This file is part of the GNU C Library. # Contributed by Ulrich Drepper , 1999. @@ -59,7 +59,7 @@ Report bugs using the \`glibcbug' script do_version() { echo 'xtrace (GNU libc) @VERSION@' - echo $"Copyright (C) 2002 Free Software Foundation, Inc. + echo $"Copyright (C) 2003 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Ulrich Drepper." diff -durpN glibc-2.3.1/dirent/bug-readdir1.c glibc-2.3.2/dirent/bug-readdir1.c --- glibc-2.3.1/dirent/bug-readdir1.c 2002-06-21 22:47:06.000000000 -0700 +++ glibc-2.3.2/dirent/bug-readdir1.c 2002-12-14 10:08:41.000000000 -0800 @@ -3,6 +3,7 @@ #include #include #include +#include #include @@ -23,11 +24,12 @@ main (void) exit (1); } - /* close the dir stream, making it invalid */ - if (closedir (dirp)) + /* close the directory file descriptor, making it invalid */ + if (close (dirfd (dirp)) != 0) { - perror ("closedir"); - exit (1); + puts ("could not close directory file descriptor"); + /* This is not an error. It is not guaranteed this is possible. */ + return 0; } ent = readdir (dirp); diff -durpN glibc-2.3.1/dirent/scandir.c glibc-2.3.2/dirent/scandir.c --- glibc-2.3.1/dirent/scandir.c 2001-07-07 12:20:52.000000000 -0700 +++ glibc-2.3.2/dirent/scandir.c 2002-10-14 10:41:01.000000000 -0700 @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-1998, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1992-1998, 2000, 2002 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 @@ -80,20 +80,24 @@ SCANDIR (dir, namelist, select, cmp) if (__builtin_expect (errno, 0) != 0) { save = errno; - (void) __closedir (dp); + while (i > 0) free (v[--i]); free (v); - __set_errno (save); - return -1; + + i = -1; + } + else + { + /* Sort the list if we have a comparison function to sort with. */ + if (cmp != NULL) + qsort (v, i, sizeof (*v), cmp); + + *namelist = v; } (void) __closedir (dp); __set_errno (save); - /* Sort the list if we have a comparison function to sort with. */ - if (cmp != NULL) - qsort (v, i, sizeof (*v), cmp); - *namelist = v; return i; } diff -durpN glibc-2.3.1/dlfcn/dlerror.c glibc-2.3.2/dlfcn/dlerror.c --- glibc-2.3.1/dlfcn/dlerror.c 2001-07-07 12:20:52.000000000 -0700 +++ glibc-2.3.2/dlfcn/dlerror.c 2002-11-18 22:51:37.000000000 -0800 @@ -1,5 +1,6 @@ /* Return error detail for failing functions. - Copyright (C) 1995, 96, 97, 98, 99, 2000 Free Software Foundation, Inc. + Copyright (C) 1995,1996,1997,1998,1999,2000,2002 + 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 @@ -148,6 +149,15 @@ init (void) static_buf = &last_result; } +static void +__attribute__ ((destructor)) +fini (void) +{ + if (last_result.errstring != NULL + && strcmp (last_result.errstring, "out of memory") != 0) + free ((char *) last_result.errstring); +} + /* Free the thread specific data, this is done if a thread terminates. */ static void diff -durpN glibc-2.3.1/dlfcn/Makefile glibc-2.3.2/dlfcn/Makefile --- glibc-2.3.1/dlfcn/Makefile 2002-08-23 12:46:30.000000000 -0700 +++ glibc-2.3.2/dlfcn/Makefile 2003-02-25 16:46:32.000000000 -0800 @@ -1,4 +1,4 @@ -# Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc. +# Copyright (C) 1995-2002, 2003 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 @@ -113,4 +113,5 @@ $(objpfx)bug-dlsym1-lib2.so: $(common-ob # Depend on libc.so so a DT_NEEDED is generated in the shared objects. # This ensures they will load libc.so for needed symbols if loaded by # a statically-linked program that hasn't already loaded it. -$(objpfx)libdl.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a +$(objpfx)libdl.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a \ + $(if $(filter yes,$(elf)), $(elfobjdir)/ld.so) diff -durpN glibc-2.3.1/elf/cache.c glibc-2.3.2/elf/cache.c --- glibc-2.3.1/elf/cache.c 2002-09-20 17:28:19.000000000 -0700 +++ glibc-2.3.2/elf/cache.c 2002-12-29 11:14:59.000000000 -0800 @@ -475,7 +475,7 @@ add_to_cache (const char *path, const ch new_entry->bits_hwcap = 0; /* Count the number of bits set in the masked value. */ - for (i = 0; (~((1ULL << i) - 1) & hwcap) != 0; ++i) + for (i = 0; (~((1ULL << i) - 1) & hwcap) != 0 && i < 8 * sizeof (hwcap); ++i) if ((hwcap & (1ULL << i)) != 0) ++new_entry->bits_hwcap; diff -durpN glibc-2.3.1/elf/check-textrel.c glibc-2.3.2/elf/check-textrel.c --- glibc-2.3.1/elf/check-textrel.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/check-textrel.c 2003-02-10 21:39:54.000000000 -0800 @@ -0,0 +1,183 @@ +/* Check for text relocations in DSOs. + Copyright (C) 2002, 2003 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contribute by Ulrich Drepper . 2002. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include +#include +#include +#include +#include +#include +#include + + +#ifdef BITS + +# define AB(name) _AB (name, BITS) +# define _AB(name, bits) __AB (name, bits) +# define __AB(name, bits) name##bits +# define E(name) _E (name, BITS) +# define _E(name, bits) __E (name, bits) +# define __E(name, bits) Elf##bits##_##name +# define SWAP(val) \ + ({ __typeof (val) __res; \ + if (((ehdr.e_ident[EI_DATA] == ELFDATA2MSB \ + && BYTE_ORDER == LITTLE_ENDIAN) \ + || (ehdr.e_ident[EI_DATA] == ELFDATA2LSB \ + && BYTE_ORDER == BIG_ENDIAN)) \ + && sizeof (val) != 1) \ + { \ + if (sizeof (val) == 2) \ + __res = bswap_16 (val); \ + else if (sizeof (val) == 4) \ + __res = bswap_32 (val); \ + else \ + __res = bswap_64 (val); \ + } \ + else \ + __res = (val); \ + __res; }) + + +static int +AB(handle_file) (const char *fname, int fd) +{ + E(Ehdr) ehdr; + + if (pread (fd, &ehdr, sizeof (ehdr), 0) != sizeof (ehdr)) + { + read_error: + printf ("%s: read error: %m\n", fname); + return 1; + } + + const size_t phnum = SWAP (ehdr.e_phnum); + const size_t phentsize = SWAP (ehdr.e_phentsize); + + /* Read the program header. */ + E(Phdr) *phdr = alloca (phentsize * phnum); + if (pread (fd, phdr, phentsize * phnum, SWAP (ehdr.e_phoff)) + != phentsize * phnum) + goto read_error; + + /* Search for the PT_DYNAMIC entry. */ + size_t cnt; + for (cnt = 0; cnt < phnum; ++cnt) + if (SWAP (phdr[cnt].p_type) == PT_DYNAMIC) + break; + + if (cnt == phnum) + { + printf ("%s: no DYNAMIC segment found\n", fname); + return 1; + } + + /* Read the dynamic segment. */ + size_t pmemsz = SWAP(phdr[cnt].p_memsz); + E(Dyn) *dyn = alloca (pmemsz); + if (pread (fd, dyn, pmemsz, SWAP(phdr[cnt].p_offset)) != pmemsz) + goto read_error; + + /* Search for an DT_TEXTREL entry of DT_FLAGS with the DF_TEXTREL + bit set. */ + for (cnt = 0; (cnt + 1) * sizeof (E(Dyn)) - 1 < pmemsz; ++cnt) + { + unsigned int tag = SWAP (dyn[cnt].d_tag); + + if (tag == DT_NULL) + /* We reached the end. */ + break; + + if (tag == DT_TEXTREL + || (tag == DT_FLAGS + && (SWAP (dyn[cnt].d_un.d_val) & DF_TEXTREL) != 0)) + { + /* Urgh! The DSO has text relocations. */ + printf ("%s: text relocations used\n", fname); + return 1; + } + } + + printf ("%s: OK\n", fname); + + return 0; +} + +# undef BITS +#else + +# define BITS 32 +# include "check-textrel.c" + +# define BITS 64 +# include "check-textrel.c" + + +static int +handle_file (const char *fname) +{ + int fd = open (fname, O_RDONLY); + if (fd == -1) + { + printf ("cannot open %s: %m\n", fname); + return 1; + } + + /* Read was is supposed to be the ELF header. Read the initial + bytes to determine whether this is a 32 or 64 bit file. */ + char ident[EI_NIDENT]; + if (read (fd, ident, EI_NIDENT) != EI_NIDENT) + { + printf ("%s: read error: %m\n", fname); + close (fd); + return 1; + } + + if (memcmp (&ident[EI_MAG0], ELFMAG, SELFMAG) != 0) + { + printf ("%s: not an ELF file\n", fname); + close (fd); + return 1; + } + + int result; + if (ident[EI_CLASS] == ELFCLASS64) + result = handle_file64 (fname, fd); + else + result = handle_file32 (fname, fd); + + close (fd); + + return result; +} + + +int +main (int argc, char *argv[]) +{ + int cnt; + int result = 0; + + for (cnt = 1; cnt < argc; ++cnt) + result |= handle_file (argv[cnt]); + + return result; +} +#endif diff -durpN glibc-2.3.1/elf/dl-close.c glibc-2.3.2/elf/dl-close.c --- glibc-2.3.1/elf/dl-close.c 2002-08-07 19:08:12.000000000 -0700 +++ glibc-2.3.2/elf/dl-close.c 2003-01-27 12:44:03.000000000 -0800 @@ -1,5 +1,5 @@ /* Close a shared object opened by `_dl_open'. - Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1996-2002, 2003 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 @@ -36,35 +36,48 @@ typedef void (*fini_t) (void); #ifdef USE_TLS /* Returns true we an non-empty was found. */ static bool -remove_slotinfo (size_t idx, struct dtv_slotinfo_list *listp, size_t disp) +remove_slotinfo (size_t idx, struct dtv_slotinfo_list *listp, size_t disp, + bool should_be_there) { if (idx - disp >= listp->len) { - /* There must be a next entry. Otherwise would the index be wrong. */ - assert (listp->next != NULL); - - if (remove_slotinfo (idx, listp->next, disp + listp->len)) - return true; + if (listp->next == NULL) + { + /* The index is not actually valid in the slotinfo list, + because this object was closed before it was fully set + up due to some error. */ + assert (! should_be_there); + } + else + { + if (remove_slotinfo (idx, listp->next, disp + listp->len, + should_be_there)) + return true; - /* No non-empty entry. Search from the end of this elements - slotinfo array. */ - idx = disp + listp->len; + /* No non-empty entry. Search from the end of this element's + slotinfo array. */ + idx = disp + listp->len; + } } else { struct link_map *old_map = listp->slotinfo[idx - disp].map; - assert (old_map != NULL); - /* Mark the entry as unused. */ - listp->slotinfo[idx - disp].gen = GL(dl_tls_generation) + 1; - listp->slotinfo[idx - disp].map = NULL; + /* The entry might still be in its unused state if we are closing an + object that wasn't fully set up. */ + if (__builtin_expect (old_map != NULL, 1)) + { + assert (old_map->l_tls_modid == idx); + + /* Mark the entry as unused. */ + listp->slotinfo[idx - disp].gen = GL(dl_tls_generation) + 1; + listp->slotinfo[idx - disp].map = NULL; + } /* If this is not the last currently used entry no need to look further. */ - if (old_map->l_tls_modid != GL(dl_tls_max_dtv_idx)) + if (idx != GL(dl_tls_max_dtv_idx)) return true; - - assert (old_map->l_tls_modid == GL(dl_tls_max_dtv_idx)); } while (idx - disp > disp == 0 ? 1 + GL(dl_tls_static_nelem) : 0) @@ -93,7 +106,9 @@ _dl_close (void *_map) { struct link_map **rellist; unsigned int nrellist; + unsigned int nhandled; struct reldep_list *next; + bool handled[0]; } *reldeps = NULL; struct link_map **list; struct link_map *map = _map; @@ -113,7 +128,7 @@ _dl_close (void *_map) _dl_signal_error (0, map->l_name, NULL, N_("shared object not open")); /* Acquire the lock. */ - __libc_lock_lock_recursive (GL(dl_load_lock)); + __rtld_lock_lock_recursive (GL(dl_load_lock)); /* Decrement the reference count. */ if (map->l_opencount > 1 || map->l_type != lt_loaded) @@ -123,10 +138,10 @@ _dl_close (void *_map) _dl_debug_printf ("\nclosing file=%s; opencount == %u\n", map->l_name, map->l_opencount); - /* One decrement the object itself, not the dependencies. */ + /* Decrement the object's reference counter, not the dependencies'. */ --map->l_opencount; - __libc_lock_unlock_recursive (GL(dl_load_lock)); + __rtld_lock_unlock_recursive (GL(dl_load_lock)); return; } @@ -140,6 +155,7 @@ _dl_close (void *_map) for (i = 1; list[i] != NULL; ++i) ; + unsigned int nopencount = i; new_opencount = (unsigned int *) alloca (i * sizeof (unsigned int)); for (i = 0; list[i] != NULL; ++i) @@ -149,24 +165,54 @@ _dl_close (void *_map) } --new_opencount[0]; for (i = 1; list[i] != NULL; ++i) - if ((! (list[i]->l_flags_1 & DF_1_NODELETE) || ! list[i]->l_init_called) + if ((list[i]->l_flags_1 & DF_1_NODELETE) == 0 /* Decrement counter. */ - && --new_opencount[i] == 0 - /* Test whether this object was also loaded directly. */ - && list[i]->l_searchlist.r_list != NULL) + && --new_opencount[i] == 0) { - /* In this case we have the decrement all the dependencies of - this object. They are all in MAP's dependency list. */ - unsigned int j; - struct link_map **dep_list = list[i]->l_searchlist.r_list; + void mark_removed (struct link_map *remmap) + { + /* Test whether this object was also loaded directly. */ + if (remmap->l_searchlist.r_list != NULL) + { + /* In this case we have to decrement all the dependencies of + this object. They are all in MAP's dependency list. */ + unsigned int j; + struct link_map **dep_list = remmap->l_searchlist.r_list; - for (j = 1; j < list[i]->l_searchlist.r_nlist; ++j) - if (! (dep_list[j]->l_flags_1 & DF_1_NODELETE) - || ! dep_list[j]->l_init_called) - { - assert (dep_list[j]->l_idx < map->l_searchlist.r_nlist); - --new_opencount[dep_list[j]->l_idx]; - } + for (j = 1; j < remmap->l_searchlist.r_nlist; ++j) + if (! (dep_list[j]->l_flags_1 & DF_1_NODELETE) + || ! dep_list[j]->l_init_called) + { + assert (dep_list[j]->l_idx < map->l_searchlist.r_nlist); + if (--new_opencount[dep_list[j]->l_idx] == 0) + { + assert (dep_list[j]->l_type == lt_loaded); + mark_removed (dep_list[j]); + } + } + } + + if (remmap->l_reldeps != NULL) + { + unsigned int j; + for (j = 0; j < remmap->l_reldepsact; ++j) + { + /* Find out whether this object is in our list. */ + if (remmap->l_reldeps[j]->l_idx < nopencount + && (list[remmap->l_reldeps[j]->l_idx] + == remmap->l_reldeps[j])) + /* Yes, it is. */ + if (--new_opencount[remmap->l_reldeps[j]->l_idx] == 0) + { + /* This one is now gone, too. */ + assert (remmap->l_reldeps[j]->l_type == lt_loaded); + mark_removed (remmap->l_reldeps[j]); + } + } + } + } + + mark_removed (list[i]); } assert (new_opencount[0] == 0); @@ -175,57 +221,97 @@ _dl_close (void *_map) { struct link_map *imap = list[i]; if (new_opencount[i] == 0 && imap->l_type == lt_loaded - && (imap->l_info[DT_FINI] || imap->l_info[DT_FINI_ARRAY]) - && (! (imap->l_flags_1 & DF_1_NODELETE) || ! imap->l_init_called) - /* Skip any half-cooked objects that were never initialized. */ - && imap->l_init_called) + && (imap->l_flags_1 & DF_1_NODELETE) == 0) { /* When debugging print a message first. */ if (__builtin_expect (GL(dl_debug_mask) & DL_DEBUG_IMPCALLS, 0)) _dl_debug_printf ("\ncalling fini: %s\n\n", imap->l_name); - /* Call its termination function. */ - if (imap->l_info[DT_FINI_ARRAY] != NULL) + /* Call its termination function. Do not do it for + half-cooked objects. */ + if (imap->l_init_called) { - ElfW(Addr) *array = - (ElfW(Addr) *) (imap->l_addr - + imap->l_info[DT_FINI_ARRAY]->d_un.d_ptr); - unsigned int sz = (imap->l_info[DT_FINI_ARRAYSZ]->d_un.d_val - / sizeof (ElfW(Addr))); - unsigned int cnt; + if (imap->l_info[DT_FINI_ARRAY] != NULL) + { + ElfW(Addr) *array = + (ElfW(Addr) *) (imap->l_addr + + imap->l_info[DT_FINI_ARRAY]->d_un.d_ptr); + unsigned int sz = (imap->l_info[DT_FINI_ARRAYSZ]->d_un.d_val + / sizeof (ElfW(Addr))); - for (cnt = 0; cnt < sz; ++cnt) - ((fini_t) (imap->l_addr + array[cnt])) (); + while (sz-- > 0) + ((fini_t) array[sz]) (); + } + + /* Next try the old-style destructor. */ + if (imap->l_info[DT_FINI] != NULL) + (*(void (*) (void)) DL_DT_FINI_ADDRESS + (imap, ((void *) imap->l_addr + + imap->l_info[DT_FINI]->d_un.d_ptr))) (); } - /* Next try the old-style destructor. */ - if (imap->l_info[DT_FINI] != NULL) - (*(void (*) (void)) DL_DT_FINI_ADDRESS - (imap, (void *) imap->l_addr - + imap->l_info[DT_FINI]->d_un.d_ptr)) (); + /* This object must not be used anymore. We must remove the + reference from the scope. */ + unsigned int j; + struct link_map **searchlist = map->l_searchlist.r_list; + unsigned int nsearchlist = map->l_searchlist.r_nlist; + +#ifndef NDEBUG + bool found = false; +#endif + for (j = 0; j < nsearchlist; ++j) + if (imap == searchlist[j]) + { + /* This is the object to remove. Copy all the + following ones. */ + while (++j < nsearchlist) + searchlist[j - 1] = searchlist[j]; + + searchlist[j - 1] = NULL; + + --map->l_searchlist.r_nlist; + +#ifndef NDEBUG + found = true; +#endif + break; + } + assert (found); } - else if (new_opencount[i] != 0 && imap->l_type == lt_loaded) + else if (new_opencount[i] != 0 && imap->l_type == lt_loaded + && imap->l_searchlist.r_list == NULL + && imap->l_initfini != NULL) { - /* The object is still used. But the object we are unloading - right now is responsible for loading it and therefore we - have the search list of the current object in its scope. - Remove it. */ - struct r_scope_elem **runp = imap->l_scope; + /* The object is still used. But the object we are + unloading right now is responsible for loading it. If + the current object does not have it's own scope yet we + have to create one. This has to be done before running + the finalizers. - while (*runp != NULL) - if (*runp == &map->l_searchlist) + To do this count the number of dependencies. */ + unsigned int cnt; + for (cnt = 1; imap->l_initfini[cnt] != NULL; ++cnt) + if (imap->l_initfini[cnt]->l_idx >= i + && imap->l_initfini[cnt]->l_idx < nopencount) + ++new_opencount[imap->l_initfini[cnt]->l_idx]; + else + ++imap->l_initfini[cnt]->l_opencount; + + /* We simply reuse the l_initfini list. */ + imap->l_searchlist.r_list = &imap->l_initfini[cnt + 1]; + imap->l_searchlist.r_nlist = cnt; + + for (cnt = 0; imap->l_scope[cnt] != NULL; ++cnt) + if (imap->l_scope[cnt] == &map->l_searchlist) { - /* Copy all later elements. */ - while ((runp[0] = runp[1]) != NULL) - ++runp; + imap->l_scope[cnt] = &imap->l_searchlist; break; } - else - ++runp; } /* Store the new l_opencount value. */ imap->l_opencount = new_opencount[i]; + /* Just a sanity check. */ assert (imap->l_type == lt_loaded || imap->l_opencount > 0); } @@ -234,6 +320,11 @@ _dl_close (void *_map) _r_debug.r_state = RT_DELETE; _dl_debug_state (); +#ifdef USE_TLS + size_t tls_free_start, tls_free_end; + tls_free_start = tls_free_end = GL(dl_tls_static_used); +#endif + /* Check each element of the search list to see if all references to it are gone. */ for (i = 0; list[i] != NULL; ++i) @@ -263,16 +354,40 @@ _dl_close (void *_map) } #ifdef USE_TLS - /* Remove the object from the dtv slotinfo array if it uses - TLS. */ + /* Remove the object from the dtv slotinfo array if it uses TLS. */ if (__builtin_expect (imap->l_tls_blocksize > 0, 0)) { any_tls = true; if (! remove_slotinfo (imap->l_tls_modid, - GL(dl_tls_dtv_slotinfo_list), 0)) + GL(dl_tls_dtv_slotinfo_list), 0, + imap->l_init_called)) /* All dynamically loaded modules with TLS are unloaded. */ GL(dl_tls_max_dtv_idx) = GL(dl_tls_static_nelem); + + if (imap->l_tls_offset != 0) + { + /* Collect a contiguous chunk built from the objects in + this search list, going in either direction. When the + whole chunk is at the end of the used area then we can + reclaim it. */ + if (imap->l_tls_offset == tls_free_end) + /* Extend the contiguous chunk being reclaimed. */ + tls_free_end += imap->l_tls_blocksize; + else if (imap->l_tls_offset + imap->l_tls_blocksize + == tls_free_start) + /* Extend the chunk backwards. */ + tls_free_start = imap->l_tls_offset; + else + { + /* This isn't contiguous with the last chunk freed. + One of them will be leaked. */ + if (tls_free_end == GL(dl_tls_static_used)) + GL(dl_tls_static_used) = tls_free_start; + tls_free_start = imap->l_tls_offset; + tls_free_end = tls_free_start + imap->l_tls_blocksize; + } + } } #endif @@ -297,9 +412,8 @@ _dl_close (void *_map) if (imap->l_next) imap->l_next->l_prev = imap->l_prev; - if (imap->l_versions != NULL) - free (imap->l_versions); - if (imap->l_origin != NULL && imap->l_origin != (char *) -1) + free (imap->l_versions); + if (imap->l_origin != (char *) -1) free ((char *) imap->l_origin); /* If the object has relocation dependencies save this @@ -308,11 +422,26 @@ _dl_close (void *_map) { struct reldep_list *newrel; - newrel = (struct reldep_list *) alloca (sizeof (*reldeps)); + newrel = (struct reldep_list *) alloca (sizeof (*reldeps) + + (imap->l_reldepsact + * sizeof (bool))); newrel->rellist = imap->l_reldeps; newrel->nrellist = imap->l_reldepsact; newrel->next = reldeps; + newrel->nhandled = imap->l_reldepsact; + unsigned int j; + for (j = 0; j < imap->l_reldepsact; ++j) + { + /* Find out whether this object is in our list. */ + if (imap->l_reldeps[j]->l_idx < nopencount + && list[imap->l_reldeps[j]->l_idx] == imap->l_reldeps[j]) + /* Yes, it is. */ + newrel->handled[j] = true; + else + newrel->handled[j] = false; + } + reldeps = newrel; } @@ -331,7 +460,7 @@ _dl_close (void *_map) /* Remove the searchlists. */ if (imap != map) - free (imap->l_initfini); + free (imap->l_initfini); /* Remove the scope array if we allocated it. */ if (imap->l_scope != imap->l_scope_mem) @@ -350,11 +479,15 @@ _dl_close (void *_map) } #ifdef USE_TLS - /* If we removed any object which uses TLS bumnp the generation - counter. */ + /* If we removed any object which uses TLS bump the generation counter. */ if (any_tls) - if (__builtin_expect (++GL(dl_tls_generation) == 0, 0)) - __libc_fatal (_("TLS generation counter wrapped! Please send report with the 'glibcbug' script.")); + { + if (__builtin_expect (++GL(dl_tls_generation) == 0, 0)) + __libc_fatal (_("TLS generation counter wrapped! Please send report with the 'glibcbug' script.")); + + if (tls_free_end == GL(dl_tls_static_used)) + GL(dl_tls_static_used) = tls_free_start; + } #endif /* Notify the debugger those objects are finalized and gone. */ @@ -366,7 +499,12 @@ _dl_close (void *_map) while (__builtin_expect (reldeps != NULL, 0)) { while (reldeps->nrellist-- > 0) - _dl_close (reldeps->rellist[reldeps->nrellist]); + /* Some of the relocation dependencies might be on the + dependency list of the object we are closing right now. + They were already handled. Do not close them again. */ + if (reldeps->nrellist < reldeps->nhandled + && ! reldeps->handled[reldeps->nrellist]) + _dl_close (reldeps->rellist[reldeps->nrellist]); free (reldeps->rellist); @@ -376,43 +514,42 @@ _dl_close (void *_map) free (list); /* Release the lock. */ - __libc_lock_unlock_recursive (GL(dl_load_lock)); + __rtld_lock_unlock_recursive (GL(dl_load_lock)); } libc_hidden_def (_dl_close) #ifdef USE_TLS static bool -free_slotinfo (struct dtv_slotinfo_list *elemp) +free_slotinfo (struct dtv_slotinfo_list **elemp) { size_t cnt; - if (elemp == NULL) + if (*elemp == NULL) /* Nothing here, all is removed (or there never was anything). */ return true; - if (!free_slotinfo (elemp->next)) + if (!free_slotinfo (&(*elemp)->next)) /* We cannot free the entry. */ return false; - /* The least we could do is remove next element (if there was any). */ - elemp->next = NULL; + /* That cleared our next pointer for us. */ - for (cnt = 0; cnt < elemp->len; ++cnt) - if (elemp->slotinfo[cnt].map != NULL) + for (cnt = 0; cnt < (*elemp)->len; ++cnt) + if ((*elemp)->slotinfo[cnt].map != NULL) /* Still used. */ return false; /* We can remove the list element. */ - free (elemp); + free (*elemp); + *elemp = NULL; return true; } #endif -static void -free_mem (void) +libc_freeres_fn (free_mem) { if (__builtin_expect (GL(dl_global_scope_alloc), 0) != 0 && GL(dl_main_searchlist)->r_nlist == GL(dl_initial_searchlist).r_nlist) @@ -431,13 +568,20 @@ free_mem (void) } #ifdef USE_TLS - /* Free the memory allocated for the dtv slotinfo array. We can do - this only if all modules which used this memory are unloaded. - Also, the first element of the list does not have to be - deallocated. It was allocated in the dynamic linker (i.e., with - a different malloc). */ - if (free_slotinfo (GL(dl_tls_dtv_slotinfo_list)->next)) - GL(dl_tls_dtv_slotinfo_list)->next = NULL; + if (USE___THREAD || GL(dl_tls_dtv_slotinfo_list) != NULL) + { + /* Free the memory allocated for the dtv slotinfo array. We can do + this only if all modules which used this memory are unloaded. */ +# ifdef SHARED + if (GL(dl_initial_dtv) == NULL) + /* There was no initial TLS setup, it was set up later when + it used the normal malloc. */ + free_slotinfo (&GL(dl_tls_dtv_slotinfo_list)); +# endif + /* The first element of the list does not have to be deallocated. + It was allocated in the dynamic linker (i.e., with a different + malloc), and in the static library it's in .bss space. */ + free_slotinfo (&GL(dl_tls_dtv_slotinfo_list)->next); + } #endif } -text_set_element (__libc_subfreeres, free_mem); diff -durpN glibc-2.3.1/elf/dl-conflict.c glibc-2.3.2/elf/dl-conflict.c --- glibc-2.3.1/elf/dl-conflict.c 2002-08-26 21:52:34.000000000 -0700 +++ glibc-2.3.2/elf/dl-conflict.c 2002-10-17 10:05:51.000000000 -0700 @@ -44,6 +44,7 @@ _dl_resolve_conflicts (struct link_map * /* This macro is used as a callback from the ELF_DYNAMIC_RELOCATE code. */ #define RESOLVE_MAP(ref, version, flags) (*ref = NULL, NULL) #define RESOLVE(ref, version, flags) (*ref = NULL, 0) +#define CHECK_STATIC_TLS(ref_map, sym_map) ((void) 0) #define RESOLVE_CONFLICT_FIND_MAP(map, r_offset) \ do { \ while ((resolve_conflict_map->l_map_end < (ElfW(Addr)) (r_offset)) \ diff -durpN glibc-2.3.1/elf/dl-deps.c glibc-2.3.2/elf/dl-deps.c --- glibc-2.3.1/elf/dl-deps.c 2002-08-21 15:35:39.000000000 -0700 +++ glibc-2.3.2/elf/dl-deps.c 2003-01-10 17:46:33.000000000 -0800 @@ -1,5 +1,5 @@ /* Load the dependencies of a mapped object. - Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1996-2001, 2002, 2003 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 @@ -455,12 +455,14 @@ _dl_map_object_deps (struct link_map *ma needed[nneeded++] = NULL; l->l_initfini = (struct link_map **) - malloc ((nneeded + 1) * sizeof needed[0]); + malloc ((2 * nneeded + 1) * sizeof needed[0]); if (l->l_initfini == NULL) INTUSE(_dl_signal_error) (ENOMEM, map->l_name, NULL, N_("cannot allocate dependency list")); l->l_initfini[0] = l; memcpy (&l->l_initfini[1], needed, nneeded * sizeof needed[0]); + memcpy (&l->l_initfini[nneeded + 1], l->l_initfini, + nneeded * sizeof needed[0]); } /* If we have no auxiliary objects just go on to the next map. */ diff -durpN glibc-2.3.1/elf/dl-error.c glibc-2.3.2/elf/dl-error.c --- glibc-2.3.1/elf/dl-error.c 2002-09-09 17:31:00.000000000 -0700 +++ glibc-2.3.2/elf/dl-error.c 2002-11-24 18:23:23.000000000 -0800 @@ -23,7 +23,6 @@ #include #include #include -#include /* This structure communicates state between _dl_catch_error and _dl_signal_error. */ @@ -38,11 +37,8 @@ struct catch calls can come from `_dl_map_object_deps', `_dlerror_run', or from any of the libc functionality which loads dynamic objects (NSS, iconv). Therefore we have to be prepared to save the state in thread-local - memory. */ - -__libc_tsd_define (static, DL_ERROR) -#define tsd_getspecific() __libc_tsd_get (DL_ERROR) -#define tsd_setspecific(data) __libc_tsd_set (DL_ERROR, (data)) + memory. The _dl_error_catch_tsd function pointer is reset by the thread + library so that it returns the address of a thread-local variable. */ /* This message we return as a last resort. We define the string in a @@ -61,6 +57,12 @@ INTVARDEF(_dl_out_of_memory) global variable. */ static receiver_fct receiver; +#ifdef _LIBC_REENTRANT +# define CATCH_HOOK (*(struct catch **) (*GL(dl_error_catch_tsd)) ()) +#else +static struct catch *catch_hook; +# define CATCH_HOOK catch_hook +#endif void internal_function @@ -72,7 +74,7 @@ _dl_signal_error (int errcode, const cha if (! errstring) errstring = N_("DYNAMIC LINKER BUG!!!"); - lcatch = tsd_getspecific (); + lcatch = CATCH_HOOK; if (objname == NULL) objname = ""; if (lcatch != NULL) @@ -151,20 +153,21 @@ _dl_catch_error (const char **objname, c inefficient. So we initialize `c' by hand. */ c.errstring = NULL; - old = tsd_getspecific (); + struct catch **const catchp = &CATCH_HOOK; + old = *catchp; errcode = setjmp (c.env); if (__builtin_expect (errcode, 0) == 0) { - tsd_setspecific (&c); + *catchp = &c; (*operate) (args); - tsd_setspecific (old); + *catchp = old; *objname = NULL; *errstring = NULL; return 0; } /* We get here only if we longjmp'd out of OPERATE. */ - tsd_setspecific (old); + *catchp = old; *objname = c.objname; *errstring = c.errstring; return errcode == -1 ? 0 : errcode; @@ -176,18 +179,19 @@ void internal_function _dl_receive_error (receiver_fct fct, void (*operate) (void *), void *args) { + struct catch **const catchp = &CATCH_HOOK; struct catch *old_catch; receiver_fct old_receiver; - old_catch = tsd_getspecific (); + old_catch = *catchp; old_receiver = receiver; /* Set the new values. */ - tsd_setspecific (NULL); + *catchp = NULL; receiver = fct; (*operate) (args); - tsd_setspecific (old_catch); + *catchp = old_catch; receiver = old_receiver; } diff -durpN glibc-2.3.1/elf/dl-fini.c glibc-2.3.2/elf/dl-fini.c --- glibc-2.3.1/elf/dl-fini.c 2002-03-11 00:31:59.000000000 -0800 +++ glibc-2.3.2/elf/dl-fini.c 2002-11-08 11:35:00.000000000 -0800 @@ -157,18 +157,19 @@ _dl_fini (void) ElfW(Addr) *array = (ElfW(Addr) *) (l->l_addr + l->l_info[DT_FINI_ARRAY]->d_un.d_ptr); - unsigned int sz = (l->l_info[DT_FINI_ARRAYSZ]->d_un.d_val - / sizeof (ElfW(Addr))); - unsigned int cnt; - - for (cnt = 0; cnt < sz; ++cnt) - ((fini_t) (l->l_addr + array[cnt])) (); + unsigned int i = (l->l_info[DT_FINI_ARRAYSZ]->d_un.d_val + / sizeof (ElfW(Addr))); + while (i-- > 0) + ((fini_t) array[i]) (); } /* Next try the old-style destructor. */ if (l->l_info[DT_FINI] != NULL) ((fini_t) DL_DT_FINI_ADDRESS (l, l->l_addr + l->l_info[DT_FINI]->d_un.d_ptr)) (); } + + /* Correct the previous increment. */ + --l->l_opencount; } if (__builtin_expect (GL(dl_debug_mask) & DL_DEBUG_STATISTICS, 0)) diff -durpN glibc-2.3.1/elf/dl-fxstat64.c glibc-2.3.2/elf/dl-fxstat64.c --- glibc-2.3.1/elf/dl-fxstat64.c 2002-02-01 13:16:41.000000000 -0800 +++ glibc-2.3.2/elf/dl-fxstat64.c 1969-12-31 16:00:00.000000000 -0800 @@ -1,25 +0,0 @@ -/* Dynamic linker's private version of __fxstat64. - Copyright (C) 2002 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 Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -/* This special file is needed because some fxstat64.c implementations - use versioning for __fxstat64 and we need to keep it local to - the dynamic linker. */ - -#define RTLD_STAT64 -#include diff -durpN glibc-2.3.1/elf/dl-iteratephdr.c glibc-2.3.2/elf/dl-iteratephdr.c --- glibc-2.3.1/elf/dl-iteratephdr.c 2002-08-26 21:52:34.000000000 -0700 +++ glibc-2.3.2/elf/dl-iteratephdr.c 2002-12-05 22:42:30.000000000 -0800 @@ -32,7 +32,7 @@ __dl_iterate_phdr (int (*callback) (stru int ret = 0; /* Make sure we are alone. */ - __libc_lock_lock_recursive (GL(dl_load_lock)); + __rtld_lock_lock_recursive (GL(dl_load_lock)); for (l = GL(dl_loaded); l != NULL; l = l->l_next) { @@ -49,7 +49,7 @@ __dl_iterate_phdr (int (*callback) (stru } /* Release the lock. */ - __libc_lock_unlock_recursive (GL(dl_load_lock)); + __rtld_lock_unlock_recursive (GL(dl_load_lock)); return ret; } diff -durpN glibc-2.3.1/elf/dl-libc.c glibc-2.3.2/elf/dl-libc.c --- glibc-2.3.1/elf/dl-libc.c 2002-04-13 00:34:56.000000000 -0700 +++ glibc-2.3.2/elf/dl-libc.c 2002-11-19 00:38:32.000000000 -0800 @@ -54,6 +54,8 @@ struct do_dlopen_args { /* Argument to do_dlopen. */ const char *name; + /* Opening mode. */ + int mode; /* Return from do_dlopen. */ struct link_map *map; @@ -75,7 +77,7 @@ do_dlopen (void *ptr) { struct do_dlopen_args *args = (struct do_dlopen_args *) ptr; /* Open and relocate the shared object. */ - args->map = _dl_open (args->name, RTLD_LAZY, NULL); + args->map = _dl_open (args->name, args->mode, NULL); } static void @@ -97,34 +99,34 @@ do_dlclose (void *ptr) /* ... and these functions call dlerror_run. */ void * -__libc_dlopen (const char *__name) +__libc_dlopen_mode (const char *name, int mode) { struct do_dlopen_args args; - args.name = __name; + args.name = name; + args.mode = mode; return (dlerror_run (do_dlopen, &args) ? NULL : (void *) args.map); } void * -__libc_dlsym (void *__map, const char *__name) +__libc_dlsym (void *map, const char *name) { struct do_dlsym_args args; - args.map = __map; - args.name = __name; + args.map = map; + args.name = name; return (dlerror_run (do_dlsym, &args) ? NULL : (void *) (DL_SYMBOL_ADDRESS (args.loadbase, args.ref))); } int -__libc_dlclose (void *__map) +__libc_dlclose (void *map) { - return dlerror_run (do_dlclose, __map); + return dlerror_run (do_dlclose, map); } -static void -free_mem (void) +libc_freeres_fn (free_mem) { struct link_map *l; struct r_search_path_elem *d; @@ -154,4 +156,3 @@ free_mem (void) } } } -text_set_element (__libc_subfreeres, free_mem); diff -durpN glibc-2.3.1/elf/dl-load.c glibc-2.3.2/elf/dl-load.c --- glibc-2.3.1/elf/dl-load.c 2002-09-12 15:08:11.000000000 -0700 +++ glibc-2.3.2/elf/dl-load.c 2003-01-16 10:14:41.000000000 -0800 @@ -109,7 +109,7 @@ ELF_PREFERRED_ADDRESS_DATA; struct filebuf { ssize_t len; - char buf[1024]; + char buf[1024] __attribute__ ((aligned (__alignof (ElfW(Ehdr))))); }; /* This is the decomposed LD_LIBRARY_PATH search path. */ @@ -202,8 +202,8 @@ _dl_dst_count (const char *name, int is_ ++name; if ((len = is_dst (start, name, "ORIGIN", is_path, INTUSE(__libc_enable_secure))) != 0 - || ((len = is_dst (start, name, "PLATFORM", is_path, 0)) - != 0)) + || (len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0 + || (len = is_dst (start, name, "LIB", is_path, 0)) != 0) ++cnt; name = strchr (name + len, '$'); @@ -239,9 +239,10 @@ _dl_dst_substitute (struct link_map *l, if ((len = is_dst (start, name, "ORIGIN", is_path, INTUSE(__libc_enable_secure))) != 0) repl = l->l_origin; - else if ((len = is_dst (start, name, "PLATFORM", is_path, - 0)) != 0) + else if ((len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0) repl = GL(dl_platform); + else if ((len = is_dst (start, name, "LIB", is_path, 0)) != 0) + repl = DL_DST_LIB; if (repl != NULL && repl != (const char *) -1) { @@ -512,8 +513,7 @@ decompose_rpath (struct r_search_path_st { /* This object is on the list of objects for which the RUNPATH and RPATH must not be used. */ - result = (struct r_search_path_elem **) - malloc (sizeof (*result)); + result = calloc (1, sizeof *result); if (result == NULL) { signal_error_cache: @@ -522,8 +522,6 @@ decompose_rpath (struct r_search_path_st INTUSE(_dl_signal_error) (ENOMEM, NULL, NULL, errstring); } - result[0] = NULL; - sps->dirs = result; sps->malloced = 1; @@ -916,50 +914,103 @@ _dl_map_object_from_fd (const char *name goto call_lose; } - { - struct loadcmd *c = &loadcmds[nloadcmds++]; - c->mapstart = ph->p_vaddr & ~(ph->p_align - 1); - c->mapend = ((ph->p_vaddr + ph->p_filesz + GL(dl_pagesize) - 1) - & ~(GL(dl_pagesize) - 1)); - c->dataend = ph->p_vaddr + ph->p_filesz; - c->allocend = ph->p_vaddr + ph->p_memsz; - c->mapoff = ph->p_offset & ~(ph->p_align - 1); + c = &loadcmds[nloadcmds++]; + c->mapstart = ph->p_vaddr & ~(ph->p_align - 1); + c->mapend = ((ph->p_vaddr + ph->p_filesz + GL(dl_pagesize) - 1) + & ~(GL(dl_pagesize) - 1)); + c->dataend = ph->p_vaddr + ph->p_filesz; + c->allocend = ph->p_vaddr + ph->p_memsz; + c->mapoff = ph->p_offset & ~(ph->p_align - 1); - /* Optimize a common case. */ + /* Optimize a common case. */ #if (PF_R | PF_W | PF_X) == 7 && (PROT_READ | PROT_WRITE | PROT_EXEC) == 7 - c->prot = (PF_TO_PROT - >> ((ph->p_flags & (PF_R | PF_W | PF_X)) * 4)) & 0xf; + c->prot = (PF_TO_PROT + >> ((ph->p_flags & (PF_R | PF_W | PF_X)) * 4)) & 0xf; #else - c->prot = 0; - if (ph->p_flags & PF_R) - c->prot |= PROT_READ; - if (ph->p_flags & PF_W) - c->prot |= PROT_WRITE; - if (ph->p_flags & PF_X) - c->prot |= PROT_EXEC; + c->prot = 0; + if (ph->p_flags & PF_R) + c->prot |= PROT_READ; + if (ph->p_flags & PF_W) + c->prot |= PROT_WRITE; + if (ph->p_flags & PF_X) + c->prot |= PROT_EXEC; #endif - } break; case PT_TLS: #ifdef USE_TLS - if (ph->p_memsz > 0) - { - l->l_tls_blocksize = ph->p_memsz; - l->l_tls_align = ph->p_align; - l->l_tls_initimage_size = ph->p_filesz; - /* Since we don't know the load address yet only store the - offset. We will adjust it later. */ - l->l_tls_initimage = (void *) ph->p_vaddr; + if (ph->p_memsz == 0) + /* Nothing to do for an empty segment. */ + break; + l->l_tls_blocksize = ph->p_memsz; + l->l_tls_align = ph->p_align; + l->l_tls_initimage_size = ph->p_filesz; + /* Since we don't know the load address yet only store the + offset. We will adjust it later. */ + l->l_tls_initimage = (void *) ph->p_vaddr; + + /* If not loading the initial set of shared libraries, + check whether we should permit loading a TLS segment. */ + if (__builtin_expect (l->l_type == lt_library, 1) + /* If GL(dl_tls_dtv_slotinfo_list) == NULL, then rtld.c did + not set up TLS data structures, so don't use them now. */ + || __builtin_expect (GL(dl_tls_dtv_slotinfo_list) != NULL, 1)) + { /* Assign the next available module ID. */ l->l_tls_modid = _dl_next_tls_modid (); + break; } -#else + +# ifdef SHARED + if (l->l_prev == NULL) + /* We are loading the executable itself when the dynamic linker + was executed directly. The setup will happen later. */ + break; + + /* In a static binary there is no way to tell if we dynamically + loaded libpthread. */ + if (GL(dl_error_catch_tsd) == &_dl_initial_error_catch_tsd) +# endif + { + /* We have not yet loaded libpthread. + We can do the TLS setup right now! */ + + void *tcb; + + /* The first call allocates TLS bookkeeping data structures. + Then we allocate the TCB for the initial thread. */ + if (__builtin_expect (_dl_tls_setup (), 0) + || __builtin_expect ((tcb = _dl_allocate_tls (NULL)) == NULL, + 0)) + { + errval = ENOMEM; + errstring = N_("\ +cannot allocate TLS data structures for initial thread"); + goto call_lose; + } + + /* Now we install the TCB in the thread register. */ + errstring = TLS_INIT_TP (tcb, 0); + if (__builtin_expect (errstring == NULL, 1)) + { + /* Now we are all good. */ + l->l_tls_modid = ++GL(dl_tls_max_dtv_idx); + break; + } + + /* The kernel is too old or somesuch. */ + errval = 0; + _dl_deallocate_tls (tcb, 1); + goto call_lose; + } +#endif + /* Uh-oh, the binary expects TLS support but we cannot provide it. */ - _dl_fatal_printf ("cannot handle file '%s' with TLS data\n", name); -#endif + errval = 0; + errstring = N_("cannot handle TLS data"); + goto call_lose; break; } @@ -1174,11 +1225,7 @@ _dl_map_object_from_fd (const char *name /* Make sure we are not dlopen'ing an object that has the DF_1_NOOPEN flag set. */ - if ((__builtin_expect (l->l_flags_1 & DF_1_NOOPEN, 0) -#ifdef USE_TLS - || __builtin_expect (l->l_flags & DF_STATIC_TLS, 0) -#endif - ) + if (__builtin_expect (l->l_flags_1 & DF_1_NOOPEN, 0) && (mode & __RTLD_DLOPEN)) { /* We are not supposed to load this object. Free all resources. */ diff -durpN glibc-2.3.1/elf/dl-lookup.c glibc-2.3.2/elf/dl-lookup.c --- glibc-2.3.1/elf/dl-lookup.c 2002-09-26 19:47:09.000000000 -0700 +++ glibc-2.3.2/elf/dl-lookup.c 2003-01-11 01:51:49.000000000 -0800 @@ -1,5 +1,5 @@ /* Look up a symbol in the loaded objects. - Copyright (C) 1995,96,97,98,99,2000,2001,2002 Free Software Foundation, Inc. + Copyright (C) 1995-2002, 2003 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 @@ -90,17 +90,34 @@ add_dependency (struct link_map *undef_m unsigned int i; int result = 0; - /* Avoid self-references. */ + /* Avoid self-references and references to objects which cannot be + unloaded anyway. */ if (undef_map == map) return 0; + /* Make sure nobody can unload the object while we are at it. */ + __rtld_lock_lock_recursive (GL(dl_load_lock)); + /* Don't create cross-reference between modules which are dynamically loaded by the same dlopen() call. */ if (undef_map->l_opencount == 0 && map->l_opencount == 0) - return 0; + goto out; - /* Make sure nobody can unload the object while we are at it. */ - __libc_lock_lock_recursive (GL(dl_load_lock)); + /* Avoid references to objects which cannot be unloaded anyway. */ + if (map->l_type != lt_loaded + || (map->l_flags_1 & DF_1_NODELETE) != 0) + goto out; + + /* If the object with the undefined reference cannot be removed ever + just make sure the same is true for the object which contains the + definition. */ + if (undef_map->l_type != lt_loaded + || (undef_map->l_flags_1 & DF_1_NODELETE) != 0) + { + ++map->l_opencount; + map->l_flags |= DF_1_NODELETE; + goto out; + } /* Determine whether UNDEF_MAP already has a reference to MAP. First look in the normal dependencies. */ @@ -186,7 +203,7 @@ add_dependency (struct link_map *undef_m out: /* Release the lock. */ - __libc_lock_unlock_recursive (GL(dl_load_lock)); + __rtld_lock_unlock_recursive (GL(dl_load_lock)); return result; } diff -durpN glibc-2.3.1/elf/dl-minimal.c glibc-2.3.2/elf/dl-minimal.c --- glibc-2.3.1/elf/dl-minimal.c 2002-08-29 22:20:36.000000000 -0700 +++ glibc-2.3.2/elf/dl-minimal.c 2002-12-06 03:24:20.000000000 -0800 @@ -104,9 +104,10 @@ malloc (size_t n) void * weak_function calloc (size_t nmemb, size_t size) { - size_t total = nmemb * size; - void *result = malloc (total); - return memset (result, '\0', total); + /* New memory from the trivial malloc above is always already cleared. + (We make sure that's true in the rare occasion it might not be, + by clearing memory in free, below.) */ + return malloc (nmemb * size); } /* This will rarely be called. */ @@ -115,7 +116,12 @@ free (void *ptr) { /* We can free only the last block allocated. */ if (ptr == alloc_last_block) - alloc_ptr = alloc_last_block; + { + /* Since this is rare, we clear the freed block here + so that calloc can presume malloc returns cleared memory. */ + memset (alloc_last_block, '\0', alloc_ptr - alloc_last_block); + alloc_ptr = alloc_last_block; + } } /* This is only called with the most recent block returned by malloc. */ @@ -353,19 +359,3 @@ strong_alias (__strsep, __strsep_g) up to 36. We don't need this here. */ const char INTUSE(_itoa_lower_digits)[16] attribute_hidden = "0123456789abcdef"; - - - -#undef errno -/* The 'errno' in ld.so is not exported. */ -#if USE_TLS && HAVE___THREAD -extern __thread int errno attribute_hidden; -#else -extern int errno attribute_hidden; - -int * -__errno_location (void) -{ - return &errno; -} -#endif diff -durpN glibc-2.3.1/elf/dl-misc.c glibc-2.3.2/elf/dl-misc.c --- glibc-2.3.1/elf/dl-misc.c 2002-08-24 21:09:35.000000000 -0700 +++ glibc-2.3.2/elf/dl-misc.c 2003-01-08 18:55:46.000000000 -0800 @@ -1,5 +1,5 @@ /* Miscellaneous support functions for dynamic linker - Copyright (C) 1997,1998,1999,2000,2001,2002 Free Software Foundation, Inc. + Copyright (C) 1997-2002, 2003 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 @@ -30,7 +30,9 @@ #include #include #include +#include #include +#include #ifndef MAP_ANON /* This is the only dl-sysdep.c function that is actually needed at run-time @@ -80,7 +82,7 @@ _dl_sysdep_read_whole_file (const char * } -/* Bare-bone printf implementation. This function only knows about +/* Bare-bones printf implementation. This function only knows about the formats and flags needed and can handle only up to 64 stripes in the output. */ static void @@ -90,7 +92,7 @@ _dl_debug_vdprintf (int fd, int tag_p, c struct iovec iov[niovmax]; int niov = 0; pid_t pid = 0; - char pidbuf[7]; + char pidbuf[12]; while (*fmt != '\0') { @@ -104,17 +106,17 @@ _dl_debug_vdprintf (int fd, int tag_p, c { char *p; pid = __getpid (); - assert (pid >= 0 && pid < 100000); - p = _itoa (pid, &pidbuf[5], 10, 0); + assert (pid >= 0 && sizeof (pid_t) <= 4); + p = _itoa (pid, &pidbuf[10], 10, 0); while (p > pidbuf) - *--p = '0'; - pidbuf[5] = ':'; - pidbuf[6] = '\t'; + *--p = ' '; + pidbuf[10] = ':'; + pidbuf[11] = '\t'; } /* Append to the output. */ assert (niov < niovmax); - iov[niov].iov_len = 7; + iov[niov].iov_len = 12; iov[niov++].iov_base = pidbuf; /* No more tags until we see the next newline. */ @@ -245,7 +247,25 @@ _dl_debug_vdprintf (int fd, int tag_p, c } /* Finally write the result. */ +#ifdef INTERNAL_SYSCALL + INTERNAL_SYSCALL_DECL (err); + INTERNAL_SYSCALL (writev, err, 3, fd, &iov, niov); +#elif RTLD_PRIVATE_ERRNO + /* We have to take this lock just to be sure we don't clobber the private + errno when it's being used by another thread that cares about it. + Yet we must be sure not to try calling the lock functions before + the thread library is fully initialized. */ + if (__builtin_expect (INTUSE (_dl_starting_up), 0)) + __writev (fd, iov, niov); + else + { + __rtld_lock_lock_recursive (GL(dl_load_lock)); + __writev (fd, iov, niov); + __rtld_lock_unlock_recursive (GL(dl_load_lock)); + } +#else __writev (fd, iov, niov); +#endif } diff -durpN glibc-2.3.1/elf/dl-open.c glibc-2.3.2/elf/dl-open.c --- glibc-2.3.1/elf/dl-open.c 2002-08-07 19:08:12.000000000 -0700 +++ glibc-2.3.2/elf/dl-open.c 2003-01-27 16:47:52.000000000 -0800 @@ -1,5 +1,5 @@ /* Load a shared object at runtime, relocate it, and run its initializer. - Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1996-2001, 2002, 2003 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 @@ -34,6 +34,12 @@ #include +#ifndef SHARED +/* Giving this initialized value preallocates some surplus bytes in the + static TLS area, see __libc_setup_tls (libc-tls.c). */ +size_t _dl_tls_static_size = 2048; +#endif + extern ElfW(Addr) _dl_sysdep_start (void **start_argptr, void (*dl_main) (const ElfW(Phdr) *phdr, ElfW(Word) phnum, @@ -378,17 +384,19 @@ dl_open_worker (void *a) assert (new->l_searchlist.r_list[i]->l_type == lt_loaded); - /* Find the place in the stv slotinfo list. */ + /* Find the place in the dtv slotinfo list. */ listp = GL(dl_tls_dtv_slotinfo_list); prevp = NULL; /* Needed to shut up gcc. */ do { /* Does it fit in the array of this list element? */ - if (idx <= listp->len) + if (idx < listp->len) break; + idx -= listp->len; prevp = listp; + listp = listp->next; } - while ((listp = listp->next) != NULL); + while (listp != NULL); if (listp == NULL) { @@ -478,7 +486,7 @@ _dl_open (const char *file, int mode, co _dl_signal_error (EINVAL, file, NULL, N_("invalid mode for dlopen()")); /* Make sure we are alone. */ - __libc_lock_lock_recursive (GL(dl_load_lock)); + __rtld_lock_lock_recursive (GL(dl_load_lock)); args.file = file; args.mode = mode; @@ -492,7 +500,7 @@ _dl_open (const char *file, int mode, co #endif /* Release the lock. */ - __libc_lock_unlock_recursive (GL(dl_load_lock)); + __rtld_lock_unlock_recursive (GL(dl_load_lock)); if (__builtin_expect (errstring != NULL, 0)) { @@ -514,7 +522,7 @@ _dl_open (const char *file, int mode, co #ifdef USE_TLS /* Maybe some of the modules which were loaded uses TLS. - Since it will be removed in the folowing _dl_close call + Since it will be removed in the following _dl_close call we have to mark the dtv array as having gaps to fill the holes. This is a pessimistic assumption which won't hurt if not true. */ diff -durpN glibc-2.3.1/elf/dl-reloc.c glibc-2.3.2/elf/dl-reloc.c --- glibc-2.3.1/elf/dl-reloc.c 2002-08-25 14:52:29.000000000 -0700 +++ glibc-2.3.2/elf/dl-reloc.c 2003-01-30 09:35:50.000000000 -0800 @@ -1,5 +1,5 @@ /* Relocate a shared object and resolve its references to other loaded objects. - Copyright (C) 1995,96,97,98,99,2000,2001,2002 Free Software Foundation, Inc. + Copyright (C) 1995-2002, 2003 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 @@ -35,6 +35,36 @@ #endif +#ifdef USE_TLS +/* We are trying to perform a static TLS relocation in MAP, but it was + dynamically loaded. This can only work if there is enough surplus in + the static TLS area already allocated for each running thread. If this + object's TLS segment is too big to fit, we fail. If it fits, + we set MAP->l_tls_offset and return. */ +static void __attribute_noinline__ +allocate_static_tls (struct link_map *map) +{ + size_t offset = roundup (GL(dl_tls_static_used), map->l_tls_align); + if (offset + map->l_tls_blocksize +# if TLS_TCB_AT_TP + + TLS_TCB_SIZE +# elif TLS_DTV_AT_TP + /* dl_tls_static_used includes the TCB at the beginning. */ +# else +# error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined" +# endif + > GL(dl_tls_static_size)) + { + const char *errstring = N_("\ +shared object cannot be dlopen()ed: static TLS memory too small"); + INTUSE(_dl_signal_error) (0, (map)->l_name, NULL, errstring); + } + map->l_tls_offset = offset; + GL(dl_tls_static_used) = offset + map->l_tls_blocksize; +} +#endif + + void _dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[], int lazy, int consider_profiling) @@ -159,6 +189,21 @@ _dl_relocate_object (struct link_map *l, l->l_lookup_cache.value = _lr; })) \ : l->l_addr) + /* This macro is used as a callback from elf_machine_rel{a,} when a + static TLS reloc is about to be performed. Since (in dl-load.c) we + permit dynamic loading of objects that might use such relocs, we + have to check whether each use is actually doable. If the object + whose TLS segment the reference resolves to was allocated space in + the static TLS block at startup, then it's ok. Otherwise, we make + an attempt to allocate it in surplus space on the fly. If that + can't be done, we fall back to the error that DF_STATIC_TLS is + intended to produce. */ +#define CHECK_STATIC_TLS(map, sym_map) \ + do { \ + if (__builtin_expect ((sym_map)->l_tls_offset == 0, 0)) \ + allocate_static_tls (sym_map); \ + } while (0) + #include "dynamic-link.h" ELF_DYNAMIC_RELOCATE (l, lazy, consider_profiling); @@ -209,19 +254,34 @@ INTDEF (_dl_relocate_object) void -internal_function +internal_function __attribute_noinline__ _dl_reloc_bad_type (struct link_map *map, unsigned int type, int plt) { extern const char INTUSE(_itoa_lower_digits)[] attribute_hidden; #define DIGIT(b) INTUSE(_itoa_lower_digits)[(b) & 0xf]; /* XXX We cannot translate these messages. */ - static const char msg[2][32] = { "unexpected reloc type 0x", - "unexpected PLT reloc type 0x" }; + static const char msg[2][32 +#if __ELF_NATIVE_CLASS == 64 + + 6 +#endif + ] = { "unexpected reloc type 0x", + "unexpected PLT reloc type 0x" }; char msgbuf[sizeof (msg[0])]; char *cp; cp = __stpcpy (msgbuf, msg[plt]); +#if __ELF_NATIVE_CLASS == 64 + if (__builtin_expect(type > 0xff, 0)) + { + *cp++ = DIGIT (type >> 28); + *cp++ = DIGIT (type >> 24); + *cp++ = DIGIT (type >> 20); + *cp++ = DIGIT (type >> 16); + *cp++ = DIGIT (type >> 12); + *cp++ = DIGIT (type >> 8); + } +#endif *cp++ = DIGIT (type >> 4); *cp++ = DIGIT (type); *cp = '\0'; diff -durpN glibc-2.3.1/elf/dl-runtime.c glibc-2.3.2/elf/dl-runtime.c --- glibc-2.3.1/elf/dl-runtime.c 2002-09-18 11:49:18.000000000 -0700 +++ glibc-2.3.2/elf/dl-runtime.c 2003-02-07 11:41:12.000000000 -0800 @@ -1,5 +1,5 @@ /* On-demand PLT fixup for shared objects. - Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1995-2002, 2003 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 @@ -84,7 +84,7 @@ fixup ( { const ElfW(Half) *vernum = (const void *) D_PTR (l, l_info[VERSYMIDX (DT_VERSYM)]); - ElfW(Half) ndx = vernum[ELFW(R_SYM) (reloc->r_info) & 0x7fff]; + ElfW(Half) ndx = vernum[ELFW(R_SYM) (reloc->r_info)] & 0x7fff; const struct r_found_version *version = &l->l_versions[ndx]; if (version->hash != 0) @@ -179,7 +179,7 @@ profile_fixup ( { const ElfW(Half) *vernum = (const void *) D_PTR (l,l_info[VERSYMIDX (DT_VERSYM)]); - ElfW(Half) ndx = vernum[ELFW(R_SYM) (reloc->r_info) & 0x7fff]; + ElfW(Half) ndx = vernum[ELFW(R_SYM) (reloc->r_info)] & 0x7fff; const struct r_found_version *version = &l->l_versions[ndx]; if (version->hash != 0) diff -durpN glibc-2.3.1/elf/dl-support.c glibc-2.3.2/elf/dl-support.c --- glibc-2.3.1/elf/dl-support.c 2002-09-15 11:55:26.000000000 -0700 +++ glibc-2.3.2/elf/dl-support.c 2003-01-30 09:31:18.000000000 -0800 @@ -1,5 +1,5 @@ /* Support for dynamic linking code in static libc. - Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1996-2002, 2003 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 @@ -41,14 +41,7 @@ size_t _dl_platformlen; int _dl_debug_mask; int _dl_lazy; -/* XXX I know about at least one case where we depend on the old weak - behavior (it has to do with librt). Until we get DSO groups implemented - we have to make this the default. Bummer. --drepper */ -#if 0 int _dl_dynamic_weak; -#else -int _dl_dynamic_weak = 1; -#endif /* If nonzero print warnings about problematic situations. */ int _dl_verbose; @@ -131,6 +124,11 @@ int _dl_correct_cache_id = _DL_CACHE_DEF struct ElfW(Phdr) *_dl_phdr; size_t _dl_phnum; +#ifdef NEED_DL_SYSINFO +/* Needed for improved syscall handling on at least x86/Linux. */ +uintptr_t _dl_sysinfo = DL_SYSINFO_DEFAULT; +#endif + /* During the program run we must not modify the global data of loaded shared object simultanously in two threads. Therefore we protect `_dl_open' and `_dl_close' in dl-close.c. @@ -138,26 +136,7 @@ size_t _dl_phnum; This must be a recursive lock since the initializer function of the loaded object might as well require a call to this function. At this time it is not anymore a problem to modify the tables. */ -__libc_lock_define_initialized_recursive (, _dl_load_lock) - -#ifdef USE_TLS - -/* Highest dtv index currently needed. */ -size_t _dl_tls_max_dtv_idx; -/* Flag signalling whether there are gaps in the module ID allocation. */ -bool _dl_tls_dtv_gaps; -/* Information about the dtv slots. */ -struct dtv_slotinfo_list *_dl_tls_dtv_slotinfo_list; -/* Number of modules in the static TLS block. */ -size_t _dl_tls_static_nelem; -/* Size of the static TLS block. */ -size_t _dl_tls_static_size; -/* Alignment requirement of the static TLS block. */ -size_t _dl_tls_static_align; - -/* Generation counter for the dtv. */ -size_t _dl_tls_generation; -#endif +__rtld_lock_define_initialized_recursive (, _dl_load_lock) #ifdef HAVE_AUX_VECTOR @@ -182,6 +161,11 @@ _dl_aux_init (ElfW(auxv_t) *av) case AT_PHNUM: GL(dl_phnum) = av->a_un.a_val; break; +#ifdef NEED_DL_SYSINFO + case AT_SYSINFO: + GL(dl_sysinfo) = av->a_un.a_val; + break; +#endif } } #endif @@ -233,6 +217,10 @@ _dl_non_dynamic_init (void) DL_PLATFORM_INIT; #endif +#ifdef DL_OSVERSION_INIT + DL_OSVERSION_INIT; +#endif + /* Now determine the length of the platform string. */ if (_dl_platform != NULL) _dl_platformlen = strlen (_dl_platform); @@ -253,3 +241,8 @@ _dl_important_hwcaps (const char *platfo *sz = 1; return &result; } + + +#ifdef DL_SYSINFO_IMPLEMENTATION +DL_SYSINFO_IMPLEMENTATION +#endif diff -durpN glibc-2.3.1/elf/dl-tsd.c glibc-2.3.2/elf/dl-tsd.c --- glibc-2.3.1/elf/dl-tsd.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/dl-tsd.c 2002-12-04 10:22:02.000000000 -0800 @@ -0,0 +1,58 @@ +/* Thread-local data used by error handling for runtime dynamic linker. + Copyright (C) 2002 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 Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#ifdef _LIBC_REENTRANT + +# include +# include + +# ifndef SHARED + +/* _dl_error_catch_tsd points to this for the single-threaded case. + It's reset by the thread library for multithreaded programs + if we're not using __thread. */ +void ** __attribute__ ((const)) +_dl_initial_error_catch_tsd (void) +{ +# if USE___THREAD + static __thread void *data; +# else + static void *data; +# endif + return &data; +} +void **(*_dl_error_catch_tsd) (void) __attribute__ ((const)) + = &_dl_initial_error_catch_tsd; + +# elif USE___THREAD + +/* libpthread sets _dl_error_catch_tsd to point to this function. + We define it here instead of in libpthread so that it doesn't + need to have a TLS segment of its own just for this one pointer. */ + +void ** __attribute__ ((const)) +__libc_dl_error_tsd (void) +{ + static __thread void *data; + return &data; +} + +# endif /* SHARED */ + +#endif /* _LIBC_REENTRANT */ diff -durpN glibc-2.3.1/elf/dl-xstat64.c glibc-2.3.2/elf/dl-xstat64.c --- glibc-2.3.1/elf/dl-xstat64.c 2002-02-01 13:16:41.000000000 -0800 +++ glibc-2.3.2/elf/dl-xstat64.c 1969-12-31 16:00:00.000000000 -0800 @@ -1,25 +0,0 @@ -/* Dynamic linker's private version of __xstat64. - Copyright (C) 2002 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 Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -/* This special file is needed because some xstat64.c implementations - use versioning for __xstat64 and we need to keep it local to - the dynamic linker. */ - -#define RTLD_STAT64 -#include diff -durpN glibc-2.3.1/elf/do-rel.h glibc-2.3.2/elf/do-rel.h --- glibc-2.3.1/elf/do-rel.h 2002-09-27 21:15:03.000000000 -0700 +++ glibc-2.3.2/elf/do-rel.h 2003-01-30 09:35:50.000000000 -0800 @@ -1,5 +1,5 @@ /* Do relocations for ELF dynamic linking. - Copyright (C) 1995,96,97,98,99,2000,2001,2002 Free Software Foundation, Inc. + Copyright (C) 1995-2002, 2003 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 @@ -49,7 +49,7 @@ relocations; they should be set up to call _dl_runtime_resolve, rather than fully resolved now. */ -static inline void +static inline void __attribute__ ((always_inline)) elf_dynamic_do_rel (struct link_map *map, ElfW(Addr) reladdr, ElfW(Addr) relsize, int lazy) diff -durpN glibc-2.3.1/elf/dynamic-link.h glibc-2.3.2/elf/dynamic-link.h --- glibc-2.3.1/elf/dynamic-link.h 2002-09-26 19:46:27.000000000 -0700 +++ glibc-2.3.2/elf/dynamic-link.h 2003-01-30 09:35:50.000000000 -0800 @@ -1,5 +1,5 @@ /* Inline functions for dynamic linking. - Copyright (C) 1995,96,97,98,99,2000,2001,2002 Free Software Foundation, Inc. + Copyright (C) 1995-2002, 2003 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 @@ -18,9 +18,36 @@ 02111-1307 USA. */ #include -#include #include +#ifdef RESOLVE +auto void __attribute__((always_inline)) +elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc, + const ElfW(Sym) *sym, const struct r_found_version *version, + ElfW(Addr) *const reloc_addr); +auto void __attribute__((always_inline)) +elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc, + const ElfW(Sym) *sym, const struct r_found_version *version, + ElfW(Addr) *const reloc_addr); +auto void __attribute__((always_inline)) +elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc, + ElfW(Addr) *const reloc_addr); +auto void __attribute__((always_inline)) +elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc, + ElfW(Addr) *const reloc_addr); +# if ELF_MACHINE_NO_RELA || defined ELF_MACHINE_PLT_REL +auto void __attribute__((always_inline)) +elf_machine_lazy_rel (struct link_map *map, + ElfW(Addr) l_addr, const ElfW(Rel) *reloc); +# else +auto void __attribute__((always_inline)) +elf_machine_lazy_rel (struct link_map *map, + ElfW(Addr) l_addr, const ElfW(Rela) *reloc); +# endif +#endif + +#include + #ifndef VERSYMIDX # define VERSYMIDX(sym) (DT_NUM + DT_THISPROCNUM + DT_VERSIONTAGIDX (sym)) #endif diff -durpN glibc-2.3.1/elf/elf.h glibc-2.3.2/elf/elf.h --- glibc-2.3.1/elf/elf.h 2002-10-01 23:15:56.000000000 -0700 +++ glibc-2.3.2/elf/elf.h 2003-02-25 15:40:08.000000000 -0800 @@ -227,7 +227,7 @@ typedef struct #define EM_68HC08 71 /* Motorola MC68HC08 microcontroller */ #define EM_68HC05 72 /* Motorola MC68HC05 microcontroller */ #define EM_SVX 73 /* Silicon Graphics SVx */ -#define EM_AT19 74 /* STMicroelectronics ST19 8 bit mc */ +#define EM_ST19 74 /* STMicroelectronics ST19 8 bit mc */ #define EM_VAX 75 /* Digital VAX */ #define EM_CRIS 76 /* Axis Communications 32-bit embedded processor */ #define EM_JAVELIN 77 /* Infineon Technologies 32-bit embedded processor */ @@ -580,6 +580,7 @@ typedef struct #define NT_FPREGSET 2 /* Contains copy of fpregset struct */ #define NT_PRPSINFO 3 /* Contains copy of prpsinfo struct */ #define NT_PRXREG 4 /* Contains copy of prxregset struct */ +#define NT_TASKSTRUCT 4 /* Contains copy of task structure */ #define NT_PLATFORM 5 /* String from sysinfo(SI_PLATFORM) */ #define NT_AUXV 6 /* Contains copy of auxv array */ #define NT_GWINDOWS 7 /* Contains copy of gwindows struct */ @@ -945,6 +946,10 @@ typedef struct interpretation of the AUXV. Must be > 16. */ #define AT_IGNOREPPC 22 /* Entry should be ignored */ +/* Pointer to the global system page used for system calls and other + nice things. */ +#define AT_SYSINFO 32 + /* Note section contents. Each entry in the note section begins with a header of a fixed form. */ @@ -993,6 +998,7 @@ typedef struct #define ELF_NOTE_OS_LINUX 0 #define ELF_NOTE_OS_GNU 1 #define ELF_NOTE_OS_SOLARIS2 2 +#define ELF_NOTE_OS_FREEBSD 3 /* Move records. */ @@ -1947,8 +1953,50 @@ typedef Elf32_Addr Elf32_Conflict; #define R_PPC64_TOC16_LO_DS 64 /* half16ds #lo(S + A - .TOC.) >> 2. */ #define R_PPC64_PLTGOT16_DS 65 /* half16ds* (M + A) >> 2. */ #define R_PPC64_PLTGOT16_LO_DS 66 /* half16ds #lo(M + A) >> 2. */ + +/* PowerPC64 relocations defined for the TLS access ABI. */ +#define R_PPC64_TLS 67 /* none (sym+add)@tls. */ +#define R_PPC64_DTPMOD64 68 /* doubleword64 (sym+add)@dtpmod. */ +#define R_PPC64_TPREL16 69 /* half16* (sym+add)@tprel. */ +#define R_PPC64_TPREL16_LO 60 /* half16 (sym+add)@tprel@l. */ +#define R_PPC64_TPREL16_HI 71 /* half16 (sym+add)@tprel@h. */ +#define R_PPC64_TPREL16_HA 72 /* half16 (sym+add)@tprel@ha. */ +#define R_PPC64_TPREL64 73 /* doubleword64 (sym+add)@tprel. */ +#define R_PPC64_DTPREL16 74 /* half16* (sym+add)@dtprel. */ +#define R_PPC64_DTPREL16_LO 75 /* half16 (sym+add)@dtprel@l. */ +#define R_PPC64_DTPREL16_HI 76 /* half16 (sym+add)@dtprel@h. */ +#define R_PPC64_DTPREL16_HA 77 /* half16 (sym+add)@dtprel@ha. */ +#define R_PPC64_DTPREL64 78 /* doubleword64 (sym+add)@dtprel. */ +#define R_PPC64_GOT_TLSGD16 79 /* half16* (sym+add)@got@tlsgd. */ +#define R_PPC64_GOT_TLSGD16_LO 80 /* half16 (sym+add)@got@tlsgd@l. */ +#define R_PPC64_GOT_TLSGD16_HI 81 /* half16 (sym+add)@got@tlsgd@h. */ +#define R_PPC64_GOT_TLSGD16_HA 82 /* half16 (sym+add)@got@tlsgd@ha. */ +#define R_PPC64_GOT_TLSLD16 83 /* half16* (sym+add)@got@tlsld. */ +#define R_PPC64_GOT_TLSLD16_LO 84 /* half16 (sym+add)@got@tlsld@l. */ +#define R_PPC64_GOT_TLSLD16_HI 85 /* half16 (sym+add)@got@tlsld@h. */ +#define R_PPC64_GOT_TLSLD16_HA 86 /* half16 (sym+add)@got@tlsld@ha. */ +#define R_PPC64_GOT_TPREL16_DS 87 /* half16ds* (sym+add)@got@tprel. */ +#define R_PPC64_GOT_TPREL16_LO_DS 88 /* half16ds (sym+add)@got@tprel@l. */ +#define R_PPC64_GOT_TPREL16_HI 89 /* half16 (sym+add)@got@tprel@h. */ +#define R_PPC64_GOT_TPREL16_HA 90 /* half16 (sym+add)@got@tprel@ha. */ +#define R_PPC64_GOT_DTPREL16_DS 91 /* half16ds* (sym+add)@got@dtprel. */ +#define R_PPC64_GOT_DTPREL16_LO_DS 92 /* half16ds (sym+add)@got@dtprel@l. */ +#define R_PPC64_GOT_DTPREL16_HI 93 /* half16 (sym+add)@got@dtprel@h. */ +#define R_PPC64_GOT_DTPREL16_HA 94 /* half16 (sym+add)@got@dtprel@ha. */ +#define R_PPC64_TPREL16_DS 95 /* half16ds* (sym+add)@tprel. */ +#define R_PPC64_TPREL16_LO_DS 96 /* half16ds (sym+add)@tprel@l. */ +#define R_PPC64_TPREL16_HIGHER 97 /* half16 (sym+add)@tprel@higher. */ +#define R_PPC64_TPREL16_HIGHERA 98 /* half16 (sym+add)@tprel@highera. */ +#define R_PPC64_TPREL16_HIGHEST 99 /* half16 (sym+add)@tprel@highest. */ +#define R_PPC64_TPREL16_HIGHESTA 100 /* half16 (sym+add)@tprel@highesta. */ +#define R_PPC64_DTPREL16_DS 101 /* half16ds* (sym+add)@dtprel. */ +#define R_PPC64_DTPREL16_LO_DS 102 /* half16ds (sym+add)@dtprel@l. */ +#define R_PPC64_DTPREL16_HIGHER 103 /* half16 (sym+add)@dtprel@higher. */ +#define R_PPC64_DTPREL16_HIGHERA 104 /* half16 (sym+add)@dtprel@highera. */ +#define R_PPC64_DTPREL16_HIGHEST 105 /* half16 (sym+add)@dtprel@highest. */ +#define R_PPC64_DTPREL16_HIGHESTA 106 /* half16 (sym+add)@dtprel@highesta. */ /* Keep this the last entry. */ -#define R_PPC64_NUM 67 +#define R_PPC64_NUM 107 /* The remaining relocs are from the Embedded ELF ABI, and are not in the SVR4 ELF ABI. */ @@ -2209,11 +2257,6 @@ typedef Elf32_Addr Elf32_Conflict; #define R_SH_TLS_DTPMOD32 149 #define R_SH_TLS_DTPOFF32 150 #define R_SH_TLS_TPOFF32 151 -#define R_SH_TLS_GD_MOV 152 -#define R_SH_TLS_LDM_MOV 153 -#define R_SH_TLS_LDO_MOV 154 -#define R_SH_TLS_IE_MOV 155 -#define R_SH_TLS_LE_MOV 156 #define R_SH_GOT32 160 #define R_SH_PLT32 161 #define R_SH_COPY 162 @@ -2227,36 +2270,83 @@ typedef Elf32_Addr Elf32_Conflict; /* Additional s390 relocs */ -#define R_390_NONE 0 /* No reloc. */ -#define R_390_8 1 /* Direct 8 bit. */ -#define R_390_12 2 /* Direct 12 bit. */ -#define R_390_16 3 /* Direct 16 bit. */ -#define R_390_32 4 /* Direct 32 bit. */ -#define R_390_PC32 5 /* PC relative 32 bit. */ -#define R_390_GOT12 6 /* 12 bit GOT offset. */ -#define R_390_GOT32 7 /* 32 bit GOT offset. */ -#define R_390_PLT32 8 /* 32 bit PC relative PLT address. */ -#define R_390_COPY 9 /* Copy symbol at runtime. */ -#define R_390_GLOB_DAT 10 /* Create GOT entry. */ -#define R_390_JMP_SLOT 11 /* Create PLT entry. */ -#define R_390_RELATIVE 12 /* Adjust by program base. */ -#define R_390_GOTOFF 13 /* 32 bit offset to GOT. */ -#define R_390_GOTPC 14 /* 32 bit PC relative offset to GOT. */ -#define R_390_GOT16 15 /* 16 bit GOT offset. */ -#define R_390_PC16 16 /* PC relative 16 bit. */ -#define R_390_PC16DBL 17 /* PC relative 16 bit shifted by 1. */ -#define R_390_PLT16DBL 18 /* 16 bit PC rel. PLT shifted by 1. */ -#define R_390_PC32DBL 19 /* PC relative 32 bit shifted by 1. */ -#define R_390_PLT32DBL 20 /* 32 bit PC rel. PLT shifted by 1. */ -#define R_390_GOTPCDBL 21 /* 32 bit PC rel. GOT shifted by 1. */ -#define R_390_64 22 /* Direct 64 bit. */ -#define R_390_PC64 23 /* PC relative 64 bit. */ -#define R_390_GOT64 24 /* 64 bit GOT offset. */ -#define R_390_PLT64 25 /* 64 bit PC relative PLT address. */ -#define R_390_GOTENT 26 /* 32 bit PC rel. to GOT entry >> 1. */ +#define R_390_NONE 0 /* No reloc. */ +#define R_390_8 1 /* Direct 8 bit. */ +#define R_390_12 2 /* Direct 12 bit. */ +#define R_390_16 3 /* Direct 16 bit. */ +#define R_390_32 4 /* Direct 32 bit. */ +#define R_390_PC32 5 /* PC relative 32 bit. */ +#define R_390_GOT12 6 /* 12 bit GOT offset. */ +#define R_390_GOT32 7 /* 32 bit GOT offset. */ +#define R_390_PLT32 8 /* 32 bit PC relative PLT address. */ +#define R_390_COPY 9 /* Copy symbol at runtime. */ +#define R_390_GLOB_DAT 10 /* Create GOT entry. */ +#define R_390_JMP_SLOT 11 /* Create PLT entry. */ +#define R_390_RELATIVE 12 /* Adjust by program base. */ +#define R_390_GOTOFF32 13 /* 32 bit offset to GOT. */ +#define R_390_GOTPC 14 /* 32 bit PC relative offset to GOT. */ +#define R_390_GOT16 15 /* 16 bit GOT offset. */ +#define R_390_PC16 16 /* PC relative 16 bit. */ +#define R_390_PC16DBL 17 /* PC relative 16 bit shifted by 1. */ +#define R_390_PLT16DBL 18 /* 16 bit PC rel. PLT shifted by 1. */ +#define R_390_PC32DBL 19 /* PC relative 32 bit shifted by 1. */ +#define R_390_PLT32DBL 20 /* 32 bit PC rel. PLT shifted by 1. */ +#define R_390_GOTPCDBL 21 /* 32 bit PC rel. GOT shifted by 1. */ +#define R_390_64 22 /* Direct 64 bit. */ +#define R_390_PC64 23 /* PC relative 64 bit. */ +#define R_390_GOT64 24 /* 64 bit GOT offset. */ +#define R_390_PLT64 25 /* 64 bit PC relative PLT address. */ +#define R_390_GOTENT 26 /* 32 bit PC rel. to GOT entry >> 1. */ +#define R_390_GOTOFF16 27 /* 16 bit offset to GOT. */ +#define R_390_GOTOFF64 28 /* 64 bit offset to GOT. */ +#define R_390_GOTPLT12 29 /* 12 bit offset to jump slot. */ +#define R_390_GOTPLT16 30 /* 16 bit offset to jump slot. */ +#define R_390_GOTPLT32 31 /* 32 bit offset to jump slot. */ +#define R_390_GOTPLT64 32 /* 64 bit offset to jump slot. */ +#define R_390_GOTPLTENT 33 /* 32 bit rel. offset to jump slot. */ +#define R_390_PLTOFF16 34 /* 16 bit offset from GOT to PLT. */ +#define R_390_PLTOFF32 35 /* 32 bit offset from GOT to PLT. */ +#define R_390_PLTOFF64 36 /* 16 bit offset from GOT to PLT. */ +#define R_390_TLS_LOAD 37 /* Tag for load insn in TLS code. */ +#define R_390_TLS_GDCALL 38 /* Tag for function call in general + dynamic TLS code. */ +#define R_390_TLS_LDCALL 39 /* Tag for function call in local + dynamic TLS code. */ +#define R_390_TLS_GD32 40 /* Direct 32 bit for general dynamic + thread local data. */ +#define R_390_TLS_GD64 41 /* Direct 64 bit for general dynamic + thread local data. */ +#define R_390_TLS_GOTIE12 42 /* 12 bit GOT offset for static TLS + block offset. */ +#define R_390_TLS_GOTIE32 43 /* 32 bit GOT offset for static TLS + block offset. */ +#define R_390_TLS_GOTIE64 44 /* 64 bit GOT offset for static TLS + block offset. */ +#define R_390_TLS_LDM32 45 /* Direct 32 bit for local dynamic + thread local data in LE code. */ +#define R_390_TLS_LDM64 46 /* Direct 64 bit for local dynamic + thread local data in LE code. */ +#define R_390_TLS_IE32 47 /* 32 bit address of GOT entry for + negated static TLS block offset. */ +#define R_390_TLS_IE64 48 /* 64 bit address of GOT entry for + negated static TLS block offset. */ +#define R_390_TLS_IEENT 49 /* 32 bit rel. offset to GOT entry for + negated static TLS block offset. */ +#define R_390_TLS_LE32 50 /* 32 bit negated offset relative to + static TLS block. */ +#define R_390_TLS_LE64 51 /* 64 bit negated offset relative to + static TLS block. */ +#define R_390_TLS_LDO32 52 /* 32 bit offset relative to TLS + block. */ +#define R_390_TLS_LDO64 53 /* 64 bit offset relative to TLS + block. */ +#define R_390_TLS_DTPMOD 54 /* ID of module containing symbol. */ +#define R_390_TLS_DTPOFF 55 /* Offset in TLS block. */ +#define R_390_TLS_TPOFF 56 /* Negated offset in static TLS + block. */ /* Keep this the last entry. */ -#define R_390_NUM 27 +#define R_390_NUM 57 /* CRIS relocations. */ #define R_CRIS_NONE 0 @@ -2308,7 +2398,7 @@ typedef Elf32_Addr Elf32_Conflict; #define R_X86_64_TLSLD 20 /* 32 bit signed PC relative offset to two GOT entries for LD symbol */ #define R_X86_64_DTPOFF32 21 /* Offset in TLS block */ -#define r_x86_64_GOTTPOFF 22 /* 32 bit signed PC relative offset +#define R_X86_64_GOTTPOFF 22 /* 32 bit signed PC relative offset to GOT entry for IE symbol */ #define R_X86_64_TPOFF32 23 /* Offset in initial TLS block */ diff -durpN glibc-2.3.1/elf/ldconfig.c glibc-2.3.2/elf/ldconfig.c --- glibc-2.3.1/elf/ldconfig.c 2002-01-16 23:28:51.000000000 -0800 +++ glibc-2.3.2/elf/ldconfig.c 2003-01-13 00:50:11.000000000 -0800 @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Andreas Jaeger , 1999. @@ -158,6 +158,11 @@ is_hwcap_platform (const char *name) if (hwcap_idx != -1) return 1; +#ifdef USE_TLS + if (strcmp (name, "tls") == 0) + return 1; +#endif + return 0; } @@ -190,7 +195,14 @@ path_hwcap (const char *path) { h = _dl_string_platform (ptr + 1); if (h == (uint64_t) -1) - break; + { +#ifdef USE_TLS + if (strcmp (ptr + 1, "tls") == 0) + h = 63; + else +#endif + break; + } } hwcap += 1ULL << h; @@ -260,7 +272,7 @@ print_version (FILE *stream, struct argp Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\ -"), "2002"); +"), "2003"); fprintf (stream, gettext ("Written by %s.\n"), "Andreas Jaeger"); } @@ -591,7 +603,7 @@ static void search_dir (const struct dir_entry *entry) { DIR *dir; - struct dirent *direntry; + struct dirent64 *direntry; char *file_name, *dir_name, *real_file_name, *real_name; int file_name_len, real_file_name_len, len; char *soname; @@ -637,7 +649,7 @@ search_dir (const struct dir_entry *entr return; } - while ((direntry = readdir (dir)) != NULL) + while ((direntry = readdir64 (dir)) != NULL) { int flag; #ifdef _DIRENT_HAVE_D_TYPE diff -durpN glibc-2.3.1/elf/ldd.bash.in glibc-2.3.2/elf/ldd.bash.in --- glibc-2.3.1/elf/ldd.bash.in 2002-01-16 23:18:45.000000000 -0800 +++ glibc-2.3.2/elf/ldd.bash.in 2003-01-02 12:01:29.000000000 -0800 @@ -1,5 +1,5 @@ #! @BASH@ -# Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc. +# Copyright (C) 1996-2001, 2002, 2003 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 @@ -36,7 +36,7 @@ while test $# -gt 0; do case "$1" in --vers | --versi | --versio | --version) echo 'ldd (GNU libc) @VERSION@' - echo $"Copyright (C) 2002 Free Software Foundation, Inc. + echo $"Copyright (C) 2003 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Roland McGrath and Ulrich Drepper." diff -durpN glibc-2.3.1/elf/Makefile glibc-2.3.2/elf/Makefile --- glibc-2.3.1/elf/Makefile 2002-10-02 00:28:04.000000000 -0700 +++ glibc-2.3.2/elf/Makefile 2003-02-20 22:28:09.000000000 -0800 @@ -1,4 +1,4 @@ -# Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc. +# Copyright (C) 1995-2002, 2003 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 @@ -23,7 +23,7 @@ subdir := elf headers = elf.h bits/elfclass.h link.h routines = $(dl-routines) dl-open dl-close dl-support dl-iteratephdr \ dl-iteratephdr-static dl-addr enbl-secure dl-profstub \ - dl-origin dl-libc dl-sym + dl-origin dl-libc dl-sym dl-tsd # The core dynamic linking functions are in libc for the static and # profiled libraries. @@ -37,11 +37,11 @@ elide-routines.os = $(all-dl-routines) d # ld.so uses those routines, plus some special stuff for being the program # interpreter and operating independent of libc. -rtld-routines := rtld $(dl-routines) dl-sysdep dl-environ dl-minimal \ - dl-xstat64 dl-fxstat64 +rtld-routines := rtld $(dl-routines) dl-sysdep dl-environ dl-minimal all-rtld-routines = $(rtld-routines) $(sysdep-rtld-routines) -distribute := $(rtld-routines:=.c) dynamic-link.h do-rel.h dl-machine.h \ +distribute := rtld-Rules \ + $(rtld-routines:=.c) dynamic-link.h do-rel.h dl-machine.h \ dl-cache.h dl-hash.h soinit.c sofini.c ldd.bash.in \ genrtldtbl.awk atomicity.h dl-procinfo.h ldsodefs.h \ dl-librecon.h interp.c sln.c dl-dst.h hp-timing.h \ @@ -69,9 +69,16 @@ distribute := $(rtld-routines:=.c) dynam unwind-dw2.c unwind-dw2-fde.c unwind.h unwind-pe.h \ unwind-dw2-fde.h dwarf2.h dl-procinfo.c tls.h dl-tls.h \ tst-tlsmod1.c tst-tlsmod2.c tst-tlsmod3.c tst-tlsmod4.c \ + tst-tlsmod5.c tst-tlsmod6.c \ circlemod1.c circlemod1a.c circlemod2.c circlemod2a.c \ circlemod3.c circlemod3a.c nodlopenmod2.c \ - tls-macros.h + tls-macros.h \ + reldep8mod1.c reldep8mod2.c reldep8mod3.c \ + nodel2mod1.c nodel2mod2.c nodel2mod3.c \ + reldep9.c reldep9mod1.c reldep9mod2.c reldep9mod3.c \ + tst-array1.exp tst-array2.exp tst-array4.exp \ + tst-array2dep.c \ + check-textrel.c dl-sysdep.h include ../Makeconfig @@ -115,9 +122,17 @@ vpath %.c ../locale/programs endif endif -tests = tst-tls1 tst-tls2 +tests = tst-tls1 tst-tls2 tst-tls9 +ifeq (yes,$(have-initfini-array)) +tests += tst-array1 tst-array2 tst-array3 tst-array4 +endif ifeq (yes,$(build-static)) tests-static = tst-tls1-static tst-tls2-static +ifeq (yesyesyes,$(build-static)$(build-shared)$(elf)) +tests-static += tst-tls9-static +tst-tls9-static-ENV = \ + LD_LIBRARY_PATH=$(objpfx):$(common-objpfx):$(common-objpfx)dlfcn +endif tests += $(tests-static) endif ifeq (yes,$(build-shared)) @@ -126,11 +141,12 @@ tests += loadtest restest1 preloadtest l reldep reldep2 reldep3 reldep4 $(tests-nodelete-$(have-z-nodelete)) \ $(tests-nodlopen-$(have-z-nodlopen)) neededtest neededtest2 \ neededtest3 neededtest4 unload2 lateglobal initfirst global \ - restest2 next dblload dblunload reldep5 reldep6 reldep7 circleload1 \ - tst-tls3 tst-tls4 tst-tls5 tst-tls6 tst-tls7 tst-tls8 + restest2 next dblload dblunload reldep5 reldep6 reldep7 reldep8 \ + circleload1 tst-tls3 tst-tls4 tst-tls5 tst-tls6 tst-tls7 tst-tls8 +# reldep9 test-srcs = tst-pathopt tests-vis-yes = vismain -tests-nodelete-yes = nodelete +tests-nodelete-yes = nodelete nodelete2 tests-nodlopen-yes = nodlopen nodlopen2 endif modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \ @@ -147,10 +163,17 @@ modules-names = testobj1 testobj2 testob reldep6mod0 reldep6mod1 reldep6mod2 reldep6mod3 reldep6mod4 \ reldep7mod1 reldep7mod2 \ tst-tlsmod1 tst-tlsmod2 tst-tlsmod3 tst-tlsmod4 \ + tst-tlsmod5 tst-tlsmod6 \ circlemod1 circlemod1a circlemod2 circlemod2a \ - circlemod3 circlemod3a + circlemod3 circlemod3a \ + reldep8mod1 reldep8mod2 reldep8mod3 \ + reldep9mod1 reldep9mod2 reldep9mod3 +ifeq (yes,$(have-initfini-array)) +modules-names += tst-array2dep +endif modules-vis-yes = vismod1 vismod2 vismod3 -modules-nodelete-yes = nodelmod1 nodelmod2 nodelmod3 nodelmod4 +modules-nodelete-yes = nodelmod1 nodelmod2 nodelmod3 nodelmod4 \ + nodel2mod1 nodel2mod2 nodel2mod3 modules-nodlopen-yes = nodlopenmod nodlopenmod2 extra-objs += $(addsuffix .os,$(strip $(modules-names))) # We need this variable to be sure the test modules get the right CPPFLAGS. @@ -166,23 +189,61 @@ lib-noranlib: $(objpfx)$(rtld-installed- endif # Command to link into a larger single relocatable object. -reloc-link = $(LINK.o) -nostdlib -nostartfiles -r -o $@ +reloc-link = $(LINK.o) -nostdlib -nostartfiles -r $(objpfx)dl-allobjs.os: $(all-rtld-routines:%=$(objpfx)%.os) - $(reloc-link) $^ + $(reloc-link) -o $@ $^ # Link together the dynamic linker into a single relocatable object. -$(objpfx)librtld.os: $(objpfx)dl-allobjs.os $(common-objpfx)libc_pic.a - $(reloc-link) '-Wl,-(' $^ -lgcc '-Wl,-)' +# First we do a link against libc_pic.a just to get a link map, +# and discard the object produced by that link. From the link map +# we can glean all the libc modules that need to go into the dynamic +# linker. Then we do a recursive make that goes into all the subdirs +# those modules come from and builds special rtld-foo.os versions that +# are compiled with special flags, and puts these modules into rtld-libc.a +# for us. Then we do the real link using rtld-libc.a instead of libc_pic.a. + +$(objpfx)librtld.map: $(objpfx)dl-allobjs.os $(common-objpfx)libc_pic.a + @-rm -f $@T + $(reloc-link) -o $@.o '-Wl,-(' $^ -lgcc '-Wl,-)' -Wl,-Map,$@T + rm -f $@.o + mv -f $@T $@ + +$(objpfx)librtld.mk: $(objpfx)librtld.map Makefile + sed -n 's@^$(common-objpfx)\([^(]*\)(\([^)]*\.os\))$$@\1 \2@p' $< | \ + while read lib file; do \ + case $$lib in \ + libc_pic.a) \ + fgrep -l /$$file \ + $(common-objpfx)stamp.os $(common-objpfx)*/stamp.os | \ + sed 's@^$(common-objpfx)\([^/]*\)/stamp\.os$$@rtld-\1'" +=$$file@"\ + ;; \ + */*.a) \ + echo rtld-$${lib%%/*} += $$file ;; \ + *) echo "Wasn't expecting $$lib($$file)" >&2; exit 1 ;; \ + esac; \ + done > $@T + echo rtld-subdirs = `sed 's/^rtld-\([^ ]*\).*$$/\1/' $@T \ + | sort -u` >> $@T + mv -f $@T $@ + +$(objpfx)rtld-libc.a: $(objpfx)librtld.mk FORCE + $(MAKE) -f $< -f rtld-Rules + +generated += librtld.map librtld.mk rtld-libc.a + +$(objpfx)librtld.os: $(objpfx)dl-allobjs.os $(objpfx)rtld-libc.a + $(LINK.o) -nostdlib -nostartfiles -r -o $@ '-Wl,-(' $^ -lgcc '-Wl,-)' $(objpfx)ld.so: $(objpfx)librtld.os $(ld-map) @rm -f $@.lds $(LINK.o) -nostdlib -nostartfiles -shared \ - $(LDFLAGS-rtld) -Wl,--verbose 2>&1 | \ + $(LDFLAGS-rtld) -Wl,-z,defs -Wl,--verbose 2>&1 | \ sed -e '/^=========/,/^=========/!d;/^=========/d' \ -e 's/\. = 0 + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \ > $@.lds - $(LINK.o) -nostdlib -nostartfiles -shared -o $@ $(LDFLAGS-rtld) \ + $(LINK.o) -nostdlib -nostartfiles -shared -o $@ \ + $(LDFLAGS-rtld) -Wl,-z,defs \ $(filter-out $(map-file),$^) $(load-map-file) \ -Wl,-soname=$(rtld-installed-name) -T $@.lds rm -f $@.lds @@ -209,6 +270,7 @@ $(objpfx)trusted-dirs.st: Makefile $(..) $(make-target-directory) echo "$(subst :, ,$(default-rpath) $(user-defined-trusted-dirs))" \ | $(AWK) -f gen-trusted-dirs.awk > ${@:st=T}; + echo '#define DL_DST_LIB "$(notdir $(slibdir))"' >> ${@:st=T} $(move-if-change) ${@:st=T} ${@:st=h} touch $@ CPPFLAGS-dl-load.c = -I$(objpfx). -I$(csu-objpfx). @@ -265,7 +327,7 @@ CFLAGS-ldconfig.c = $(SYSCONF-FLAGS) -D' CFLAGS-dl-cache.c = $(SYSCONF-FLAGS) CFLAGS-cache.c = $(SYSCONF-FLAGS) -CFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),-DNOT_IN_libc -DIS_IN_rtld) +CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),-DNOT_IN_libc=1 -DIS_IN_rtld=1) test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names)))) generated += $(addsuffix .so,$(strip $(modules-names))) @@ -310,6 +372,16 @@ $(objpfx)reldep6mod2.so: $(objpfx)reldep $(objpfx)reldep6mod3.so: $(objpfx)reldep6mod2.so $(objpfx)reldep6mod4.so: $(objpfx)reldep6mod1.so $(objpfx)tst-tlsmod3.so: $(objpfx)tst-tlsmod2.so +# For tst-tls9-static, make sure the modules it dlopens have libc.so in DT_NEEDED +$(objpfx)tst-tlsmod5.so: $(common-objpfx)libc.so +$(objpfx)tst-tlsmod6.so: $(common-objpfx)libc.so +$(objpfx)reldep8mod3.so: $(objpfx)reldep8mod1.so $(objpfx)reldep8mod2.so +$(objpfx)nodel2mod3.so: $(objpfx)nodel2mod1.so $(objpfx)nodel2mod2.so +$(objpfx)reldep9mod2.so: $(objpfx)reldep9mod1.so +$(objpfx)reldep9mod3.so: $(objpfx)reldep9mod1.so $(objpfx)reldep9mod2.so + +LDFLAGS-tst-tlsmod5.so = -nostdlib +LDFLAGS-tst-tlsmod6.so = -nostdlib # filtmod1.so has a special rule $(filter-out $(objpfx)filtmod1.so, $(test-modules)): $(objpfx)%.so: $(objpfx)%.os @@ -471,6 +543,16 @@ $(objpfx)reldep6.out: $(objpfx)reldep6mo $(objpfx)reldep7: $(libdl) $(objpfx)reldep7.out: $(objpfx)reldep7mod1.so $(objpfx)reldep7mod2.so +$(objpfx)reldep8: $(libdl) +$(objpfx)reldep8.out: $(objpfx)reldep8mod3.so + +LDFLAGS-nodel2mod2.so = -Wl,--enable-new-dtags,-z,nodelete +$(objpfx)nodelete2: $(libdl) +$(objpfx)nodelete2.out: $(objpfx)nodel2mod3.so + +$(objpfx)reldep9: $(libdl) +$(objpfx)reldep9.out: $(objpfx)reldep9mod3.so + $(objpfx)tst-tls3: $(objpfx)tst-tlsmod1.so $(objpfx)tst-tls4: $(libdl) @@ -487,3 +569,51 @@ $(objpfx)tst-tls7.out: $(objpfx)tst-tlsm $(objpfx)tst-tls8: $(libdl) $(objpfx)tst-tls8.out: $(objpfx)tst-tlsmod3.so $(objpfx)tst-tlsmod4.so + +$(objpfx)tst-tls9: $(libdl) +$(objpfx)tst-tls9.out: $(objpfx)tst-tlsmod5.so $(objpfx)tst-tlsmod6.so + +ifdef libdl +$(objpfx)tst-tls9-static: $(common-objpfx)dlfcn/libdl.a +$(objpfx)tst-tls9-static.out: $(objpfx)tst-tlsmod5.so $(objpfx)tst-tlsmod6.so +endif + +$(objpfx)tst-array1.out: $(objpfx)tst-array1 + $(elf-objpfx)$(rtld-installed-name) \ + --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \ + $(objpfx)tst-array1 > $@ + cmp $@ tst-array1.exp > /dev/null + +$(objpfx)tst-array2: $(objpfx)tst-array2dep.so +$(objpfx)tst-array2.out: $(objpfx)tst-array2 + $(elf-objpfx)$(rtld-installed-name) \ + --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \ + $(objpfx)tst-array2 > $@ + cmp $@ tst-array2.exp > /dev/null + +$(objpfx)tst-array3.out: $(objpfx)tst-array3 + $(elf-objpfx)$(rtld-installed-name) \ + --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \ + $(objpfx)tst-array3 > $@ + cmp $@ tst-array1.exp > /dev/null + +$(objpfx)tst-array4: $(libdl) +$(objpfx)tst-array4.out: $(objpfx)tst-array4 $(objpfx)tst-array2dep.so + $(elf-objpfx)$(rtld-installed-name) \ + --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \ + $< > $@ + cmp $@ tst-array4.exp > /dev/null + +check-textrel-CFLAGS = -O -Wall -D_XOPEN_SOURCE=600 -D_BSD_SOURCE +$(objpfx)check-textrel: check-textrel.c + $(native-compile) + +ifeq (yes,$(build-shared)) +tests: $(objpfx)check-textrel.out + +$(objpfx)check-textrel.out: $(objpfx)check-textrel + $(dir $<)$(notdir $<) $(common-objpfx)libc.so \ + $(sort $(wildcard $(common-objpfx)*/lib*.so \ + $(common-objpfx)iconvdata/*.so)) > $@ +generated += check-textrel check-textrel.out +endif diff -durpN glibc-2.3.1/elf/nodel2mod1.c glibc-2.3.2/elf/nodel2mod1.c --- glibc-2.3.1/elf/nodel2mod1.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/nodel2mod1.c 2003-01-09 16:18:21.000000000 -0800 @@ -0,0 +1,19 @@ +#include +void +foo (void) +{ + exit (0); +} + +void +__attribute__((destructor)) +bar (void) +{ + static int i; + foo (); + ++i; +} +void +baz (void) +{ +} diff -durpN glibc-2.3.1/elf/nodel2mod2.c glibc-2.3.2/elf/nodel2mod2.c --- glibc-2.3.1/elf/nodel2mod2.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/nodel2mod2.c 2003-01-09 16:18:21.000000000 -0800 @@ -0,0 +1,7 @@ +void +__attribute__((constructor)) +xxx (void) +{ + extern void baz (void); + baz (); +} diff -durpN glibc-2.3.1/elf/nodel2mod3.c glibc-2.3.2/elf/nodel2mod3.c --- glibc-2.3.1/elf/nodel2mod3.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/nodel2mod3.c 2003-01-09 16:18:21.000000000 -0800 @@ -0,0 +1 @@ +int x; diff -durpN glibc-2.3.1/elf/nodelete2.c glibc-2.3.2/elf/nodelete2.c --- glibc-2.3.1/elf/nodelete2.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/nodelete2.c 2003-01-09 16:18:21.000000000 -0800 @@ -0,0 +1,16 @@ +#include +#include +#include + +int +main (void) +{ + void *handle = dlopen ("nodel2mod3.so", RTLD_LAZY); + if (handle == NULL) + { + printf ("%s\n", dlerror ()); + exit (1); + } + dlclose (handle); + exit (1); +} diff -durpN glibc-2.3.1/elf/reldep6.c glibc-2.3.2/elf/reldep6.c --- glibc-2.3.1/elf/reldep6.c 2001-09-30 16:14:28.000000000 -0700 +++ glibc-2.3.2/elf/reldep6.c 2003-01-10 23:50:14.000000000 -0800 @@ -48,6 +48,18 @@ main (void) exit (1); } + baz = dlsym (h2, "baz"); + if (baz == NULL) + { + printf ("cannot get address of \"baz\": %s\n", dlerror ()); + exit (1); + } + if (baz () != 31) + { + printf ("baz() did not return 31\n"); + exit (1); + } + if (dlclose (h1) != 0) { printf ("closing h1 failed: %s\n", dlerror ()); diff -durpN glibc-2.3.1/elf/reldep8.c glibc-2.3.2/elf/reldep8.c --- glibc-2.3.1/elf/reldep8.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/reldep8.c 2002-12-30 12:13:14.000000000 -0800 @@ -0,0 +1,16 @@ +#include +#include +#include + +int +main (void) +{ + void *handle = dlopen ("reldep8mod3.so", RTLD_LAZY); + if (handle == NULL) + { + printf ("%s\n", dlerror ()); + exit (1); + } + dlclose (handle); + abort (); +} diff -durpN glibc-2.3.1/elf/reldep8mod1.c glibc-2.3.2/elf/reldep8mod1.c --- glibc-2.3.1/elf/reldep8mod1.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/reldep8mod1.c 2002-12-30 12:08:01.000000000 -0800 @@ -0,0 +1,19 @@ +#include +void +foo (void) +{ + exit (0); +} + +void +__attribute__((destructor)) +bar (void) +{ + static int i; + foo (); + ++i; +} +void +baz (void) +{ +} diff -durpN glibc-2.3.1/elf/reldep8mod2.c glibc-2.3.2/elf/reldep8mod2.c --- glibc-2.3.1/elf/reldep8mod2.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/reldep8mod2.c 2002-12-30 12:08:22.000000000 -0800 @@ -0,0 +1,7 @@ +void +__attribute__((constructor)) +xxx (void) +{ + extern void baz (void); + baz (); +} diff -durpN glibc-2.3.1/elf/reldep8mod3.c glibc-2.3.2/elf/reldep8mod3.c --- glibc-2.3.1/elf/reldep8mod3.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/reldep8mod3.c 2002-12-30 12:08:32.000000000 -0800 @@ -0,0 +1 @@ +int x; diff -durpN glibc-2.3.1/elf/reldep9.c glibc-2.3.2/elf/reldep9.c --- glibc-2.3.1/elf/reldep9.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/reldep9.c 2003-01-09 20:15:20.000000000 -0800 @@ -0,0 +1,16 @@ +#include +#include +#include + +int +main (void) +{ + void *handle = dlopen ("reldep9mod3.so", RTLD_LAZY); + if (handle == NULL) + { + printf ("%s\n", dlerror ()); + exit (1); + } + dlclose (handle); + abort (); +} diff -durpN glibc-2.3.1/elf/reldep9mod1.c glibc-2.3.2/elf/reldep9mod1.c --- glibc-2.3.1/elf/reldep9mod1.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/reldep9mod1.c 2003-01-09 16:18:48.000000000 -0800 @@ -0,0 +1,23 @@ +#include +void +foo (void) +{ + exit (0); +} + +void +__attribute__((destructor)) +bar (void) +{ + static int i; + foo (); + ++i; +} + +void +__attribute__((constructor)) +destr (void) +{ + extern void baz (void); + baz (); +} diff -durpN glibc-2.3.1/elf/reldep9mod2.c glibc-2.3.2/elf/reldep9mod2.c --- glibc-2.3.1/elf/reldep9mod2.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/reldep9mod2.c 2003-01-09 16:18:48.000000000 -0800 @@ -0,0 +1,3 @@ +void baz (void) +{ +} diff -durpN glibc-2.3.1/elf/reldep9mod3.c glibc-2.3.2/elf/reldep9mod3.c --- glibc-2.3.1/elf/reldep9mod3.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/reldep9mod3.c 2003-01-09 16:18:48.000000000 -0800 @@ -0,0 +1 @@ +int x; diff -durpN glibc-2.3.1/elf/rtld.c glibc-2.3.2/elf/rtld.c --- glibc-2.3.1/elf/rtld.c 2002-09-29 10:45:45.000000000 -0700 +++ glibc-2.3.2/elf/rtld.c 2003-01-07 10:47:35.000000000 -0800 @@ -1,5 +1,5 @@ /* Run time dynamic linker. - Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1995-2002, 2003 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 @@ -37,6 +37,7 @@ #include #include #include +#include #include @@ -90,19 +91,15 @@ struct rtld_global _rtld_global = /* Get architecture specific initializer. */ #include ._dl_debug_fd = STDERR_FILENO, -#if 1 - /* XXX I know about at least one case where we depend on the old - weak behavior (it has to do with librt). Until we get DSO - groups implemented we have to make this the default. - Bummer. --drepper */ - ._dl_dynamic_weak = 1, +#ifdef NEED_DL_SYSINFO + ._dl_sysinfo = DL_SYSINFO_DEFAULT, #endif ._dl_lazy = 1, ._dl_fpu_control = _FPU_DEFAULT, ._dl_correct_cache_id = _DL_CACHE_DEFAULT_ID, ._dl_hwcap_mask = HWCAP_IMPORTANT, #ifdef _LIBC_REENTRANT - ._dl_load_lock = _LIBC_LOCK_RECURSIVE_INITIALIZER + ._dl_load_lock = _RTLD_LOCK_RECURSIVE_INITIALIZER #endif }; strong_alias (_rtld_global, _rtld_local); @@ -132,6 +129,11 @@ static hp_timing_t start_time; TLS_INIT_HELPER #endif +/* Helper function for syscall implementation. */ +#ifdef DL_SYSINFO_IMPLEMENTATION +DL_SYSINFO_IMPLEMENTATION +#endif + /* Before ld.so is relocated we must not access variables which need relocations. This means variables which are exported. Variables declared as static are fine. If we can mark a variable hidden this @@ -221,21 +223,18 @@ _dl_start_final (void *arg, struct dl_st GL(dl_rtld_map).l_map_end = (ElfW(Addr)) _end; /* Copy the TLS related data if necessary. */ #if USE_TLS && !defined DONT_USE_BOOTSTRAP_MAP -# ifdef HAVE___THREAD +# if USE___THREAD assert (info->l.l_tls_modid != 0); + GL(dl_rtld_map).l_tls_blocksize = info->l.l_tls_blocksize; + GL(dl_rtld_map).l_tls_align = info->l.l_tls_align; + GL(dl_rtld_map).l_tls_initimage_size = info->l.l_tls_initimage_size; + GL(dl_rtld_map).l_tls_initimage = info->l.l_tls_initimage; + GL(dl_rtld_map).l_tls_offset = info->l.l_tls_offset; + GL(dl_rtld_map).l_tls_modid = 1; # else - if (info->l.l_tls_modid != 0) + assert (info->l.l_tls_modid == 0); # endif - { - GL(dl_rtld_map).l_tls_blocksize = info->l.l_tls_blocksize; - GL(dl_rtld_map).l_tls_align = info->l.l_tls_align; - GL(dl_rtld_map).l_tls_initimage_size = info->l.l_tls_initimage_size; - GL(dl_rtld_map).l_tls_initimage = info->l.l_tls_initimage; - GL(dl_rtld_map).l_tls_offset = info->l.l_tls_offset; - GL(dl_rtld_map).l_tls_modid = 1; - GL(dl_rtld_map).l_tls_tp_initialized - = info->l.l_tls_tp_initialized; - } + #endif #if HP_TIMING_AVAIL @@ -276,14 +275,6 @@ _dl_start (void *arg) struct dl_start_final_info info; # define bootstrap_map info.l #endif -#if USE_TLS || (!DONT_USE_BOOTSTRAP_MAP && !HAVE_BUILTIN_MEMSET) - size_t cnt; -#endif -#ifdef USE_TLS - ElfW(Ehdr) *ehdr; - ElfW(Phdr) *phdr; - dtv_t initdtv[3]; -#endif /* This #define produces dynamic linking inline functions for bootstrap relocation instead of general-purpose relocation. */ @@ -311,7 +302,7 @@ _dl_start (void *arg) # ifdef HAVE_BUILTIN_MEMSET __builtin_memset (bootstrap_map.l_info, '\0', sizeof (bootstrap_map.l_info)); # else - for (cnt = 0; + for (size_t cnt = 0; cnt < sizeof (bootstrap_map.l_info) / sizeof (bootstrap_map.l_info[0]); ++cnt) bootstrap_map.l_info[cnt] = 0; @@ -325,24 +316,22 @@ _dl_start (void *arg) bootstrap_map.l_ld = (void *) bootstrap_map.l_addr + elf_machine_dynamic (); elf_get_dynamic_info (&bootstrap_map); -#if USE_TLS -# if !defined HAVE___THREAD && !defined DONT_USE_BOOTSTRAP_MAP - /* Signal that we have not found TLS data so far. */ - bootstrap_map.l_tls_modid = 0; -# endif - +#if USE___THREAD /* Get the dynamic linker's own program header. First we need the ELF file header. The `_begin' symbol created by the linker script points to it. When we have something like GOTOFF relocs, we can use a plain reference to find the runtime address. Without that, we have to rely on the `l_addr' value, which is not the value we want when prelinked. */ -#ifdef DONT_USE_BOOTSTRAP_MAP - ehdr = (ElfW(Ehdr) *) &_begin; -#else - ehdr = (ElfW(Ehdr) *) bootstrap_map.l_addr; -#endif - phdr = (ElfW(Phdr) *) ((ElfW(Addr)) ehdr + ehdr->e_phoff); - for (cnt = 0; cnt < ehdr->e_phnum; ++cnt) + dtv_t initdtv[3]; + ElfW(Ehdr) *ehdr +# ifdef DONT_USE_BOOTSTRAP_MAP + = (ElfW(Ehdr) *) &_begin; +# else + = (ElfW(Ehdr) *) bootstrap_map.l_addr; +# endif + ElfW(Phdr) *phdr = (ElfW(Phdr) *) ((void *) ehdr + ehdr->e_phoff); + size_t cnt = ehdr->e_phnum; /* PT_TLS is usually the last phdr. */ + while (cnt-- > 0) if (phdr[cnt].p_type == PT_TLS) { void *tlsblock; @@ -418,26 +407,25 @@ _dl_start (void *arg) INSTALL_DTV ((char *) tlsblock + bootstrap_map.l_tls_offset, initdtv); - if (TLS_INIT_TP ((char *) tlsblock + bootstrap_map.l_tls_offset, 0) - != 0) - _dl_fatal_printf ("cannot setup thread-local storage\n"); + const char *lossage = TLS_INIT_TP ((char *) tlsblock + + bootstrap_map.l_tls_offset, 0); # elif TLS_DTV_AT_TP INSTALL_DTV (tlsblock, initdtv); - if (TLS_INIT_TP (tlsblock, 0) != 0) - _dl_fatal_printf ("cannot setup thread-local storage\n"); + const char *lossage = TLS_INIT_TP (tlsblock, 0); # else # error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined" # endif + if (__builtin_expect (lossage != NULL, 0)) + _dl_fatal_printf ("cannot set up thread-local storage: %s\n", + lossage); /* So far this is module number one. */ bootstrap_map.l_tls_modid = 1; - /* The TP got initialized. */ - bootstrap_map.l_tls_tp_initialized = 1; /* There can only be one PT_TLS entry. */ break; } -#endif /* use TLS */ +#endif /* USE___THREAD */ #ifdef ELF_MACHINE_BEFORE_RTLD_RELOC ELF_MACHINE_BEFORE_RTLD_RELOC (bootstrap_map.l_info); @@ -576,6 +564,17 @@ match_version (const char *string, struc return 0; } +#ifdef _LIBC_REENTRANT +/* _dl_error_catch_tsd points to this for the single-threaded case. + It's reset by the thread library for multithreaded programs. */ +void ** __attribute__ ((const)) +_dl_initial_error_catch_tsd (void) +{ + static void *data; + return &data; +} +#endif + static const char *library_path; /* The library search path. */ static const char *preloadlist; /* The list preloaded objects. */ static int version_info; /* Nonzero if information about @@ -605,6 +604,11 @@ dl_main (const ElfW(Phdr) *phdr, void *tcbp; #endif +#ifdef _LIBC_REENTRANT + /* Explicit initialization since the reloc would just be more work. */ + GL(dl_error_catch_tsd) = &_dl_initial_error_catch_tsd; +#endif + /* Process the environment variable which control the behaviour. */ process_envvars (&mode); @@ -1139,12 +1143,18 @@ of this helper program; chances are you /* Assign a module ID. */ GL(dl_rtld_map).l_tls_modid = _dl_next_tls_modid (); -# ifndef SHARED - /* If dynamic loading of modules with TLS is impossible we do not - have to initialize any of the TLS functionality unless any of the - initial modules uses TLS. */ - if (GL(dl_tls_max_dtv_idx) > 0) +# ifndef TLS_INIT_TP_EXPENSIVE +# define TLS_INIT_TP_EXPENSIVE 0 # endif + + /* We do not initialize any of the TLS functionality unless any of the + initial modules uses TLS. This makes dynamic loading of modules with + TLS impossible, but to support it requires either eagerly doing setup + now or lazily doing it later. Doing it now makes us incompatible with + an old kernel that can't perform TLS_INIT_TP, even if no TLS is ever + used. Trying to do it lazily is too hairy to try when there could be + multiple threads (from a non-TLS-using libpthread). */ + if (GL(dl_tls_max_dtv_idx) > 0 || !TLS_INIT_TP_EXPENSIVE) { struct link_map *l; size_t nelem; @@ -1178,9 +1188,7 @@ of this helper program; chances are you slotinfo[++i].map = l; assert (i == GL(dl_tls_max_dtv_idx)); - /* Compute the TLS offsets for the various blocks. We call this - function even if none of the modules available at startup time - uses TLS to initialize some variables. */ + /* Compute the TLS offsets for the various blocks. */ _dl_determine_tlsoffset (); /* Construct the static TLS block and the dtv for the initial @@ -1554,28 +1562,27 @@ cannot allocate TLS data structures for we need it in the memory handling later. */ GL(dl_initial_searchlist) = *GL(dl_main_searchlist); +#ifndef NONTLS_INIT_TP +# define NONTLS_INIT_TP do { } while (0) +#endif + #ifdef USE_TLS -# ifndef SHARED - if (GL(dl_tls_max_dtv_idx) > 0) -# endif + if (GL(dl_tls_max_dtv_idx) > 0 || USE___THREAD || !TLS_INIT_TP_EXPENSIVE) { /* Now that we have completed relocation, the initializer data for the TLS blocks has its final values and we can copy them into the main thread's TLS area, which we allocated above. */ _dl_allocate_tls_init (tcbp); - /* And finally install it for the main thread. */ -# ifndef HAVE___THREAD - TLS_INIT_TP (tcbp, GL(dl_rtld_map).l_tls_tp_initialized); -# else - /* If the compiler supports the __thread keyword we know that - at least ld.so itself uses TLS and therefore the thread - pointer was initialized earlier. */ - assert (GL(dl_rtld_map).l_tls_tp_initialized != 0); - TLS_INIT_TP (tcbp, 1); -# endif + /* And finally install it for the main thread. If ld.so itself uses + TLS we know the thread pointer was initialized earlier. */ + const char *lossage = TLS_INIT_TP (tcbp, USE___THREAD); + if (__builtin_expect (lossage != NULL, 0)) + _dl_fatal_printf ("cannot set up thread-local storage: %s\n", lossage); } + else #endif + NONTLS_INIT_TP; { /* Initialize _r_debug. */ diff -durpN glibc-2.3.1/elf/rtld-Rules glibc-2.3.2/elf/rtld-Rules --- glibc-2.3.1/elf/rtld-Rules 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/rtld-Rules 2002-10-13 21:03:13.000000000 -0700 @@ -0,0 +1,123 @@ +# Subroutine makefile for compiling libc modules linked into dynamic linker. + +# Copyright (C) 2002 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 Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 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 +# Lesser General Public License for more details. + +# You should have received a copy of the GNU Lesser General Public +# License along with the GNU C Library; if not, write to the Free +# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +# 02111-1307 USA. + +# This makefile is never used by itself, but only from the rtld-libc.a +# rule in Makefile, which does make -f librtld.mk -f rtld-Rules. +# librtld.mk is the generated file containing variable definitions for +# `rtld-subdirs', a subset of the top-level $(subdirs) list; and for each +# SUBDIR in $(rtld-subdirs), `rtld-SUBDIR' listing `module.os' file names. + +.PHONY: rtld-all +rtld-all: + +# When run from the elf/Makefile to build rtld-libc.a, $(subdir) is elf. +ifeq ($(subdir),elf) + +ifndef rtld-subdirs +error This is makefile is a subroutine of elf/Makefile not to be used directly +endif + +include ../Makeconfig + +rtld-all: $(objpfx)rtld-libc.a + +$(objpfx)rtld-libc.a: $(foreach dir,$(rtld-subdirs),\ + $(addprefix $(common-objpfx)$(dir)/rtld-,\ + $(rtld-$(dir)))) + @-rm -f $@T + $(AR) cq$(verbose) $@T $^ + $(RANLIB) $@T + mv -f $@T $@ + +# Use the verbose option of ar and tar when not running silently. +ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s +verbose := v +else # -s +verbose := +endif # not -s + + +# For each subdirectory, define a pattern rule that makes all of that +# subdirectory's modules at once with one recursive make command. +object-suffixes-left := $(rtld-subdirs) +define o-iterator-doit +$(foreach obj,$(rtld-$o),$(common-objpfx)%/rtld-$(obj)): FORCE ; \ + +$$(rtld-subdir-make) +endef +include $(patsubst %,../o-iterator.mk,$(object-suffixes-left)) + +# This is how we descend into each subdirectory. See below. +define rtld-subdir-make +$(MAKE) -C ../$* objdir=$(objdir) -f Makefile -f ../elf/rtld-Rules rtld-all \ + rtld-modules='$(addprefix rtld-,$(rtld-$*))' +endef + +FORCE: + +else + +# In this case we are being run by $(rtld-subdir-make), above. +# Some other subdir's Makefile has provided all its normal rules, +# and we just provide some additional definitions. + +# These are the basic compilation rules corresponding to the Makerules ones. +# The sysd-rules generated makefile already defines pattern rules for rtld-% +# targets built from sysdeps source files. +$(objpfx)rtld-%.os: %.S $(before-compile); $(compile-command.S) +$(objpfx)rtld-%.d: %.S $(before-compile); $(+make-deps) +$(objpfx)rtld-%.os: %.s $(before-compile); $(compile-command.s) +$(objpfx)rtld-%.d: %.s $(before-compile); $(+make-deps) +$(objpfx)rtld-%.os: %.c $(before-compile); $(compile-command.c) +$(objpfx)rtld-%.d: %.c $(before-compile); $(+make-deps) + +# The rules for generated source files. +$(objpfx)rtld-%.os: $(objpfx)%.S $(before-compile); $(compile-command.S) +$(objpfx)rtld-%.d: $(objpfx)%.S $(before-compile); $(+make-deps) +$(objpfx)rtld-%.os: $(objpfx)%.s $(before-compile); $(compile-command.s) +$(objpfx)rtld-%.d: $(objpfx)%.s $(before-compile); $(+make-deps) +$(objpfx)rtld-%.os: $(objpfx)%.c $(before-compile); $(compile-command.c) +$(objpfx)rtld-%.d: $(objpfx)%.c $(before-compile); $(+make-deps) + +# The command line setting of rtld-modules (see above) tells us +# what we need to build, and that tells us what dependency files we need. +rtld-all: $(addprefix $(objpfx),$(rtld-modules)) + +# Figure out the dependency files we need. After respecting the $(omit-deps) +# list as applied to the names without the `rtld-', there may be none left. +rtld-depfiles := $(patsubst %,$(objpfx)rtld-%.d,\ + $(filter-out $(omit-deps),\ + $(rtld-modules:rtld-%.os=%))) +ifdef rtld-depfiles +-include $(rtld-depfiles) +endif + +# Just in case we wind up e.g. regenerating dependencies for non-rtld objects, +# we don't unconditionally modify the flags. For rtld-% targets, use the +# special flags set below. +CFLAGS += $(if $(filter rtld-%,$(@F)),$(CFLAGS-rtld)) +CPPFLAGS += $(if $(filter rtld-%,$(@F)),$(CPPFLAGS-rtld)) + + +# This here is the whole point of all the shenanigans. +CPPFLAGS-rtld := -DNOT_IN_libc=1 -DIS_IN_rtld=1 +CFLAGS-rtld := # blah + + +endif diff -durpN glibc-2.3.1/elf/sprof.c glibc-2.3.2/elf/sprof.c --- glibc-2.3.1/elf/sprof.c 2002-08-24 21:12:24.000000000 -0700 +++ glibc-2.3.2/elf/sprof.c 2003-01-02 12:01:54.000000000 -0800 @@ -1,5 +1,5 @@ /* Read and display shared object profiling data. - Copyright (C) 1997,1998,1999,2000,2001,2002 Free Software Foundation, Inc. + Copyright (C) 1997-2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -351,7 +351,7 @@ Copyright (C) %s Free Software Foundatio This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\ "), - "2002"); + "2003"); fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper"); } diff -durpN glibc-2.3.1/elf/tls-macros.h glibc-2.3.2/elf/tls-macros.h --- glibc-2.3.1/elf/tls-macros.h 2002-10-04 23:51:17.000000000 -0700 +++ glibc-2.3.2/elf/tls-macros.h 2003-02-25 15:40:08.000000000 -0800 @@ -122,8 +122,10 @@ # define TLS_GD(x) \ ({ int *__l, __c, __d; \ - asm (".long 0x66666666\n\t" \ + asm (".byte 0x66\n\t" \ "leaq " #x "@tlsgd(%%rip),%%rdi\n\t" \ + ".word 0x6666\n\t" \ + "rex64\n\t" \ "call __tls_get_addr@plt" \ : "=a" (__l), "=&c" (__c), "=&d" (__d) \ : : "rdi", "rsi", "r8", "r9", "r10", "r11"); \ @@ -143,9 +145,25 @@ : "=r" (__l), "=r" (__tp)); \ __l; }) -# define TLS_IE(x) \ +# ifdef PIC +# define TLS_IE(x) \ ({ int *__l; void *__tp; \ - asm ("mova 0f,r0\n\t" \ + register void *__gp __asm__("r12"); \ + asm ("mov.l 1f,r0\n\t" \ + "stc gbr,%1\n\t" \ + "mov.l @(r0,r12),%0\n\t" \ + "bra 2f\n\t" \ + " add %1,%0\n\t" \ + ".align 2\n\t" \ + "1: .long " #x "@gottpoff\n\t" \ + "2:" \ + : "=r" (__l), "=r" (__tp) : "r" (__gp) : "r0"); \ + __l; }) +# else +# define TLS_IE(x) \ + ({ int *__l; void *__tp; \ + asm ("mov.l r12,@-r15\n\t" \ + "mova 0f,r0\n\t" \ "mov.l 0f,r12\n\t" \ "add r0,r12\n\t" \ "mov.l 1f,r0\n\t" \ @@ -156,13 +174,40 @@ ".align 2\n\t" \ "1: .long " #x "@gottpoff\n\t" \ "0: .long _GLOBAL_OFFSET_TABLE_\n\t" \ - "2:" \ - : "=r" (__l), "=r" (__tp) : : "r0", "r12"); \ + "2: mov.l @r15+,r12" \ + : "=r" (__l), "=r" (__tp) : : "r0"); \ __l; }) +#endif -# define TLS_LD(x) \ +# ifdef PIC +# define TLS_LD(x) \ ({ int *__l; \ - asm ("mova 0f,r0\n\t" \ + register void *__gp __asm__("r12"); \ + asm ("mov.l 1f,r4\n\t" \ + "mova 2f,r0\n\t" \ + "mov.l 2f,r1\n\t" \ + "add r0,r1\n\t" \ + "jsr @r1\n\t" \ + " add r12,r4\n\t" \ + "bra 4f\n\t" \ + " nop\n\t" \ + ".align 2\n\t" \ + "1: .long " #x "@tlsldm\n\t" \ + "2: .long __tls_get_addr@plt\n\t" \ + "4: mov.l 3f,%0\n\t" \ + "bra 5f\n\t" \ + " add r0,%0\n\t" \ + ".align 2\n\t" \ + "3: .long " #x "@dtpoff\n\t" \ + "5:" \ + : "=r" (__l) : "r" (__gp) : "r0", "r1", "r2", "r3", "r4", "r5", \ + "r6", "r7", "pr", "t"); \ + __l; }) +# else +# define TLS_LD(x) \ + ({ int *__l; \ + asm ("mov.l r12,@-r15\n\t" \ + "mova 0f,r0\n\t" \ "mov.l 0f,r12\n\t" \ "add r0,r12\n\t" \ "mov.l 1f,r4\n\t" \ @@ -182,14 +227,36 @@ " add r0,%0\n\t" \ ".align 2\n\t" \ "3: .long " #x "@dtpoff\n\t" \ - "5:" \ + "5: mov.l @r15+,r12" \ : "=r" (__l) : : "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", \ - "r12", "pr", "t"); \ + "pr", "t"); \ __l; }) +#endif -# define TLS_GD(x) \ +# ifdef PIC +# define TLS_GD(x) \ ({ int *__l; \ - asm ("mova 0f,r0\n\t" \ + register void *__gp __asm__("r12"); \ + asm ("mov.l 1f,r4\n\t" \ + "mova 2f,r0\n\t" \ + "mov.l 2f,r1\n\t" \ + "add r0,r1\n\t" \ + "jsr @r1\n\t" \ + " add r12,r4\n\t" \ + "bra 3f\n\t" \ + " mov r0,%0\n\t" \ + ".align 2\n\t" \ + "1: .long " #x "@tlsgd\n\t" \ + "2: .long __tls_get_addr@plt\n\t" \ + "3:" \ + : "=r" (__l) : "r" (__gp) : "r0", "r1", "r2", "r3", "r4", "r5", \ + "r6", "r7", "pr", "t"); \ + __l; }) +# else +# define TLS_GD(x) \ + ({ int *__l; \ + asm ("mov.l r12,@-r15\n\t" \ + "mova 0f,r0\n\t" \ "mov.l 0f,r12\n\t" \ "add r0,r12\n\t" \ "mov.l 1f,r4\n\t" \ @@ -204,11 +271,410 @@ "1: .long " #x "@tlsgd\n\t" \ "2: .long __tls_get_addr@plt\n\t" \ "0: .long _GLOBAL_OFFSET_TABLE_\n\t" \ - "3:" \ + "3: mov.l @r15+,r12" \ : "=r" (__l) : : "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", \ - "r12", "pr", "t"); \ + "pr", "t"); \ + __l; }) +#endif + +#elif defined __alpha__ + +register void *__gp __asm__("$29"); + +# define TLS_LE(x) \ + ({ int *__l; \ + asm ("call_pal 158\n\tlda $0," #x "($0)\t\t!tprel" : "=v"(__l)); \ + __l; }) + +# define TLS_IE(x) \ + ({ char *__tp; unsigned long __o; \ + asm ("call_pal 158\n\tldq %1," #x "($gp)\t\t!gottprel" \ + : "=v"(__tp), "=r"(__o) : "r"(__gp)); \ + (int *)(__tp + __o); }) + +# define TLS_LD(x) \ + ({ extern void *__tls_get_addr(void *); int *__l; void *__i; \ + asm ("lda %0," #x "($gp)\t\t!tlsldm" : "=r" (__i) : "r"(__gp)); \ + __i = __tls_get_addr(__i); \ + asm ("lda %0, " #x "(%1)\t\t!dtprel" : "=r"(__l) : "r"(__i)); \ + __l; }) + +# define TLS_GD(x) \ + ({ extern void *__tls_get_addr(void *); void *__i; \ + asm ("lda %0," #x "($gp)\t\t!tlsgd" : "=r" (__i) : "r"(__gp)); \ + (int *) __tls_get_addr(__i); }) + + +#elif defined __ia64__ + +# define TLS_LE(x) \ + ({ void *__l; \ + asm ("mov r2=r13\n\t" \ + ";;\n\t" \ + "addl %0=@tprel(" #x "),r2\n\t" \ + : "=r" (__l) : : "r2" ); __l; }) + +# define TLS_IE(x) \ + ({ void *__l; \ + asm (";;\n\t" \ + "addl r16=@ltoff(@tprel(" #x ")),gp\n\t" \ + ";;\n\t" \ + "ld8 r17=[r16]\n\t" \ + ";;\n\t" \ + "add %0=r13,r17\n\t" \ + : "=r" (__l) : : "r16", "r17" ); __l; }) + +# define __TLS_CALL_CLOBBERS \ + "r2", "r3", "r8", "r9", "r10", "r11", "r14", "r15", "r16", "r17", \ + "r18", "r19", "r20", "r21", "r22", "r23", "r24", "r25", "r26", \ + "r27", "r28", "r29", "r30", "r31", \ + "p6", "p7", "p8", "p9", "p10", "p11", "p12", "p13", "p14", "p15", \ + "f6", "f7", "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \ + "b6", "b7", \ + "out0", "out1", "out2", "out3", "out4", "out5", "out6", "out7" + +# define TLS_LD(x) \ + ({ void *__l; \ + asm (";;\n\t" \ + "mov loc0=gp\n\t" \ + "addl r16=@ltoff(@dtpmod(" #x ")),gp\n\t" \ + "addl out1=@dtprel(" #x "),r0\n\t" \ + ";;\n\t" \ + "ld8 out0=[r16]\n\t" \ + "br.call.sptk.many b0=__tls_get_addr" \ + ";;\n\t" \ + "mov gp=loc0\n\t" \ + "mov %0=r8\n\t" \ + : "=r" (__l) : : "loc0", __TLS_CALL_CLOBBERS); \ __l; }) +# define TLS_GD(x) \ + ({ void *__l; \ + asm (";;\n\t" \ + "mov loc0=gp\n\t" \ + "addl r16=@ltoff(@dtpmod(" #x ")),gp\n\t" \ + "addl r17=@ltoff(@dtprel(" #x ")),gp\n\t" \ + ";;\n\t" \ + "ld8 out0=[r16]\n\t" \ + "ld8 out1=[r17]\n\t" \ + "br.call.sptk.many b0=__tls_get_addr" \ + ";;\n\t" \ + "mov gp=loc0\n\t" \ + "mov %0=r8\n\t" \ + : "=r" (__l) : : "loc0", __TLS_CALL_CLOBBERS); \ + __l; }) + +#elif defined __sparc__ && !defined __arch64__ + +# define TLS_LE(x) \ + ({ int *__l; \ + asm ("sethi %%tle_hix22(" #x "), %0" : "=r" (__l)); \ + asm ("xor %1, %%tle_lox10(" #x "), %0" : "=r" (__l) : "r" (__l)); \ + asm ("add %%g7, %1, %0" : "=r" (__l) : "r" (__l)); \ + __l; }) + +# ifdef __PIC__ +# define TLS_LOAD_PIC \ + ({ register long pc __asm__ ("%o7"); \ + long got; \ + asm ("sethi %%hi(_GLOBAL_OFFSET_TABLE_-4), %1\n\t" \ + "call .+8\n\t" \ + "add %1, %%lo(_GLOBAL_OFFSET_TABLE_+4), %1\n\t" \ + "add %1, %0, %1\n\t" \ + : "=r" (pc), "=r" (got)); \ + got; }) +# else +# define TLS_LOAD_PIC \ + ({ long got; \ + asm (".hidden _GLOBAL_OFFSET_TABLE_\n\t" \ + "sethi %%hi(_GLOBAL_OFFSET_TABLE_), %0\n\t" \ + "or %0, %%lo(_GLOBAL_OFFSET_TABLE_), %0" \ + : "=r" (got)); \ + got; }) +# endif + +# define TLS_IE(x) \ + ({ int *__l; \ + asm ("sethi %%tie_hi22(" #x "), %0" : "=r" (__l)); \ + asm ("add %1, %%tie_lo10(" #x "), %0" : "=r" (__l) : "r" (__l)); \ + asm ("ld [%1 + %2], %0, %%tie_ld(" #x ")" \ + : "=r" (__l) : "r" (TLS_LOAD_PIC), "r" (__l)); \ + asm ("add %%g7, %1, %0, %%tie_add(" #x ")" : "=r" (__l) : "r" (__l)); \ + __l; }) + +# define TLS_LD(x) \ + ({ int *__l; register void *__o0 asm ("%o0"); \ + long __o; \ + asm ("sethi %%tldm_hi22(" #x "), %0" : "=r" (__l)); \ + asm ("add %1, %%tldm_lo10(" #x "), %0" : "=r" (__l) : "r" (__l)); \ + asm ("add %1, %2, %0, %%tldm_add(" #x ")" \ + : "=r" (__o0) : "r" (TLS_LOAD_PIC), "r" (__l)); \ + asm ("call __tls_get_addr, %%tgd_call(" #x ")\n\t" \ + " nop" \ + : "=r" (__o0) : "0" (__o0) \ + : "g1", "g2", "g3", "g4", "g5", "g6", "o1", "o2", "o3", "o4", \ + "o5", "o7", "cc"); \ + asm ("sethi %%tldo_hix22(" #x "), %0" : "=r" (__o)); \ + asm ("xor %1, %%tldo_lox10(" #x "), %0" : "=r" (__o) : "r" (__o)); \ + asm ("add %1, %2, %0, %%tldo_add(" #x ")" : "=r" (__l) \ + : "r" (__o0), "r" (__o)); \ + __l; }) + +# define TLS_GD(x) \ + ({ int *__l; register void *__o0 asm ("%o0"); \ + asm ("sethi %%tgd_hi22(" #x "), %0" : "=r" (__l)); \ + asm ("add %1, %%tgd_lo10(" #x "), %0" : "=r" (__l) : "r" (__l)); \ + asm ("add %1, %2, %0, %%tgd_add(" #x ")" \ + : "=r" (__o0) : "r" (TLS_LOAD_PIC), "r" (__l)); \ + asm ("call __tls_get_addr, %%tgd_call(" #x ")\n\t" \ + " nop" \ + : "=r" (__o0) : "0" (__o0) \ + : "g1", "g2", "g3", "g4", "g5", "g6", "o1", "o2", "o3", "o4", \ + "o5", "o7", "cc"); \ + __o0; }) + +#elif defined __s390x__ + +# define TLS_LE(x) \ + ({ unsigned long __offset; \ + asm ("bras %0,1f\n" \ + "0:\t.quad " #x "@ntpoff\n" \ + "1:\tlg %0,0(%0)" \ + : "=a" (__offset) : : "cc" ); \ + (int *) (__builtin_thread_pointer() + __offset); }) + +# ifdef PIC +# define TLS_IE(x) \ + ({ unsigned long __offset; \ + asm ("bras %0,1f\n" \ + "0:\t.quad " #x "@gotntpoff\n" \ + "1:\tlg %0,0(%0)\n\t" \ + "lg %0,0(%0,%%r12):tls_load:" #x \ + : "=&a" (__offset) : : "cc" ); \ + (int *) (__builtin_thread_pointer() + __offset); }) +# else +# define TLS_IE(x) \ + ({ unsigned long __offset; \ + asm ("bras %0,1f\n" \ + "0:\t.quad " #x "@indntpoff\n" \ + "1:\t lg %0,0(%0)\n\t" \ + "lg %0,0(%0):tls_load:" #x \ + : "=&a" (__offset) : : "cc" ); \ + (int *) (__builtin_thread_pointer() + __offset); }) +# endif + +# ifdef PIC +# define TLS_LD(x) \ + ({ unsigned long __offset, __save12; \ + asm ("bras %0,1f\n" \ + "0:\t.quad " #x "@tlsldm\n\t" \ + ".quad " #x "@dtpoff\n" \ + "1:\tlgr %1,%%r12\n\t" \ + "larl %%r12,_GLOBAL_OFFSET_TABLE_\n\t" \ + "lg %%r2,0(%0)\n\t" \ + "brasl %%r14,__tls_get_offset@plt:tls_ldcall:" #x "\n\t" \ + "lg %0,8(%0)\n\t" \ + "algr %0,%%r2\n\t" \ + "lgr %%r12,%1" \ + : "=&a" (__offset), "=&a" (__save12) \ + : : "cc", "0", "1", "2", "3", "4", "5" ); \ + (int *) (__builtin_thread_pointer() + __offset); }) +# else +# define TLS_LD(x) \ + ({ unsigned long __offset; \ + asm ("bras %0,1f\n" \ + "0:\t.quad " #x "@tlsldm\n\t" \ + ".quad " #x "@dtpoff\n" \ + "1:\tlarl %%r12,_GLOBAL_OFFSET_TABLE_\n\t" \ + "lg %%r2,0(%0)\n\t" \ + "brasl %%r14,__tls_get_offset@plt:tls_ldcall:" #x "\n\t" \ + "lg %0,8(%0)\n\t" \ + "algr %0,%%r2" \ + : "=&a" (__offset) : : "cc", "0", "1", "2", "3", "4", "5", "12" ); \ + (int *) (__builtin_thread_pointer() + __offset); }) +# endif + +# ifdef PIC +# define TLS_GD(x) \ + ({ unsigned long __offset, __save12; \ + asm ("bras %0,1f\n" \ + "0:\t.quad " #x "@tlsgd\n" \ + "1:\tlgr %1,%%r12\n\t" \ + "larl %%r12,_GLOBAL_OFFSET_TABLE_\n\t" \ + "lg %%r2,0(%0)\n\t" \ + "brasl %%r14,__tls_get_offset@plt:tls_gdcall:" #x "\n\t" \ + "lgr %0,%%r2\n\t" \ + "lgr %%r12,%1" \ + : "=&a" (__offset), "=&a" (__save12) \ + : : "cc", "0", "1", "2", "3", "4", "5" ); \ + (int *) (__builtin_thread_pointer() + __offset); }) +# else +# define TLS_GD(x) \ + ({ unsigned long __offset; \ + asm ("bras %0,1f\n" \ + "0:\t.quad " #x "@tlsgd\n" \ + "1:\tlarl %%r12,_GLOBAL_OFFSET_TABLE_\n\t" \ + "lg %%r2,0(%0)\n\t" \ + "brasl %%r14,__tls_get_offset@plt:tls_gdcall:" #x "\n\t" \ + "lgr %0,%%r2" \ + : "=&a" (__offset) : : "cc", "0", "1", "2", "3", "4", "5", "12" ); \ + (int *) (__builtin_thread_pointer() + __offset); }) +# endif + +#elif defined __s390__ + +# define TLS_LE(x) \ + ({ unsigned long __offset; \ + asm ("bras %0,1f\n" \ + "0:\t.long " #x "@ntpoff\n" \ + "1:\tl %0,0(%0)" \ + : "=a" (__offset) : : "cc" ); \ + (int *) (__builtin_thread_pointer() + __offset); }) + +# ifdef PIC +# define TLS_IE(x) \ + ({ unsigned long __offset; \ + asm ("bras %0,1f\n" \ + "0:\t.long " #x "@gotntpoff\n" \ + "1:\tl %0,0(%0)\n\t" \ + "l %0,0(%0,%%r12):tls_load:" #x \ + : "=&a" (__offset) : : "cc" ); \ + (int *) (__builtin_thread_pointer() + __offset); }) +# else +# define TLS_IE(x) \ + ({ unsigned long __offset; \ + asm ("bras %0,1f\n" \ + "0:\t.long " #x "@indntpoff\n" \ + "1:\t l %0,0(%0)\n\t" \ + "l %0,0(%0):tls_load:" #x \ + : "=&a" (__offset) : : "cc" ); \ + (int *) (__builtin_thread_pointer() + __offset); }) +# endif + +# ifdef PIC +# define TLS_LD(x) \ + ({ unsigned long __offset, __save12; \ + asm ("bras %0,1f\n" \ + "0:\t.long _GLOBAL_OFFSET_TABLE_-0b\n\t" \ + ".long __tls_get_offset@plt-0b\n\t" \ + ".long " #x "@tlsldm\n\t" \ + ".long " #x "@dtpoff\n" \ + "1:\tlr %1,%%r12\n\t" \ + "l %%r12,0(%0)\n\t" \ + "la %%r12,0(%%r12,%0)\n\t" \ + "l %%r1,4(%0)\n\t" \ + "l %%r2,8(%0)\n\t" \ + "bas %%r14,0(%%r1,%0):tls_ldcall:" #x "\n\t" \ + "l %0,12(%0)\n\t" \ + "alr %0,%%r2\n\t" \ + "lr %%r12,%1" \ + : "=&a" (__offset), "=&a" (__save12) \ + : : "cc", "0", "1", "2", "3", "4", "5" ); \ + (int *) (__builtin_thread_pointer() + __offset); }) +# else +# define TLS_LD(x) \ + ({ unsigned long __offset; \ + asm ("bras %0,1f\n" \ + "0:\t.long _GLOBAL_OFFSET_TABLE_\n\t" \ + ".long __tls_get_offset@plt\n\t" \ + ".long " #x "@tlsldm\n\t" \ + ".long " #x "@dtpoff\n" \ + "1:\tl %%r12,0(%0)\n\t" \ + "l %%r1,4(%0)\n\t" \ + "l %%r2,8(%0)\n\t" \ + "bas %%r14,0(%%r1):tls_ldcall:" #x "\n\t" \ + "l %0,12(%0)\n\t" \ + "alr %0,%%r2" \ + : "=&a" (__offset) : : "cc", "0", "1", "2", "3", "4", "5", "12" ); \ + (int *) (__builtin_thread_pointer() + __offset); }) +# endif + +# ifdef PIC +# define TLS_GD(x) \ + ({ unsigned long __offset, __save12; \ + asm ("bras %0,1f\n" \ + "0:\t.long _GLOBAL_OFFSET_TABLE_-0b\n\t" \ + ".long __tls_get_offset@plt-0b\n\t" \ + ".long " #x "@tlsgd\n" \ + "1:\tlr %1,%%r12\n\t" \ + "l %%r12,0(%0)\n\t" \ + "la %%r12,0(%%r12,%0)\n\t" \ + "l %%r1,4(%0)\n\t" \ + "l %%r2,8(%0)\n\t" \ + "bas %%r14,0(%%r1,%0):tls_gdcall:" #x "\n\t" \ + "lr %0,%%r2\n\t" \ + "lr %%r12,%1" \ + : "=&a" (__offset), "=&a" (__save12) \ + : : "cc", "0", "1", "2", "3", "4", "5" ); \ + (int *) (__builtin_thread_pointer() + __offset); }) +# else +# define TLS_GD(x) \ + ({ unsigned long __offset; \ + asm ("bras %0,1f\n" \ + "0:\t.long _GLOBAL_OFFSET_TABLE_\n\t" \ + ".long __tls_get_offset@plt\n\t" \ + ".long " #x "@tlsgd\n" \ + "1:\tl %%r12,0(%0)\n\t" \ + "l %%r1,4(%0)\n\t" \ + "l %%r2,8(%0)\n\t" \ + "bas %%r14,0(%%r1):tls_gdcall:" #x "\n\t" \ + "lr %0,%%r2" \ + : "=&a" (__offset) : : "cc", "0", "1", "2", "3", "4", "5", "12" ); \ + (int *) (__builtin_thread_pointer() + __offset); }) +# endif + +#elif defined __powerpc__ && defined __powerpc64__ + +/* PowerPC64 Local Exec TLS access. */ +# define TLS_LE(x) \ + ({ int * __result; \ + asm ( \ + " addis %0,13," #x "@tprel@ha\n" \ + " addi %0,%0," #x "@tprel@l\n" \ + : "=b" (__result) ); \ + __result; \ + }) +/* PowerPC64 Initial Exec TLS access. */ +# define TLS_IE(x) \ + ({ int * __result; \ + asm ( \ + " ld %0," #x "@got@tprel(2)\n" \ + " add %0,%0," #x "@tls\n" \ + : "=b" (__result) ); \ + __result; \ + }) +/* PowerPC64 Local Dynamic TLS access. */ +# define TLS_LD(x) \ + ({ int * __result; \ + asm ( \ + " addi 3,2," #x "@got@tlsld\n" \ + " bl .__tls_get_addr\n" \ + " nop \n" \ + " addis %0,3," #x "@dtprel@ha\n" \ + " addi %0,%0," #x "@dtprel@l\n" \ + : "=b" (__result) : \ + : "0", "3", "4", "5", "6", "7", \ + "8", "9", "10", "11", "12", \ + "lr", "ctr", \ + "cr0", "cr1", "cr5", "cr6", "cr7"); \ + __result; \ + }) +/* PowerPC64 General Dynamic TLS access. */ +# define TLS_GD(x) \ + ({ int * __result; \ + asm ( \ + " addi 3,2," #x "@got@tlsgd\n" \ + " bl .__tls_get_addr\n" \ + " nop \n" \ + " mr %0,3\n" \ + : "=b" (__result) : \ + : "0", "3", "4", "5", "6", "7", \ + "8", "9", "10", "11", "12", \ + "lr", "ctr", \ + "cr0", "cr1", "cr5", "cr6", "cr7"); \ + __result; \ + }) + #else # error "No support for this architecture so far." #endif diff -durpN glibc-2.3.1/elf/tst-array1.c glibc-2.3.2/elf/tst-array1.c --- glibc-2.3.1/elf/tst-array1.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/tst-array1.c 2002-12-10 16:53:37.000000000 -0800 @@ -0,0 +1,101 @@ +#include + +static void init (void) __attribute__ ((constructor)); + +static void +init (void) +{ + write (STDOUT_FILENO, "init\n", 5); +} + +static void fini (void) __attribute__ ((destructor)); + +static void +fini (void) +{ + write (STDOUT_FILENO, "fini\n", 5); +} + +static void +preinit_0 (void) +{ + write (STDOUT_FILENO, "preinit array 0\n", 16); +} + +static void +preinit_1 (void) +{ + write (STDOUT_FILENO, "preinit array 1\n", 16); +} + +static void +preinit_2 (void) +{ + write (STDOUT_FILENO, "preinit array 2\n", 16); +} + +void (*const preinit_array []) (void) + __attribute__ ((section (".preinit_array"), aligned (sizeof (void *)))) = +{ + &preinit_0, + &preinit_1, + &preinit_2 +}; + +static void +init_0 (void) +{ + write (STDOUT_FILENO, "init array 0\n", 13); +} + +static void +init_1 (void) +{ + write (STDOUT_FILENO, "init array 1\n", 13); +} + +static void +init_2 (void) +{ + write (STDOUT_FILENO, "init array 2\n", 13); +} + +void (*const init_array []) (void) + __attribute__ ((section (".init_array"), aligned (sizeof (void *)))) = +{ + &init_0, + &init_1, + &init_2 +}; + +static void +fini_0 (void) +{ + write (STDOUT_FILENO, "fini array 0\n", 13); +} + +static void +fini_1 (void) +{ + write (STDOUT_FILENO, "fini array 1\n", 13); +} + +static void +fini_2 (void) +{ + write (STDOUT_FILENO, "fini array 2\n", 13); +} + +void (*const fini_array []) (void) + __attribute__ ((section (".fini_array"), aligned (sizeof (void *)))) = +{ + &fini_0, + &fini_1, + &fini_2 +}; + +int +main (void) +{ + return 0; +} diff -durpN glibc-2.3.1/elf/tst-array1.exp glibc-2.3.2/elf/tst-array1.exp --- glibc-2.3.1/elf/tst-array1.exp 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/tst-array1.exp 2002-11-07 14:28:04.000000000 -0800 @@ -0,0 +1,11 @@ +preinit array 0 +preinit array 1 +preinit array 2 +init +init array 0 +init array 1 +init array 2 +fini array 2 +fini array 1 +fini array 0 +fini diff -durpN glibc-2.3.1/elf/tst-array2.c glibc-2.3.2/elf/tst-array2.c --- glibc-2.3.1/elf/tst-array2.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/tst-array2.c 2002-11-07 14:28:04.000000000 -0800 @@ -0,0 +1 @@ +#include "tst-array1.c" diff -durpN glibc-2.3.1/elf/tst-array2dep.c glibc-2.3.2/elf/tst-array2dep.c --- glibc-2.3.1/elf/tst-array2dep.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/tst-array2dep.c 2002-12-10 16:53:37.000000000 -0800 @@ -0,0 +1,69 @@ +#include + +static void init (void) __attribute__ ((constructor)); + +static void +init (void) +{ + write (STDOUT_FILENO, "DSO init\n", 9); +} + +static void fini (void) __attribute__ ((destructor)); + +static void +fini (void) +{ + write (STDOUT_FILENO, "DSO fini\n", 9); +} + +static void +init_0 (void) +{ + write (STDOUT_FILENO, "DSO init array 0\n", 17); +} + +static void +init_1 (void) +{ + write (STDOUT_FILENO, "DSO init array 1\n", 17); +} + +static void +init_2 (void) +{ + write (STDOUT_FILENO, "DSO init array 2\n", 17); +} + +void (*const init_array []) (void) + __attribute__ ((section (".init_array"), aligned (sizeof (void *)))) = +{ + &init_0, + &init_1, + &init_2 +}; + +static void +fini_0 (void) +{ + write (STDOUT_FILENO, "DSO fini array 0\n", 17); +} + +static void +fini_1 (void) +{ + write (STDOUT_FILENO, "DSO fini array 1\n", 17); +} + +static void +fini_2 (void) +{ + write (STDOUT_FILENO, "DSO fini array 2\n", 17); +} + +void (*const fini_array []) (void) + __attribute__ ((section (".fini_array"), aligned (sizeof (void *)))) = +{ + &fini_0, + &fini_1, + &fini_2 +}; diff -durpN glibc-2.3.1/elf/tst-array2.exp glibc-2.3.2/elf/tst-array2.exp --- glibc-2.3.1/elf/tst-array2.exp 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/tst-array2.exp 2002-11-07 14:28:04.000000000 -0800 @@ -0,0 +1,19 @@ +preinit array 0 +preinit array 1 +preinit array 2 +DSO init +DSO init array 0 +DSO init array 1 +DSO init array 2 +init +init array 0 +init array 1 +init array 2 +fini array 2 +fini array 1 +fini array 0 +fini +DSO fini array 2 +DSO fini array 1 +DSO fini array 0 +DSO fini diff -durpN glibc-2.3.1/elf/tst-array3.c glibc-2.3.2/elf/tst-array3.c --- glibc-2.3.1/elf/tst-array3.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/tst-array3.c 2002-11-07 14:28:04.000000000 -0800 @@ -0,0 +1 @@ +#include "tst-array1.c" diff -durpN glibc-2.3.1/elf/tst-array4.c glibc-2.3.2/elf/tst-array4.c --- glibc-2.3.1/elf/tst-array4.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/tst-array4.c 2003-01-27 12:44:03.000000000 -0800 @@ -0,0 +1,18 @@ +#include + +#define main array1_main +#include "tst-array1.c" +#undef main + +int +main (void) +{ + void *handle = dlopen ("tst-array2dep.so", RTLD_LAZY); + + array1_main (); + + if (handle != NULL) + dlclose (handle); + + return 0; +} diff -durpN glibc-2.3.1/elf/tst-array4.exp glibc-2.3.2/elf/tst-array4.exp --- glibc-2.3.1/elf/tst-array4.exp 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/tst-array4.exp 2003-01-27 12:44:03.000000000 -0800 @@ -0,0 +1,19 @@ +preinit array 0 +preinit array 1 +preinit array 2 +init +init array 0 +init array 1 +init array 2 +DSO init +DSO init array 0 +DSO init array 1 +DSO init array 2 +DSO fini array 2 +DSO fini array 1 +DSO fini array 0 +DSO fini +fini array 2 +fini array 1 +fini array 0 +fini diff -durpN glibc-2.3.1/elf/tst-tls7.c glibc-2.3.2/elf/tst-tls7.c --- glibc-2.3.1/elf/tst-tls7.c 2002-02-13 21:10:20.000000000 -0800 +++ glibc-2.3.2/elf/tst-tls7.c 2002-12-10 16:42:33.000000000 -0800 @@ -32,9 +32,9 @@ do_test (void) time. The value of the first round is used. */ if (modid == -1) modid = ((struct link_map *) h)->l_tls_modid; - else if (((struct link_map *) h)->l_tls_modid != modid) + else if (((struct link_map *) h)->l_tls_modid != (size_t) modid) { - printf ("round %d: modid now %d, initially %d\n", + printf ("round %d: modid now %zu, initially %d\n", i, ((struct link_map *) h)->l_tls_modid, modid); result = 1; } diff -durpN glibc-2.3.1/elf/tst-tls8.c glibc-2.3.2/elf/tst-tls8.c --- glibc-2.3.1/elf/tst-tls8.c 2002-02-14 02:31:04.000000000 -0800 +++ glibc-2.3.2/elf/tst-tls8.c 2002-12-04 10:22:02.000000000 -0800 @@ -39,7 +39,7 @@ do_test (void) modid1 = ((struct link_map *) h1)->l_tls_modid; else if (((struct link_map *) h1)->l_tls_modid != modid1) { - printf ("round %d: modid now %d, initially %d\n", + printf ("round %d: modid now %zd, initially %d\n", i, ((struct link_map *) h1)->l_tls_modid, modid1); result = 1; } @@ -69,7 +69,7 @@ do_test (void) modid2 = ((struct link_map *) h1)->l_tls_modid; else if (((struct link_map *) h1)->l_tls_modid != modid2) { - printf ("round %d: modid now %d, initially %d\n", + printf ("round %d: modid now %zd, initially %d\n", i, ((struct link_map *) h1)->l_tls_modid, modid2); result = 1; } @@ -108,7 +108,7 @@ do_test (void) time. The value of the first round is used. */ if (((struct link_map *) h1)->l_tls_modid != modid1) { - printf ("round %d: modid now %d, initially %d\n", + printf ("round %d: modid now %zd, initially %d\n", i, ((struct link_map *) h1)->l_tls_modid, modid1); result = 1; } @@ -136,7 +136,7 @@ do_test (void) time. The value of the first round is used. */ if (((struct link_map *) h1)->l_tls_modid != modid2) { - printf ("round %d: modid now %d, initially %d\n", + printf ("round %d: modid now %zd, initially %d\n", i, ((struct link_map *) h1)->l_tls_modid, modid2); result = 1; } diff -durpN glibc-2.3.1/elf/tst-tls9.c glibc-2.3.2/elf/tst-tls9.c --- glibc-2.3.1/elf/tst-tls9.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/tst-tls9.c 2002-12-04 10:22:02.000000000 -0800 @@ -0,0 +1,42 @@ +#include +#include +#include + +#include +#include + +#define TEST_FUNCTION do_test () +static int +do_test (void) +{ +#ifdef USE_TLS + static const char modname1[] = "tst-tlsmod5.so"; + static const char modname2[] = "tst-tlsmod6.so"; + int result = 0; + + void *h1 = dlopen (modname1, RTLD_LAZY); + if (h1 == NULL) + { + printf ("cannot open '%s': %s\n", modname1, dlerror ()); + result = 1; + } + void *h2 = dlopen (modname2, RTLD_LAZY); + if (h2 == NULL) + { + printf ("cannot open '%s': %s\n", modname2, dlerror ()); + result = 1; + } + + if (h1 != NULL) + dlclose (h1); + if (h2 != NULL) + dlclose (h2); + + return result; +#else + return 0; +#endif +} + + +#include "../test-skeleton.c" diff -durpN glibc-2.3.1/elf/tst-tls9-static.c glibc-2.3.2/elf/tst-tls9-static.c --- glibc-2.3.1/elf/tst-tls9-static.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/tst-tls9-static.c 2002-10-21 23:22:38.000000000 -0700 @@ -0,0 +1 @@ +#include "tst-tls9.c" diff -durpN glibc-2.3.1/elf/tst-tlsmod5.c glibc-2.3.2/elf/tst-tlsmod5.c --- glibc-2.3.1/elf/tst-tlsmod5.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/tst-tlsmod5.c 2002-10-21 23:22:38.000000000 -0700 @@ -0,0 +1,7 @@ +#include + +#ifdef USE_TLS +#include "tls-macros.h" + +COMMON_INT_DEF(foo); +#endif diff -durpN glibc-2.3.1/elf/tst-tlsmod6.c glibc-2.3.2/elf/tst-tlsmod6.c --- glibc-2.3.1/elf/tst-tlsmod6.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/elf/tst-tlsmod6.c 2002-10-21 23:22:38.000000000 -0700 @@ -0,0 +1,7 @@ +#include + +#ifdef USE_TLS +#include "tls-macros.h" + +COMMON_INT_DEF(bar); +#endif diff -durpN glibc-2.3.1/elf/Versions glibc-2.3.2/elf/Versions --- glibc-2.3.1/elf/Versions 2002-10-09 21:21:03.000000000 -0700 +++ glibc-2.3.2/elf/Versions 2002-12-04 10:22:02.000000000 -0800 @@ -51,6 +51,6 @@ ld { _dl_unload_cache; _rtld_global; _dl_tls_symaddr; _dl_allocate_tls; _dl_deallocate_tls; _dl_get_tls_static_info; _dl_allocate_tls_init; - _dl_get_origin; + _dl_get_origin; _dl_tls_setup; } } diff -durpN glibc-2.3.1/extra-lib.mk glibc-2.3.2/extra-lib.mk --- glibc-2.3.1/extra-lib.mk 2002-04-09 00:59:14.000000000 -0700 +++ glibc-2.3.2/extra-lib.mk 2002-10-17 10:05:51.000000000 -0700 @@ -6,7 +6,7 @@ # to be included in that library. A sysdep Makefile can add to # $(lib)-sysdep_routines to include additional modules. -override lib := $(firstword $(extra-libs-left)) +lib := $(firstword $(extra-libs-left)) extra-libs-left := $(filter-out $(lib),$(extra-libs-left)) object-suffixes-$(lib) := $(filter-out $($(lib)-inhibit-o),$(object-suffixes)) @@ -79,12 +79,10 @@ endif endif -cpp-srcs-left = $(lib)-routines -ifneq (,$($(lib)-routines)) -cpp-srcs-left = $($(lib)-routines) -include $(patsubst %,$(..)cppflags-iterator.mk,$($(lib)-routines)) -endif -ifneq (,$($(lib)-sysdep_routines)) -cpp-srcs-left = $($(lib)-sysdep_routines) -include $(patsubst %,$(..)cppflags-iterator.mk,$($(lib)-sysdep_routines)) +# This will define `libof-ROUTINE := LIB' for each of the routines. +cpp-srcs-left := $($(lib)-routines) $($(lib)-sysdep_routines) +ifneq (,$(cpp-srcs-left)) +include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left)) endif + +CPPFLAGS-$(lib) := -DNOT_IN_libc=1 -DIS_IN_$(lib)=1 diff -durpN glibc-2.3.1/FAQ glibc-2.3.2/FAQ --- glibc-2.3.1/FAQ 2002-10-02 17:58:40.000000000 -0700 +++ glibc-2.3.2/FAQ 2003-02-20 22:16:55.000000000 -0800 @@ -270,7 +270,7 @@ understand all the features of ELF, incl The static library can be compiled with less featureful tools, but lacks key features such as NSS. -For Linux or Hurd, you want binutils 2.10.1 or higher. These are the only +For Linux or Hurd, you want binutils 2.13 or higher. These are the only versions we've tested and found reliable. Other versions may work but we don't recommend them, especially not when C++ is involved. diff -durpN glibc-2.3.1/FAQ.in glibc-2.3.2/FAQ.in --- glibc-2.3.1/FAQ.in 2002-10-02 16:27:50.000000000 -0700 +++ glibc-2.3.2/FAQ.in 2002-12-09 14:55:04.000000000 -0800 @@ -87,7 +87,7 @@ understand all the features of ELF, incl The static library can be compiled with less featureful tools, but lacks key features such as NSS. -For Linux or Hurd, you want binutils 2.10.1 or higher. These are the only +For Linux or Hurd, you want binutils 2.13 or higher. These are the only versions we've tested and found reliable. Other versions may work but we don't recommend them, especially not when C++ is involved. diff -durpN glibc-2.3.1/gmon/gmon.c glibc-2.3.2/gmon/gmon.c --- glibc-2.3.1/gmon/gmon.c 2002-08-29 02:16:19.000000000 -0700 +++ glibc-2.3.2/gmon/gmon.c 2003-01-07 19:49:47.000000000 -0800 @@ -381,7 +381,14 @@ __write_profiling (void) write_gmon (); _gmonparam.state = save; } +#ifndef SHARED +/* This symbol isn't used anywhere in the DSO and it is not exported. + This would normally mean it should be removed to get the same API + in static libraries. But since profiling is special in static libs + anyway we keep it. But not when building the DSO since some + quality assurance tests will otherwise trigger. */ weak_alias (__write_profiling, write_profiling) +#endif void diff -durpN glibc-2.3.1/grp/fgetgrent.c glibc-2.3.2/grp/fgetgrent.c --- glibc-2.3.1/grp/fgetgrent.c 2001-07-07 12:20:53.000000000 -0700 +++ glibc-2.3.2/grp/fgetgrent.c 2002-11-01 18:15:49.000000000 -0800 @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1996, 1997, 1999, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1991,1996,1997,1999,2000,2002 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 @@ -26,7 +26,7 @@ /* We need to protect the dynamic buffer handling. */ __libc_lock_define_initialized (static, lock); -static char *buffer; +libc_freeres_ptr (static char *buffer); /* Read one entry from the given stream. */ struct group * @@ -83,13 +83,3 @@ fgetgrent (FILE *stream) return result; } - - -/* Free all resources if necessary. */ -static void __attribute__ ((unused)) -free_mem (void) -{ - free (buffer); -} - -text_set_element (__libc_subfreeres, free_mem); diff -durpN glibc-2.3.1/hurd/errno.c glibc-2.3.2/hurd/errno.c --- glibc-2.3.1/hurd/errno.c 2002-03-11 13:28:21.000000000 -0800 +++ glibc-2.3.2/hurd/errno.c 1969-12-31 16:00:00.000000000 -0800 @@ -1,28 +0,0 @@ -/* __errno_location -- helper function for locating per-thread errno value - Copyright (C) 2002 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 Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include -#include - -int * -__errno_location (void) -{ - return (int *) __hurd_threadvar_location (_HURD_THREADVAR_ERRNO); -} -strong_alias (__errno_location, __hurd_errno_location) diff -durpN glibc-2.3.1/hurd/lookup-retry.c glibc-2.3.2/hurd/lookup-retry.c --- glibc-2.3.1/hurd/lookup-retry.c 2002-06-12 13:57:22.000000000 -0700 +++ glibc-2.3.2/hurd/lookup-retry.c 2003-01-12 19:57:50.000000000 -0800 @@ -1,5 +1,6 @@ /* hairy bits of Hurd file name lookup - Copyright (C) 1992,93,94,95,96,97,99,2001,02 Free Software Foundation, Inc. + Copyright (C) 1992,1993,1994,1995,1996,1997,1999,2001,2002,2003 + 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 @@ -193,7 +194,7 @@ __hurd_file_name_lookup_retry (error_t ( char *end; int save = errno; errno = 0; - fd = (int) strtol (&retryname[3], &end, 10); + fd = (int) strtoul (&retryname[3], &end, 10); if (end == NULL || errno || /* Malformed number. */ /* Check for excess text after the number. A slash is valid; it ends the component. Anything else diff -durpN glibc-2.3.1/hurd/Makefile glibc-2.3.2/hurd/Makefile --- glibc-2.3.1/hurd/Makefile 2002-03-11 15:37:11.000000000 -0800 +++ glibc-2.3.2/hurd/Makefile 2003-02-20 22:57:14.000000000 -0800 @@ -1,4 +1,4 @@ -# Copyright (C) 1991,92,93,94,95,96,97,98,99,2001 +# Copyright (C) 1991,92,93,94,95,96,97,98,99,2001,2002 # Free Software Foundation, Inc. # This file is part of the GNU C Library. @@ -59,7 +59,7 @@ routines = hurdstartup hurdinit \ fopenport \ vpprintf \ ports-get ports-set hurdports hurdmsg \ - errno \ + errno-loc \ $(sig) $(dtable) $(inlines) port-cleanup report-wait sig = hurdsig hurdfault siginfo hurd-raise preempt-sig \ trampoline longjmp-ts catch-exc exc2signal hurdkill sigunwind \ diff -durpN glibc-2.3.1/iconv/gconv_builtin.c glibc-2.3.2/iconv/gconv_builtin.c --- glibc-2.3.1/iconv/gconv_builtin.c 2001-07-20 22:32:30.000000000 -0700 +++ glibc-2.3.2/iconv/gconv_builtin.c 2002-12-02 13:26:09.000000000 -0800 @@ -1,5 +1,5 @@ /* Table for builtin transformation mapping. - Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 1997-1999, 2000-2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -31,6 +31,7 @@ static struct builtin_map { const char *name; __gconv_fct fct; + __gconv_btowc_fct btowc_fct; int min_needed_from; int max_needed_from; @@ -39,11 +40,12 @@ static struct builtin_map } map[] = { -#define BUILTIN_TRANSFORMATION(From, To, Cost, Name, Fct, MinF, MaxF, \ - MinT, MaxT) \ +#define BUILTIN_TRANSFORMATION(From, To, Cost, Name, Fct, BtowcFct, \ + MinF, MaxF, MinT, MaxT) \ { \ .name = Name, \ .fct = Fct, \ + .btowc_fct = BtowcFct, \ \ .min_needed_from = MinF, \ .max_needed_from = MaxF, \ @@ -69,6 +71,7 @@ __gconv_get_builtin_trans (const char *n assert (cnt < sizeof (map) / sizeof (map[0])); step->__fct = map[cnt].fct; + step->__btowc_fct = map[cnt].btowc_fct; step->__init_fct = NULL; step->__end_fct = NULL; step->__shlib_handle = NULL; diff -durpN glibc-2.3.1/iconv/gconv_builtin.h glibc-2.3.2/iconv/gconv_builtin.h --- glibc-2.3.1/iconv/gconv_builtin.h 2001-07-23 01:27:59.000000000 -0700 +++ glibc-2.3.2/iconv/gconv_builtin.h 2002-12-02 13:26:09.000000000 -0800 @@ -1,5 +1,5 @@ /* Builtin transformations. - Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 1997-1999, 2000-2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -30,14 +30,14 @@ BUILTIN_ALIAS ("OSF00010105//", "ISO-106 BUILTIN_ALIAS ("OSF00010106//", "ISO-10646/UCS4/") /* level 3 */ BUILTIN_TRANSFORMATION ("INTERNAL", "ISO-10646/UCS4/", 1, "=INTERNAL->ucs4", - __gconv_transform_internal_ucs4, 4, 4, 4, 4) + __gconv_transform_internal_ucs4, NULL, 4, 4, 4, 4) BUILTIN_TRANSFORMATION ("ISO-10646/UCS4/", "INTERNAL", 1, "=ucs4->INTERNAL", - __gconv_transform_ucs4_internal, 4, 4, 4, 4) + __gconv_transform_ucs4_internal, NULL, 4, 4, 4, 4) BUILTIN_TRANSFORMATION ("INTERNAL", "UCS-4LE//", 1, "=INTERNAL->ucs4le", - __gconv_transform_internal_ucs4le, 4, 4, 4, 4) + __gconv_transform_internal_ucs4le, NULL, 4, 4, 4, 4) BUILTIN_TRANSFORMATION ("UCS-4LE//", "INTERNAL", 1, "=ucs4le->INTERNAL", - __gconv_transform_ucs4le_internal, 4, 4, 4, 4) + __gconv_transform_ucs4le_internal, NULL, 4, 4, 4, 4) BUILTIN_ALIAS ("WCHAR_T//", "INTERNAL") @@ -48,10 +48,11 @@ BUILTIN_ALIAS ("OSF05010001//", "ISO-106 BUILTIN_ALIAS ("ISO-10646/UTF-8/", "ISO-10646/UTF8/") BUILTIN_TRANSFORMATION ("INTERNAL", "ISO-10646/UTF8/", 1, "=INTERNAL->utf8", - __gconv_transform_internal_utf8, 4, 4, 1, 6) + __gconv_transform_internal_utf8, NULL, 4, 4, 1, 6) BUILTIN_TRANSFORMATION ("ISO-10646/UTF8/", "INTERNAL", 1, "=utf8->INTERNAL", - __gconv_transform_utf8_internal, 1, 6, 4, 4) + __gconv_transform_utf8_internal, __gconv_btwoc_ascii, + 1, 6, 4, 4) BUILTIN_ALIAS ("UCS2//", "ISO-10646/UCS2/") BUILTIN_ALIAS ("UCS-2//", "ISO-10646/UCS2/") @@ -60,10 +61,10 @@ BUILTIN_ALIAS ("OSF00010101//", "ISO-106 BUILTIN_ALIAS ("OSF00010102//", "ISO-10646/UCS2/") /* level 3 */ BUILTIN_TRANSFORMATION ("ISO-10646/UCS2/", "INTERNAL", 1, "=ucs2->INTERNAL", - __gconv_transform_ucs2_internal, 2, 2, 4, 4) + __gconv_transform_ucs2_internal, NULL, 2, 2, 4, 4) BUILTIN_TRANSFORMATION ("INTERNAL", "ISO-10646/UCS2/", 1, "=INTERNAL->ucs2", - __gconv_transform_internal_ucs2, 4, 4, 2, 2) + __gconv_transform_internal_ucs2, NULL, 4, 4, 2, 2) BUILTIN_ALIAS ("ANSI_X3.4//", "ANSI_X3.4-1968//") @@ -80,10 +81,11 @@ BUILTIN_ALIAS ("CSASCII//", "ANSI_X3.4-1 BUILTIN_ALIAS ("OSF00010020//", "ANSI_X3.4-1968//") BUILTIN_TRANSFORMATION ("ANSI_X3.4-1968//", "INTERNAL", 1, "=ascii->INTERNAL", - __gconv_transform_ascii_internal, 4, 4, 1, 1) + __gconv_transform_ascii_internal, __gconv_btwoc_ascii, + 4, 4, 1, 1) BUILTIN_TRANSFORMATION ("INTERNAL", "ANSI_X3.4-1968//", 1, "=INTERNAL->ascii", - __gconv_transform_internal_ascii, 4, 4, 1, 1) + __gconv_transform_internal_ascii, NULL, 4, 4, 1, 1) #if BYTE_ORDER == BIG_ENDIAN @@ -94,11 +96,13 @@ BUILTIN_ALIAS ("UCS-2LE//", "UNICODELITT BUILTIN_TRANSFORMATION ("UNICODELITTLE//", "INTERNAL", 1, "=ucs2reverse->INTERNAL", - __gconv_transform_ucs2reverse_internal, 2, 2, 4, 4) + __gconv_transform_ucs2reverse_internal, NULL, + 2, 2, 4, 4) BUILTIN_TRANSFORMATION ("INTERNAL", "UNICODELITTLE//", 1, "=INTERNAL->ucs2reverse", - __gconv_transform_internal_ucs2reverse, 4, 4, 2, 2) + __gconv_transform_internal_ucs2reverse, NULL, + 4, 4, 2, 2) #else BUILTIN_ALIAS ("UNICODELITTLE//", "ISO-10646/UCS2/") BUILTIN_ALIAS ("UCS-2LE//", "ISO-10646/UCS2/") @@ -107,9 +111,11 @@ BUILTIN_ALIAS ("UCS-2BE//", "UNICODEBIG/ BUILTIN_TRANSFORMATION ("UNICODEBIG//", "INTERNAL", 1, "=ucs2reverse->INTERNAL", - __gconv_transform_ucs2reverse_internal, 2, 2, 4, 4) + __gconv_transform_ucs2reverse_internal, NULL, + 2, 2, 4, 4) BUILTIN_TRANSFORMATION ("INTERNAL", "UNICODEBIG//", 1, "=INTERNAL->ucs2reverse", - __gconv_transform_internal_ucs2reverse, 4, 4, 2, 2) + __gconv_transform_internal_ucs2reverse, NULL, + 4, 4, 2, 2) #endif diff -durpN glibc-2.3.1/iconv/gconv_cache.c glibc-2.3.2/iconv/gconv_cache.c --- glibc-2.3.1/iconv/gconv_cache.c 2002-08-24 17:37:10.000000000 -0700 +++ glibc-2.3.2/iconv/gconv_cache.c 2002-12-02 13:26:09.000000000 -0800 @@ -201,7 +201,11 @@ find_module (const char *directory, cons result->__init_fct = result->__shlib_handle->init_fct; result->__end_fct = result->__shlib_handle->end_fct; + /* These settings can be overridden by the init function. */ + result->__btowc_fct = NULL; result->__data = NULL; + + /* Call the init function. */ if (result->__init_fct != NULL) status = DL_CALL_FCT (result->__init_fct, (result)); } @@ -445,8 +449,7 @@ __gconv_release_cache (struct __gconv_st /* Free all resources if necessary. */ -static void __attribute__ ((unused)) -free_mem (void) +libc_freeres_fn (free_mem) { if (cache_malloced) free (gconv_cache); @@ -455,5 +458,3 @@ free_mem (void) __munmap (gconv_cache, cache_size); #endif } - -text_set_element (__libc_subfreeres, free_mem); diff -durpN glibc-2.3.1/iconv/gconv_conf.c glibc-2.3.2/iconv/gconv_conf.c --- glibc-2.3.1/iconv/gconv_conf.c 2002-07-27 01:07:07.000000000 -0700 +++ glibc-2.3.2/iconv/gconv_conf.c 2002-12-15 20:26:02.000000000 -0800 @@ -61,30 +61,33 @@ static const char gconv_module_ext[] = M /* We have a few builtin transformations. */ static struct gconv_module builtin_modules[] = { -#define BUILTIN_TRANSFORMATION(From, To, Cost, Name, Fct, MinF, MaxF, \ - MinT, MaxT) \ +#define BUILTIN_TRANSFORMATION(From, To, Cost, Name, Fct, BtowcFct, \ + MinF, MaxF, MinT, MaxT) \ { \ - from_string: From, \ - to_string: To, \ - cost_hi: Cost, \ - cost_lo: INT_MAX, \ - module_name: Name \ + .from_string = From, \ + .to_string = To, \ + .cost_hi = Cost, \ + .cost_lo = INT_MAX, \ + .module_name = Name \ }, #define BUILTIN_ALIAS(From, To) #include "gconv_builtin.h" -}; #undef BUILTIN_TRANSFORMATION #undef BUILTIN_ALIAS +}; static const char *builtin_aliases[] = { -#define BUILTIN_TRANSFORMATION(From, To, Cost, Name, Fct, MinF, MaxF, \ - MinT, MaxT) +#define BUILTIN_TRANSFORMATION(From, To, Cost, Name, Fct, BtowcFct, \ + MinF, MaxF, MinT, MaxT) #define BUILTIN_ALIAS(From, To) From " " To, #include "gconv_builtin.h" + +#undef BUILTIN_TRANSFORMATION +#undef BUILTIN_ALIAS }; #ifdef USE_IN_LIBIO @@ -597,11 +600,8 @@ __gconv_read_conf (void) /* Free all resources if necessary. */ -static void __attribute__ ((unused)) -free_mem (void) +libc_freeres_fn (free_mem) { if (__gconv_path_elem != NULL && __gconv_path_elem != &empty_path_elem) free ((void *) __gconv_path_elem); } - -text_set_element (__libc_subfreeres, free_mem); diff -durpN glibc-2.3.1/iconv/gconv_db.c glibc-2.3.2/iconv/gconv_db.c --- glibc-2.3.1/iconv/gconv_db.c 2002-08-04 14:39:31.000000000 -0700 +++ glibc-2.3.2/iconv/gconv_db.c 2002-12-02 13:26:09.000000000 -0800 @@ -268,6 +268,9 @@ gen_steps (struct derivation_step *best, result[step_cnt].__init_fct = shlib_handle->init_fct; result[step_cnt].__end_fct = shlib_handle->end_fct; + /* These settings can be overridden by the init function. */ + result[step_cnt].__btowc_fct = NULL; + /* Call the init function. */ if (result[step_cnt].__init_fct != NULL) { @@ -353,8 +356,12 @@ increment_counter (struct __gconv_step * step->__fct = step->__shlib_handle->fct; step->__init_fct = step->__shlib_handle->init_fct; step->__end_fct = step->__shlib_handle->end_fct; + + /* These settings can be overridden by the init function. */ + step->__btowc_fct = NULL; } + /* Call the init function. */ if (step->__init_fct != NULL) DL_CALL_FCT (step->__init_fct, (step)); } @@ -778,8 +785,7 @@ free_modules_db (struct gconv_module *no /* Free all resources if necessary. */ -static void __attribute__ ((unused)) -free_mem (void) +libc_freeres_fn (free_mem) { if (__gconv_alias_db != NULL) __tdestroy (__gconv_alias_db, free); @@ -790,5 +796,3 @@ free_mem (void) if (known_derivations != NULL) __tdestroy (known_derivations, free_derivation); } - -text_set_element (__libc_subfreeres, free_mem); diff -durpN glibc-2.3.1/iconv/gconv_dl.c glibc-2.3.2/iconv/gconv_dl.c --- glibc-2.3.1/iconv/gconv_dl.c 2002-07-27 01:07:07.000000000 -0700 +++ glibc-2.3.2/iconv/gconv_dl.c 2002-11-05 20:11:27.000000000 -0800 @@ -1,5 +1,5 @@ /* Handle loading/unloading of shared object for transformation. - Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 1997,1998,1999,2000,2001,2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -203,12 +203,11 @@ do_release_all (void *nodep) free (obj); } -static void __attribute__ ((unused)) -free_mem (void) +libc_freeres_fn (free_mem) { __tdestroy (loaded, do_release_all); + loaded = NULL; } -text_set_element (__libc_subfreeres, free_mem); #ifdef DEBUG diff -durpN glibc-2.3.1/iconv/gconv.h glibc-2.3.2/iconv/gconv.h --- glibc-2.3.1/iconv/gconv.h 2001-08-18 15:59:09.000000000 -0700 +++ glibc-2.3.2/iconv/gconv.h 2002-12-02 13:26:09.000000000 -0800 @@ -1,4 +1,4 @@ -/* Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. +/* Copyright (C) 1997-1999, 2000-2002 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 @@ -71,6 +71,9 @@ typedef int (*__gconv_fct) (struct __gco __const unsigned char **, __const unsigned char *, unsigned char **, size_t *, int, int); +/* Type of a specialized conversion function for a single byte to INTERNAL. */ +typedef wint_t (*__gconv_btowc_fct) (struct __gconv_step *, unsigned char); + /* Constructor and destructor for local data for conversion step. */ typedef int (*__gconv_init_fct) (struct __gconv_step *); typedef void (*__gconv_end_fct) (struct __gconv_step *); @@ -120,6 +123,7 @@ struct __gconv_step char *__to_name; __gconv_fct __fct; + __gconv_btowc_fct __btowc_fct; __gconv_init_fct __init_fct; __gconv_end_fct __end_fct; diff -durpN glibc-2.3.1/iconv/gconv_int.h glibc-2.3.2/iconv/gconv_int.h --- glibc-2.3.1/iconv/gconv_int.h 2002-08-29 22:20:37.000000000 -0700 +++ glibc-2.3.2/iconv/gconv_int.h 2002-12-02 13:26:09.000000000 -0800 @@ -264,7 +264,7 @@ extern int __gconv_transliterate (struct /* Builtin transformations. */ #ifdef _LIBC -# define __BUILTIN_TRANS(Name) \ +# define __BUILTIN_TRANSFORM(Name) \ extern int Name (struct __gconv_step *step, \ struct __gconv_step_data *data, \ const unsigned char **inbuf, \ @@ -272,21 +272,25 @@ extern int __gconv_transliterate (struct unsigned char **outbufstart, size_t *irreversible, \ int do_flush, int consume_incomplete) -__BUILTIN_TRANS (__gconv_transform_ascii_internal); -__BUILTIN_TRANS (__gconv_transform_internal_ascii); -__BUILTIN_TRANS (__gconv_transform_utf8_internal); -__BUILTIN_TRANS (__gconv_transform_internal_utf8); -__BUILTIN_TRANS (__gconv_transform_ucs2_internal); -__BUILTIN_TRANS (__gconv_transform_internal_ucs2); -__BUILTIN_TRANS (__gconv_transform_ucs2reverse_internal); -__BUILTIN_TRANS (__gconv_transform_internal_ucs2reverse); -__BUILTIN_TRANS (__gconv_transform_internal_ucs4); -__BUILTIN_TRANS (__gconv_transform_ucs4_internal); -__BUILTIN_TRANS (__gconv_transform_internal_ucs4le); -__BUILTIN_TRANS (__gconv_transform_ucs4le_internal); -__BUILTIN_TRANS (__gconv_transform_internal_utf16); -__BUILTIN_TRANS (__gconv_transform_utf16_internal); -# undef __BUITLIN_TRANS +__BUILTIN_TRANSFORM (__gconv_transform_ascii_internal); +__BUILTIN_TRANSFORM (__gconv_transform_internal_ascii); +__BUILTIN_TRANSFORM (__gconv_transform_utf8_internal); +__BUILTIN_TRANSFORM (__gconv_transform_internal_utf8); +__BUILTIN_TRANSFORM (__gconv_transform_ucs2_internal); +__BUILTIN_TRANSFORM (__gconv_transform_internal_ucs2); +__BUILTIN_TRANSFORM (__gconv_transform_ucs2reverse_internal); +__BUILTIN_TRANSFORM (__gconv_transform_internal_ucs2reverse); +__BUILTIN_TRANSFORM (__gconv_transform_internal_ucs4); +__BUILTIN_TRANSFORM (__gconv_transform_ucs4_internal); +__BUILTIN_TRANSFORM (__gconv_transform_internal_ucs4le); +__BUILTIN_TRANSFORM (__gconv_transform_ucs4le_internal); +__BUILTIN_TRANSFORM (__gconv_transform_internal_utf16); +__BUILTIN_TRANSFORM (__gconv_transform_utf16_internal); +# undef __BUITLIN_TRANSFORM + +/* Specialized conversion function for a single byte to INTERNAL, recognizing + only ASCII characters. */ +extern wint_t __gconv_btwoc_ascii (struct __gconv_step *step, unsigned char c); #endif diff -durpN glibc-2.3.1/iconv/gconv_simple.c glibc-2.3.2/iconv/gconv_simple.c --- glibc-2.3.1/iconv/gconv_simple.c 2002-06-28 12:43:38.000000000 -0700 +++ glibc-2.3.2/iconv/gconv_simple.c 2003-01-15 22:31:35.000000000 -0800 @@ -1,5 +1,5 @@ /* Simple transformations functions. - Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1997-2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -28,10 +28,11 @@ #include #include #include +#include #define BUILTIN_ALIAS(s1, s2) /* nothing */ -#define BUILTIN_TRANSFORMATION(From, To, Cost, Name, Fct, MinF, MaxF, \ - MinT, MaxT) \ +#define BUILTIN_TRANSFORMATION(From, To, Cost, Name, Fct, BtowcFct, \ + MinF, MaxF, MinT, MaxT) \ extern int Fct (struct __gconv_step *, struct __gconv_step_data *, \ __const unsigned char **, __const unsigned char *, \ unsigned char **, size_t *, int, int); @@ -43,6 +44,18 @@ #endif +/* Specialized conversion function for a single byte to INTERNAL, recognizing + only ASCII characters. */ +wint_t +__gconv_btwoc_ascii (struct __gconv_step *step, unsigned char c) +{ + if (c < 0x80) + return c; + else + return WEOF; +} + + /* Transform from the internal, UCS4-like format, to UCS4. The difference between the internal ucs4 format and the real UCS4 format is, if any, the endianess. The Unicode/ISO 10646 says that @@ -489,12 +502,15 @@ internal_ucs4le_loop_unaligned (struct _ # endif /* Determine the status. */ - if (*inptrp + 4 > inend) + if (*inptrp == inend) result = __GCONV_EMPTY_INPUT; - else if (*outptrp + 4 > outend) - result = __GCONV_FULL_OUTPUT; - else + else if (*inptrp + 4 > inend) result = __GCONV_INCOMPLETE_INPUT; + else + { + assert (*outptrp + 4 > outend); + result = __GCONV_FULL_OUTPUT; + } return result; } @@ -609,10 +625,13 @@ ucs4le_internal_loop (struct __gconv_ste /* Determine the status. */ if (*inptrp == inend) result = __GCONV_EMPTY_INPUT; - else if (*outptrp + 4 > outend) - result = __GCONV_FULL_OUTPUT; - else + else if (*inptrp + 4 > inend) result = __GCONV_INCOMPLETE_INPUT; + else + { + assert (*outptrp + 4 > outend); + result = __GCONV_FULL_OUTPUT; + } return result; } @@ -678,10 +697,13 @@ ucs4le_internal_loop_unaligned (struct _ /* Determine the status. */ if (*inptrp == inend) result = __GCONV_EMPTY_INPUT; - else if (*outptrp + 4 > outend) - result = __GCONV_FULL_OUTPUT; - else + else if (*inptrp + 4 > inend) result = __GCONV_INCOMPLETE_INPUT; + else + { + assert (*outptrp + 4 > outend); + result = __GCONV_FULL_OUTPUT; + } return result; } @@ -1009,7 +1031,7 @@ ucs4le_internal_loop_single (struct __gc correct and that it requires a larger number of bytes than there \ are in the input buffer. */ \ wint_t ch = **inptrp; \ - size_t cnt; \ + size_t cnt, r; \ \ state->__count = inend - *inptrp; \ \ @@ -1047,16 +1069,19 @@ ucs4le_internal_loop_single (struct __gc } \ \ /* The first byte is already consumed. */ \ - --cnt; \ + r = cnt - 1; \ while (++(*inptrp) < inend) \ { \ ch <<= 6; \ ch |= **inptrp & 0x3f; \ - --cnt; \ + --r; \ } \ \ /* Shift for the so far missing bytes. */ \ - ch <<= cnt * 6; \ + ch <<= r * 6; \ + \ + /* Store the number of bytes expected for the entire sequence. */ \ + state->__count |= cnt << 8; \ \ /* Store the value. */ \ state->__value.__wch = ch; \ @@ -1064,35 +1089,13 @@ ucs4le_internal_loop_single (struct __gc #define UNPACK_BYTES \ { \ + static const unsigned char inmask[5] = { 0xc0, 0xe0, 0xf0, 0xf8, 0xfc }; \ wint_t wch = state->__value.__wch; \ - size_t ntotal; \ - inlen = state->__count; \ + size_t ntotal = state->__count >> 8; \ \ - if (state->__value.__wch <= 0x7ff) \ - { \ - bytebuf[0] = 0xc0; \ - ntotal = 2; \ - } \ - else if (__builtin_expect (state->__value.__wch <= 0xffff, 1)) \ - { \ - bytebuf[0] = 0xe0; \ - ntotal = 3; \ - } \ - else if (__builtin_expect (state->__value.__wch < 0x1fffff, 1)) \ - { \ - bytebuf[0] = 0xf0; \ - ntotal = 4; \ - } \ - else if (__builtin_expect (state->__value.__wch < 0x3ffffff, 1)) \ - { \ - bytebuf[0] = 0xf8; \ - ntotal = 5; \ - } \ - else \ - { \ - bytebuf[0] = 0xfc; \ - ntotal = 6; \ - } \ + inlen = state->__count & 255; \ + \ + bytebuf[0] = inmask[ntotal - 2]; \ \ do \ { \ @@ -1105,6 +1108,10 @@ ucs4le_internal_loop_single (struct __gc bytebuf[0] |= wch; \ } +#define CLEAR_STATE \ + state->__count = 0 + + #include #include diff -durpN glibc-2.3.1/iconv/iconvconfig.c glibc-2.3.2/iconv/iconvconfig.c --- glibc-2.3.1/iconv/iconvconfig.c 2002-08-24 21:41:47.000000000 -0700 +++ glibc-2.3.2/iconv/iconvconfig.c 2003-01-02 11:59:10.000000000 -0800 @@ -1,5 +1,5 @@ /* Generate fastloading iconv module configuration files. - Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2000. @@ -201,8 +201,8 @@ static struct { #define BUILTIN_ALIAS(alias, real) \ { .from = alias, .to = real }, -#define BUILTIN_TRANSFORMATION(From, To, Cost, Name, Fct, MinF, MaxF, \ - MinT, MaxT) +#define BUILTIN_TRANSFORMATION(From, To, Cost, Name, Fct, BtowcFct, \ + MinF, MaxF, MinT, MaxT) #include }; #undef BUILTIN_ALIAS @@ -218,11 +218,13 @@ static struct } builtin_trans[] = { #define BUILTIN_ALIAS(alias, real) -#define BUILTIN_TRANSFORMATION(From, To, Cost, Name, Fct, MinF, MaxF, \ - MinT, MaxT) \ +#define BUILTIN_TRANSFORMATION(From, To, Cost, Name, Fct, BtowcFct, \ + MinF, MaxF, MinT, MaxT) \ { .from = From, .to = To, .module = Name, .cost = Cost }, #include }; +#undef BUILTIN_ALIAS +#undef BUILTIN_TRANSFORMATION #define nbuiltin_trans (sizeof (builtin_trans) / sizeof (builtin_trans[0])) @@ -370,7 +372,7 @@ print_version (FILE *stream, struct argp Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\ -"), "2002"); +"), "2003"); fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper"); } diff -durpN glibc-2.3.1/iconv/iconv_prog.c glibc-2.3.2/iconv/iconv_prog.c --- glibc-2.3.1/iconv/iconv_prog.c 2002-09-23 20:46:09.000000000 -0700 +++ glibc-2.3.2/iconv/iconv_prog.c 2003-02-22 11:20:07.000000000 -0800 @@ -1,5 +1,5 @@ /* Convert text in given files from the specified from-set to the to-set. - Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -239,7 +239,7 @@ main (int argc, char *argv[]) if (to_wrong) error (EXIT_FAILURE, 0, _("\ -conversions from `%s' and to `%s' are not supported"), +conversion from `%s' and to `%s' are not supported"), from_pretty, to_pretty); else error (EXIT_FAILURE, 0, @@ -422,7 +422,7 @@ print_version (FILE *stream, struct argp Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\ -"), "2002"); +"), "2003"); fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper"); } diff -durpN glibc-2.3.1/iconv/loop.c glibc-2.3.2/iconv/loop.c --- glibc-2.3.1/iconv/loop.c 2002-06-28 12:43:38.000000000 -0700 +++ glibc-2.3.2/iconv/loop.c 2003-01-15 22:30:13.000000000 -0800 @@ -1,5 +1,5 @@ /* Conversion loop frame work. - Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright (C) 1998-2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -43,6 +43,9 @@ INIT_PARAMS code to define and initialize variables from params. UPDATE_PARAMS code to store result in params. + + ONEBYTE_BODY body of the specialized conversion function for a + single byte from the current character set to INTERNAL. */ #include @@ -282,6 +285,14 @@ FCTNAME (LOOPFCT) (struct __gconv_step * /* `if' cases for MIN_NEEDED_OUTPUT ==/!= 1 is made to help the compiler generating better code. They will be optimized away since MIN_NEEDED_OUTPUT is always a constant. */ + if (MIN_NEEDED_INPUT > 1 + && __builtin_expect (inptr + MIN_NEEDED_INPUT > inend, 0)) + { + /* We don't have enough input for another complete input + character. */ + result = __GCONV_INCOMPLETE_INPUT; + break; + } if ((MIN_NEEDED_OUTPUT != 1 && __builtin_expect (outptr + MIN_NEEDED_OUTPUT > outend, 0)) || (MIN_NEEDED_OUTPUT == 1 @@ -291,14 +302,6 @@ FCTNAME (LOOPFCT) (struct __gconv_step * result = __GCONV_FULL_OUTPUT; break; } - if (MIN_NEEDED_INPUT > 1 - && __builtin_expect (inptr + MIN_NEEDED_INPUT > inend, 0)) - { - /* We don't have enough input for another complete input - character. */ - result = __GCONV_INCOMPLETE_INPUT; - break; - } /* Here comes the body the user provides. It can stop with RESULT set to GCONV_INCOMPLETE_INPUT (if the size of the @@ -425,7 +428,11 @@ SINGLE(LOOPFCT) (struct __gconv_step *st result = __GCONV_OK; /* Clear the state buffer. */ +#ifdef CLEAR_STATE + CLEAR_STATE; +#else state->__count &= ~7; +#endif } else if (result == __GCONV_INCOMPLETE_INPUT) { @@ -453,6 +460,15 @@ SINGLE(LOOPFCT) (struct __gconv_step *st #endif +#ifdef ONEBYTE_BODY +/* Define the shortcut function for btowc. */ +static wint_t +gconv_btowc (struct __gconv_step *step, unsigned char c) + ONEBYTE_BODY +# define FROM_ONEBYTE gconv_btowc +#endif + + /* We remove the macro definitions so that we can include this file again for the definition of another function. */ #undef MIN_NEEDED_INPUT @@ -465,7 +481,9 @@ SINGLE(LOOPFCT) (struct __gconv_step *st #undef EXTRA_LOOP_DECLS #undef INIT_PARAMS #undef UPDATE_PARAMS +#undef ONEBYTE_BODY #undef UNPACK_BYTES +#undef CLEAR_STATE #undef LOOP_NEED_STATE #undef LOOP_NEED_FLAGS #undef LOOP_NEED_DATA diff -durpN glibc-2.3.1/iconv/skeleton.c glibc-2.3.2/iconv/skeleton.c --- glibc-2.3.1/iconv/skeleton.c 2002-05-20 20:00:13.000000000 -0700 +++ glibc-2.3.2/iconv/skeleton.c 2002-12-02 13:26:09.000000000 -0800 @@ -101,6 +101,26 @@ EXTRA_LOOP_ARGS optional macro specifying extra arguments passed to loop function. + STORE_REST optional, needed only when MAX_NEEDED_FROM > 4. + This macro stores the seen but unconverted input bytes + in the state. + + FROM_ONEBYTE optional. If defined, should be the name of a + specialized conversion function for a single byte + from the current character set to INTERNAL. This + function has prototype + wint_t + FROM_ONEBYTE (struct __gconv_step *, unsigned char); + and does a special conversion: + - The input is a single byte. + - The output is a single uint32_t. + - The state before the conversion is the initial state; + the state after the conversion is irrelevant. + - No transliteration. + - __invocation_counter = 0. + - __internal_use = 1. + - do_flush = 0. + Modules can use mbstate_t to store conversion state as follows: * Bits 2..0 of '__count' contain the number of lookahead input bytes @@ -315,6 +335,10 @@ gconv_init (struct __gconv_step *step) step->__max_needed_from = FROM_LOOP_MAX_NEEDED_FROM; step->__min_needed_to = FROM_LOOP_MIN_NEEDED_TO; step->__max_needed_to = FROM_LOOP_MAX_NEEDED_TO; + +#ifdef FROM_ONEBYTE + step->__btowc_fct = FROM_ONEBYTE; +#endif } else if (__builtin_expect (strcmp (step->__to_name, CHARSET_NAME), 0) == 0) { @@ -796,10 +820,12 @@ FUNCTION_NAME (struct __gconv_step *step #undef EMIT_SHIFT_TO_INIT #undef FROM_LOOP #undef TO_LOOP +#undef ONE_DIRECTION #undef SAVE_RESET_STATE #undef RESET_INPUT_BUFFER #undef FUNCTION_NAME #undef PREPARE_LOOP #undef END_LOOP -#undef ONE_DIRECTION +#undef EXTRA_LOOP_ARGS #undef STORE_REST +#undef FROM_ONEBYTE diff -durpN glibc-2.3.1/iconvdata/8bit-gap.c glibc-2.3.2/iconvdata/8bit-gap.c --- glibc-2.3.1/iconvdata/8bit-gap.c 2002-06-28 12:43:38.000000000 -0700 +++ glibc-2.3.2/iconvdata/8bit-gap.c 2002-12-02 13:26:09.000000000 -0800 @@ -32,6 +32,10 @@ struct gap /* Now we can include the tables. */ #include TABLES +#ifndef NONNUL +# define NONNUL(c) ((c) != '\0') +#endif + #define FROM_LOOP from_gap #define TO_LOOP to_gap @@ -49,7 +53,7 @@ struct gap { \ uint32_t ch = to_ucs4[*inptr]; \ \ - if (HAS_HOLES && __builtin_expect (ch, L'\1') == L'\0' && *inptr != '\0') \ + if (HAS_HOLES && __builtin_expect (ch == L'\0', 0) && NONNUL (*inptr)) \ { \ /* This is an illegal character. */ \ STANDARD_FROM_LOOP_ERR_HANDLER (1); \ @@ -63,6 +67,15 @@ struct gap ++inptr; \ } #define LOOP_NEED_FLAGS +#define ONEBYTE_BODY \ + { \ + uint32_t ch = to_ucs4[c]; \ + \ + if (HAS_HOLES && __builtin_expect (ch == L'\0', 0) && NONNUL (c)) \ + return WEOF; \ + else \ + return ch; \ + } #include diff -durpN glibc-2.3.1/iconvdata/8bit-generic.c glibc-2.3.2/iconvdata/8bit-generic.c --- glibc-2.3.1/iconvdata/8bit-generic.c 2002-06-28 12:43:38.000000000 -0700 +++ glibc-2.3.2/iconvdata/8bit-generic.c 2002-12-02 13:26:09.000000000 -0800 @@ -47,6 +47,15 @@ ++inptr; \ } #define LOOP_NEED_FLAGS +#define ONEBYTE_BODY \ + { \ + uint32_t ch = to_ucs4[c]; \ + \ + if (HAS_HOLES && __builtin_expect (ch == L'\0', 0) && c != '\0') \ + return WEOF; \ + else \ + return ch; \ + } #include diff -durpN glibc-2.3.1/iconvdata/ansi_x3.110.c glibc-2.3.2/iconvdata/ansi_x3.110.c --- glibc-2.3.1/iconvdata/ansi_x3.110.c 2002-06-28 12:43:38.000000000 -0700 +++ glibc-2.3.2/iconvdata/ansi_x3.110.c 2002-12-02 13:26:09.000000000 -0800 @@ -404,7 +404,7 @@ static const char from_ucs4[][2] = \ if (__builtin_expect (ch >= 0xc1, 0) && ch <= 0xcf) \ { \ - /* Composed character. First test whether the next character \ + /* Composed character. First test whether the next byte \ is also available. */ \ uint32_t ch2; \ \ @@ -449,6 +449,15 @@ static const char from_ucs4[][2] = inptr += incr; \ } #define LOOP_NEED_FLAGS +#define ONEBYTE_BODY \ + { \ + uint32_t ch = to_ucs4[c]; \ + \ + if (__builtin_expect (ch == 0, 0) && c != '\0') \ + return WEOF; \ + else \ + return ch; \ + } #include diff -durpN glibc-2.3.1/iconvdata/armscii-8.c glibc-2.3.2/iconvdata/armscii-8.c --- glibc-2.3.1/iconvdata/armscii-8.c 2002-06-28 12:43:38.000000000 -0700 +++ glibc-2.3.2/iconvdata/armscii-8.c 2002-12-02 13:26:09.000000000 -0800 @@ -71,6 +71,17 @@ static const uint16_t map_from_armscii_8 ++inptr; \ } #define LOOP_NEED_FLAGS +#define ONEBYTE_BODY \ + { \ + if (c <= 0xa0) \ + /* Upto and including 0xa0 the ARMSCII-8 corresponds to Unicode. */ \ + return c; \ + else if (c >= 0xa2 && c <= 0xfe) \ + /* Use the table. */ \ + return map_from_armscii_8[c - 0xa2]; \ + else \ + return WEOF; \ + } #include diff -durpN glibc-2.3.1/iconvdata/big5.c glibc-2.3.2/iconvdata/big5.c --- glibc-2.3.1/iconvdata/big5.c 2002-06-28 12:43:38.000000000 -0700 +++ glibc-2.3.2/iconvdata/big5.c 2002-12-02 13:26:09.000000000 -0800 @@ -8397,7 +8397,7 @@ static const char from_ucs4_tab15[][2] = \ if (ch >= 0xa1 && ch <= 0xf9) \ { \ - /* Two-byte character. First test whether the next character \ + /* Two-byte character. First test whether the next byte \ is also available. */ \ uint32_t ch2; \ int idx; \ @@ -8447,6 +8447,13 @@ static const char from_ucs4_tab15[][2] = outptr += 4; \ } #define LOOP_NEED_FLAGS +#define ONEBYTE_BODY \ + { \ + if (c <= 0x80) \ + return c; \ + else \ + return WEOF; \ + } #include diff -durpN glibc-2.3.1/iconvdata/big5hkscs.c glibc-2.3.2/iconvdata/big5hkscs.c --- glibc-2.3.1/iconvdata/big5hkscs.c 2002-06-28 12:43:39.000000000 -0700 +++ glibc-2.3.2/iconvdata/big5hkscs.c 2002-12-02 13:26:10.000000000 -0800 @@ -16817,7 +16817,7 @@ static struct \ if (ch >= 0x81 && ch <= 0xfe) \ { \ - /* Two-byte character. First test whether the next character \ + /* Two-byte character. First test whether the next byte \ is also available. */ \ uint32_t ch2; \ int idx; \ @@ -16852,6 +16852,13 @@ static struct outptr += 4; \ } #define LOOP_NEED_FLAGS +#define ONEBYTE_BODY \ + { \ + if (c <= 0x80) \ + return c; \ + else \ + return WEOF; \ + } #include diff -durpN glibc-2.3.1/iconvdata/bug-iconv3.c glibc-2.3.2/iconvdata/bug-iconv3.c --- glibc-2.3.1/iconvdata/bug-iconv3.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/iconvdata/bug-iconv3.c 2003-02-04 15:57:41.000000000 -0800 @@ -0,0 +1,50 @@ +/* Copyright (C) 2003 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 2003. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include +#include +#include +#include +#include + + +static int +do_test (void) +{ + /* Get the iconv machinery initialized. */ + (void) iconv_open ("ISO-8859-1", "ISO-8859-2"); + + /* Dynamically load libpthread. */ + if (dlopen (LIBPTHREAD_SO, RTLD_NOW) == NULL) + { + printf ("cannot load %s: %s\n", LIBPTHREAD_SO, dlerror ()); + exit (1); + } + + /* And load some more. This call hang for some configuration since + the internal locking necessary wasn't adequately written to + handle a dynamically loaded libpthread after the first call to + iconv_open. */ + (void) iconv_open ("ISO-8859-2", "ISO-8859-3"); + + return 0; +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" diff -durpN glibc-2.3.1/iconvdata/cp1125.c glibc-2.3.2/iconvdata/cp1125.c --- glibc-2.3.1/iconvdata/cp1125.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/iconvdata/cp1125.c 2002-12-03 13:52:16.000000000 -0800 @@ -0,0 +1,28 @@ +/* Conversion from and to CP1125. + Copyright (C) 2002 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 Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include + +/* Get the conversion table. */ +#define TABLES + +#define CHARSET_NAME "CP1125//" +#define HAS_HOLES 0 /* All 256 character are defined. */ + +#include <8bit-gap.c> diff -durpN glibc-2.3.1/iconvdata/cp1255.c glibc-2.3.2/iconvdata/cp1255.c --- glibc-2.3.1/iconvdata/cp1255.c 2002-06-28 12:43:38.000000000 -0700 +++ glibc-2.3.2/iconvdata/cp1255.c 2002-12-02 13:26:09.000000000 -0800 @@ -321,6 +321,15 @@ static const struct { unsigned int idx; } #define LOOP_NEED_FLAGS #define EXTRA_LOOP_DECLS , int *statep +#define ONEBYTE_BODY \ + { \ + if (c < 0x80) \ + return c; \ + uint32_t ch = to_ucs4[c - 0x80]; \ + if (ch == L'\0' || (ch >= 0x05d0 && ch <= 0x05f2)) \ + return WEOF; \ + return ch; \ + } #include diff -durpN glibc-2.3.1/iconvdata/cp1258.c glibc-2.3.2/iconvdata/cp1258.c --- glibc-2.3.1/iconvdata/cp1258.c 2002-06-28 12:43:38.000000000 -0700 +++ glibc-2.3.2/iconvdata/cp1258.c 2002-12-02 13:26:09.000000000 -0800 @@ -480,6 +480,22 @@ static const struct } #define LOOP_NEED_FLAGS #define EXTRA_LOOP_DECLS , int *statep +#define ONEBYTE_BODY \ + { \ + uint32_t ch; \ + \ + if (c < 0x80) \ + ch = c; \ + else \ + { \ + ch = to_ucs4[c - 0x80]; \ + if (ch == L'\0') \ + return WEOF; \ + } \ + if (ch >= 0x0041 && ch <= 0x01b0) \ + return WEOF; \ + return ch; \ + } #include diff -durpN glibc-2.3.1/iconvdata/cp737.h glibc-2.3.2/iconvdata/cp737.h --- glibc-2.3.1/iconvdata/cp737.h 2001-07-07 12:20:59.000000000 -0700 +++ glibc-2.3.2/iconvdata/cp737.h 2002-12-19 01:07:35.000000000 -0800 @@ -1,5 +1,5 @@ /* Mapping table for CP737. - Copyright (C) 1998 Free Software Foundation, Inc. + Copyright (C) 1998, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -295,25 +295,25 @@ static const uint32_t to_ucs4[256] = */ static struct gap from_idx[] = { - { start: 0x0000, end: 0x007f, idx: 0 }, - { start: 0x00a0, end: 0x00a0, idx: -32 }, - { start: 0x00b0, end: 0x00b7, idx: -47 }, - { start: 0x00f7, end: 0x00f7, idx: -110 }, - { start: 0x0386, end: 0x03ce, idx: -764 }, - { start: 0x207f, end: 0x207f, idx: -8108 }, - { start: 0x2219, end: 0x221a, idx: -8517 }, - { start: 0x2248, end: 0x2248, idx: -8562 }, - { start: 0x2264, end: 0x2265, idx: -8589 }, - { start: 0x2500, end: 0x2502, idx: -9255 }, - { start: 0x250c, end: 0x251c, idx: -9264 }, - { start: 0x2524, end: 0x2524, idx: -9271 }, - { start: 0x252c, end: 0x252c, idx: -9278 }, - { start: 0x2534, end: 0x2534, idx: -9285 }, - { start: 0x253c, end: 0x253c, idx: -9292 }, - { start: 0x2550, end: 0x256c, idx: -9311 }, - { start: 0x2580, end: 0x2593, idx: -9330 }, - { start: 0x25a0, end: 0x25a0, idx: -9342 }, - { start: 0xffff, end: 0xffff, idx: 0 } + { .start = 0x0000, .end = 0x007f, .idx = 0 }, + { .start = 0x00a0, .end = 0x00a0, .idx = -32 }, + { .start = 0x00b0, .end = 0x00b7, .idx = -47 }, + { .start = 0x00f7, .end = 0x00f7, .idx = -110 }, + { .start = 0x0386, .end = 0x03ce, .idx = -764 }, + { .start = 0x207f, .end = 0x207f, .idx = -8108 }, + { .start = 0x2219, .end = 0x221a, .idx = -8517 }, + { .start = 0x2248, .end = 0x2248, .idx = -8562 }, + { .start = 0x2264, .end = 0x2265, .idx = -8589 }, + { .start = 0x2500, .end = 0x2502, .idx = -9255 }, + { .start = 0x250c, .end = 0x251c, .idx = -9264 }, + { .start = 0x2524, .end = 0x2524, .idx = -9271 }, + { .start = 0x252c, .end = 0x252c, .idx = -9278 }, + { .start = 0x2534, .end = 0x2534, .idx = -9285 }, + { .start = 0x253c, .end = 0x253c, .idx = -9292 }, + { .start = 0x2550, .end = 0x256c, .idx = -9311 }, + { .start = 0x2580, .end = 0x2593, .idx = -9330 }, + { .start = 0x25a0, .end = 0x25a0, .idx = -9342 }, + { .start = 0xffff, .end = 0xffff, .idx = 0 } }; /* Table accessed through above index table. It can be generated using: diff -durpN glibc-2.3.1/iconvdata/cp775.h glibc-2.3.2/iconvdata/cp775.h --- glibc-2.3.1/iconvdata/cp775.h 2001-07-07 12:20:59.000000000 -0700 +++ glibc-2.3.2/iconvdata/cp775.h 2002-12-19 01:07:35.000000000 -0800 @@ -1,5 +1,5 @@ /* Mapping table for CP775. - Copyright (C) 1998 Free Software Foundation, Inc. + Copyright (C) 1998, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -295,28 +295,28 @@ static const uint32_t to_ucs4[256] = */ static struct gap from_idx[] = { - { start: 0x0000, end: 0x007f, idx: 0 }, - { start: 0x00a0, end: 0x00c9, idx: -32 }, - { start: 0x00d3, end: 0x00e9, idx: -41 }, - { start: 0x00f3, end: 0x0119, idx: -50 }, - { start: 0x0122, end: 0x0123, idx: -58 }, - { start: 0x012a, end: 0x012f, idx: -64 }, - { start: 0x0136, end: 0x014d, idx: -70 }, - { start: 0x0156, end: 0x0161, idx: -78 }, - { start: 0x016a, end: 0x016b, idx: -86 }, - { start: 0x0172, end: 0x017e, idx: -92 }, - { start: 0x2019, end: 0x201e, idx: -7926 }, - { start: 0x2219, end: 0x2219, idx: -8432 }, - { start: 0x2500, end: 0x2502, idx: -9174 }, - { start: 0x250c, end: 0x251c, idx: -9183 }, - { start: 0x2524, end: 0x2524, idx: -9190 }, - { start: 0x252c, end: 0x252c, idx: -9197 }, - { start: 0x2534, end: 0x2534, idx: -9204 }, - { start: 0x253c, end: 0x253c, idx: -9211 }, - { start: 0x2550, end: 0x256c, idx: -9230 }, - { start: 0x2580, end: 0x2593, idx: -9249 }, - { start: 0x25a0, end: 0x25a0, idx: -9261 }, - { start: 0xffff, end: 0xffff, idx: 0 } + { .start = 0x0000, .end = 0x007f, .idx = 0 }, + { .start = 0x00a0, .end = 0x00c9, .idx = -32 }, + { .start = 0x00d3, .end = 0x00e9, .idx = -41 }, + { .start = 0x00f3, .end = 0x0119, .idx = -50 }, + { .start = 0x0122, .end = 0x0123, .idx = -58 }, + { .start = 0x012a, .end = 0x012f, .idx = -64 }, + { .start = 0x0136, .end = 0x014d, .idx = -70 }, + { .start = 0x0156, .end = 0x0161, .idx = -78 }, + { .start = 0x016a, .end = 0x016b, .idx = -86 }, + { .start = 0x0172, .end = 0x017e, .idx = -92 }, + { .start = 0x2019, .end = 0x201e, .idx = -7926 }, + { .start = 0x2219, .end = 0x2219, .idx = -8432 }, + { .start = 0x2500, .end = 0x2502, .idx = -9174 }, + { .start = 0x250c, .end = 0x251c, .idx = -9183 }, + { .start = 0x2524, .end = 0x2524, .idx = -9190 }, + { .start = 0x252c, .end = 0x252c, .idx = -9197 }, + { .start = 0x2534, .end = 0x2534, .idx = -9204 }, + { .start = 0x253c, .end = 0x253c, .idx = -9211 }, + { .start = 0x2550, .end = 0x256c, .idx = -9230 }, + { .start = 0x2580, .end = 0x2593, .idx = -9249 }, + { .start = 0x25a0, .end = 0x25a0, .idx = -9261 }, + { .start = 0xffff, .end = 0xffff, .idx = 0 } }; /* Table accessed through above index table. It can be generated using: diff -durpN glibc-2.3.1/iconvdata/euc-cn.c glibc-2.3.2/iconvdata/euc-cn.c --- glibc-2.3.1/iconvdata/euc-cn.c 2002-06-28 12:43:38.000000000 -0700 +++ glibc-2.3.2/iconvdata/euc-cn.c 2002-12-02 13:26:10.000000000 -0800 @@ -54,7 +54,7 @@ else \ { \ /* Two or more byte character. First test whether the \ - next character is also available. */ \ + next byte is also available. */ \ const unsigned char *endp; \ \ if (__builtin_expect (inptr + 1 >= inend, 0)) \ @@ -88,6 +88,13 @@ outptr += 4; \ } #define LOOP_NEED_FLAGS +#define ONEBYTE_BODY \ + { \ + if (c < 0x80) \ + return c; \ + else \ + return WEOF; \ + } #include diff -durpN glibc-2.3.1/iconvdata/euc-jisx0213.c glibc-2.3.2/iconvdata/euc-jisx0213.c --- glibc-2.3.1/iconvdata/euc-jisx0213.c 2002-09-23 20:29:37.000000000 -0700 +++ glibc-2.3.2/iconvdata/euc-jisx0213.c 2002-12-02 13:26:10.000000000 -0800 @@ -230,6 +230,13 @@ } #define LOOP_NEED_FLAGS #define EXTRA_LOOP_DECLS , int *statep +#define ONEBYTE_BODY \ + { \ + if (c < 0x80) \ + return c; \ + else \ + return WEOF; \ + } #include diff -durpN glibc-2.3.1/iconvdata/euc-jp.c glibc-2.3.2/iconvdata/euc-jp.c --- glibc-2.3.1/iconvdata/euc-jp.c 2002-06-28 12:43:38.000000000 -0700 +++ glibc-2.3.2/iconvdata/euc-jp.c 2002-12-02 13:26:10.000000000 -0800 @@ -117,6 +117,13 @@ put32 (outptr, ch); \ outptr += 4; \ } +#define ONEBYTE_BODY \ + { \ + if (c < 0x8e || (c >= 0x90 && c <= 0x9f)) \ + return c; \ + else \ + return WEOF; \ + } #define LOOP_NEED_FLAGS #include diff -durpN glibc-2.3.1/iconvdata/euc-kr.c glibc-2.3.2/iconvdata/euc-kr.c --- glibc-2.3.1/iconvdata/euc-kr.c 2002-06-28 12:43:38.000000000 -0700 +++ glibc-2.3.2/iconvdata/euc-kr.c 2002-12-02 13:26:10.000000000 -0800 @@ -90,7 +90,7 @@ euckr_from_ucs4 (uint32_t ch, unsigned c } \ else \ { \ - /* Two-byte character. First test whether the next character \ + /* Two-byte character. First test whether the next byte \ is also available. */ \ ch = ksc5601_to_ucs4 (&inptr, inend - inptr, 0x80); \ if (__builtin_expect (ch == 0, 0)) \ @@ -108,6 +108,13 @@ euckr_from_ucs4 (uint32_t ch, unsigned c outptr += 4; \ } #define LOOP_NEED_FLAGS +#define ONEBYTE_BODY \ + { \ + if (c <= 0x9f) \ + return c; \ + else \ + return WEOF; \ + } #include diff -durpN glibc-2.3.1/iconvdata/euc-tw.c glibc-2.3.2/iconvdata/euc-tw.c --- glibc-2.3.1/iconvdata/euc-tw.c 2002-06-28 12:43:38.000000000 -0700 +++ glibc-2.3.2/iconvdata/euc-tw.c 2002-12-02 13:26:10.000000000 -0800 @@ -112,6 +112,13 @@ outptr += 4; \ } #define LOOP_NEED_FLAGS +#define ONEBYTE_BODY \ + { \ + if (c < 0x80) \ + return c; \ + else \ + return WEOF; \ + } #include diff -durpN glibc-2.3.1/iconvdata/gap.awk glibc-2.3.2/iconvdata/gap.awk --- glibc-2.3.1/iconvdata/gap.awk 1998-06-15 11:08:29.000000000 -0700 +++ glibc-2.3.2/iconvdata/gap.awk 2002-12-15 20:26:02.000000000 -0800 @@ -26,7 +26,7 @@ function tonum(str) { if (last) { - printf (" { start: 0x%04x, end: 0x%04x, idx: %5d },\n", + printf (" { .start = 0x%04x, .end = 0x%04x, .idx = %5d },\n", first, last, idx); idx -= u - last - 1; } @@ -35,5 +35,5 @@ function tonum(str) last = u; } -END { printf (" { start: 0x%04x, end: 0x%04x, idx: %5d },\n", +END { printf (" { .start = 0x%04x, .end = 0x%04x, .idx = %5d },\n", first, last, idx); } diff -durpN glibc-2.3.1/iconvdata/gb18030.c glibc-2.3.2/iconvdata/gb18030.c --- glibc-2.3.1/iconvdata/gb18030.c 2002-06-28 12:43:39.000000000 -0700 +++ glibc-2.3.2/iconvdata/gb18030.c 2002-12-02 13:26:10.000000000 -0800 @@ -25772,6 +25772,13 @@ static const unsigned char __ucs_to_gb18 *((uint32_t *) outptr)++ = ch; \ } #define LOOP_NEED_FLAGS +#define ONEBYTE_BODY \ + { \ + if (c < 0x80) \ + return c; \ + else \ + return WEOF; \ + } #include diff -durpN glibc-2.3.1/iconvdata/gbbig5.c glibc-2.3.2/iconvdata/gbbig5.c --- glibc-2.3.1/iconvdata/gbbig5.c 2002-06-28 12:43:39.000000000 -0700 +++ glibc-2.3.2/iconvdata/gbbig5.c 2002-12-02 13:26:10.000000000 -0800 @@ -4802,7 +4802,7 @@ const char __from_big5_to_gb2312 [13973] else if (ch >= 0xa1 && ch <= 0xf7) \ { \ /* Two-byte character. First test whether the \ - next character is also available. */ \ + next byte is also available. */ \ const char *cp; \ int idx; \ \ @@ -4891,7 +4891,7 @@ const char __from_big5_to_gb2312 [13973] else if (ch >= 0xa1 && ch <= 0xf9) \ { \ /* Two byte character. First test whether the \ - next character is also available. */ \ + next byte is also available. */ \ const char *cp; \ int idx; \ \ diff -durpN glibc-2.3.1/iconvdata/gbk.c glibc-2.3.2/iconvdata/gbk.c --- glibc-2.3.1/iconvdata/gbk.c 2002-06-28 12:43:39.000000000 -0700 +++ glibc-2.3.2/iconvdata/gbk.c 2002-12-02 13:26:10.000000000 -0800 @@ -13154,7 +13154,7 @@ static const char __gbk_from_ucs4_tab12[ else \ { \ /* Two or more byte character. First test whether the \ - next character is also available. */ \ + next byte is also available. */ \ uint32_t ch2; \ int idx; \ \ @@ -13195,6 +13195,13 @@ static const char __gbk_from_ucs4_tab12[ outptr += 4; \ } #define LOOP_NEED_FLAGS +#define ONEBYTE_BODY \ + { \ + if (c < 0x80) \ + return c; \ + else \ + return WEOF; \ + } #include diff -durpN glibc-2.3.1/iconvdata/gconv.map glibc-2.3.2/iconvdata/gconv.map --- glibc-2.3.1/iconvdata/gconv.map 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/iconvdata/gconv.map 2002-12-12 18:49:08.000000000 -0800 @@ -0,0 +1,7 @@ +{ +global: + gconv; + gconv_init; +local: + *; +}; diff -durpN glibc-2.3.1/iconvdata/gconv-modules glibc-2.3.2/iconvdata/gconv-modules --- glibc-2.3.1/iconvdata/gconv-modules 2002-09-23 20:34:08.000000000 -0700 +++ glibc-2.3.2/iconvdata/gconv-modules 2003-01-14 01:32:35.000000000 -0800 @@ -1,5 +1,5 @@ # GNU libc iconv configuration. -# Copyright (C) 1997-1999, 2000-2002 Free Software Foundation, Inc. +# Copyright (C) 1997-1999, 2000-2002, 2003 Free Software Foundation, Inc. # This file is part of the GNU C Library. # @@ -824,6 +824,12 @@ module IBM866// INTERNAL IBM866 1 module INTERNAL IBM866// IBM866 1 # from to module cost +alias CP866NAV// IBM866NAV// +alias 866NAV// IBM866NAV// +module IBM866NAV// INTERNAL IBM866NAV 1 +module INTERNAL IBM866NAV// IBM866NAV 1 + +# from to module cost alias CP868// IBM868// alias CP-AR// IBM868// alias CSIBM868// IBM868// @@ -1130,6 +1136,12 @@ module EUC-TW// INTERNAL EUC-TW 1 module INTERNAL EUC-TW// EUC-TW 1 # from to module cost +alias RUSCII// CP1125// +alias IBM848// CP1125// +module CP1125// INTERNAL CP1125 1 +module INTERNAL CP1125// CP1125 1 + +# from to module cost alias MS-EE// CP1250// alias WINDOWS-1250// CP1250// module CP1250// INTERNAL CP1250 1 diff -durpN glibc-2.3.1/iconvdata/gen-8bit-gap-1.sh glibc-2.3.2/iconvdata/gen-8bit-gap-1.sh --- glibc-2.3.1/iconvdata/gen-8bit-gap-1.sh 2000-09-24 12:11:36.000000000 -0700 +++ glibc-2.3.2/iconvdata/gen-8bit-gap-1.sh 2002-12-15 20:26:02.000000000 -0800 @@ -7,7 +7,7 @@ echo "};" echo "static const struct gap from_idx[] = {" sed -ne 's/^[[:space:]]*.x[A-Fa-f]..*/\1/p' \ "$@" | sort -u | $AWK -f gap.awk -echo " { start: 0xffff, end: 0xffff, idx: 0 }" +echo " { .start = 0xffff, .end = 0xffff, .idx = 0 }" echo "};" echo "static const char iso88597_from_ucs4[] = {" sed -ne 's/^[[:space:]]*.x\([A-Fa-f].\).*/0x\1 0x\2/p' \ diff -durpN glibc-2.3.1/iconvdata/gen-8bit-gap.sh glibc-2.3.2/iconvdata/gen-8bit-gap.sh --- glibc-2.3.1/iconvdata/gen-8bit-gap.sh 2000-06-25 17:03:52.000000000 -0700 +++ glibc-2.3.2/iconvdata/gen-8bit-gap.sh 2002-12-15 20:26:02.000000000 -0800 @@ -7,7 +7,7 @@ echo "};" echo "static const struct gap from_idx[] = {" sed -ne 's/^[[:space:]]*.x\(..\).*/\1 \2/p' \ diff -durpN glibc-2.3.1/iconvdata/ibm1046.h glibc-2.3.2/iconvdata/ibm1046.h --- glibc-2.3.1/iconvdata/ibm1046.h 2001-11-28 21:54:16.000000000 -0800 +++ glibc-2.3.2/iconvdata/ibm1046.h 2002-12-19 01:07:35.000000000 -0800 @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM1046. - Copyright (C) 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -88,31 +88,31 @@ static const uint32_t to_ucs4[256] = static const struct gap from_idx[] = { - { start: 0x0000, end: 0x007f, idx: 0 }, - { start: 0x0088, end: 0x0088, idx: -8 }, - { start: 0x00a0, end: 0x00a0, idx: -31 }, - { start: 0x00a4, end: 0x00a4, idx: -34 }, - { start: 0x00ad, end: 0x00ad, idx: -42 }, - { start: 0x00d7, end: 0x00d7, idx: -83 }, - { start: 0x00f7, end: 0x00f7, idx: -114 }, - { start: 0x060c, end: 0x060c, idx: -1414 }, - { start: 0x061b, end: 0x061b, idx: -1428 }, - { start: 0x061f, end: 0x061f, idx: -1431 }, - { start: 0x0621, end: 0x063a, idx: -1432 }, - { start: 0x0640, end: 0x0652, idx: -1437 }, - { start: 0x0660, end: 0x066d, idx: -1450 }, - { start: 0x200b, end: 0x200b, idx: -8007 }, - { start: 0x2500, end: 0x2500, idx: -9275 }, - { start: 0x2502, end: 0x2502, idx: -9276 }, - { start: 0x250c, end: 0x250c, idx: -9285 }, - { start: 0x2510, end: 0x2510, idx: -9288 }, - { start: 0x2514, end: 0x2514, idx: -9291 }, - { start: 0x2518, end: 0x2518, idx: -9294 }, - { start: 0x25a0, end: 0x25a0, idx: -9429 }, - { start: 0xfe70, end: 0xfe72, idx: -64932 }, - { start: 0xfe74, end: 0xfe74, idx: -64933 }, - { start: 0xfe76, end: 0xfefc, idx: -64934 }, - { start: 0xffff, end: 0xffff, idx: 0 } + { .start = 0x0000, .end = 0x007f, .idx = 0 }, + { .start = 0x0088, .end = 0x0088, .idx = -8 }, + { .start = 0x00a0, .end = 0x00a0, .idx = -31 }, + { .start = 0x00a4, .end = 0x00a4, .idx = -34 }, + { .start = 0x00ad, .end = 0x00ad, .idx = -42 }, + { .start = 0x00d7, .end = 0x00d7, .idx = -83 }, + { .start = 0x00f7, .end = 0x00f7, .idx = -114 }, + { .start = 0x060c, .end = 0x060c, .idx = -1414 }, + { .start = 0x061b, .end = 0x061b, .idx = -1428 }, + { .start = 0x061f, .end = 0x061f, .idx = -1431 }, + { .start = 0x0621, .end = 0x063a, .idx = -1432 }, + { .start = 0x0640, .end = 0x0652, .idx = -1437 }, + { .start = 0x0660, .end = 0x066d, .idx = -1450 }, + { .start = 0x200b, .end = 0x200b, .idx = -8007 }, + { .start = 0x2500, .end = 0x2500, .idx = -9275 }, + { .start = 0x2502, .end = 0x2502, .idx = -9276 }, + { .start = 0x250c, .end = 0x250c, .idx = -9285 }, + { .start = 0x2510, .end = 0x2510, .idx = -9288 }, + { .start = 0x2514, .end = 0x2514, .idx = -9291 }, + { .start = 0x2518, .end = 0x2518, .idx = -9294 }, + { .start = 0x25a0, .end = 0x25a0, .idx = -9429 }, + { .start = 0xfe70, .end = 0xfe72, .idx = -64932 }, + { .start = 0xfe74, .end = 0xfe74, .idx = -64933 }, + { .start = 0xfe76, .end = 0xfefc, .idx = -64934 }, + { .start = 0xffff, .end = 0xffff, .idx = 0 } }; static const char from_ucs4[] = diff -durpN glibc-2.3.1/iconvdata/ibm1124.h glibc-2.3.2/iconvdata/ibm1124.h --- glibc-2.3.1/iconvdata/ibm1124.h 2001-11-28 21:54:41.000000000 -0800 +++ glibc-2.3.2/iconvdata/ibm1124.h 2002-12-19 01:07:35.000000000 -0800 @@ -1,5 +1,5 @@ /* Conversion from and to IBM1124. - Copyright (C) 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -88,12 +88,12 @@ static const uint32_t to_ucs4[256] = static const struct gap from_idx[] = { - { start: 0x0000, end: 0x00a0, idx: 0 }, - { start: 0x00a7, end: 0x00ad, idx: -6 }, - { start: 0x0401, end: 0x045f, idx: -857 }, - { start: 0x0490, end: 0x0491, idx: -905 }, - { start: 0x2116, end: 0x2116, idx: -8205 }, - { start: 0xffff, end: 0xffff, idx: 0 } + { .start = 0x0000, .end = 0x00a0, .idx = 0 }, + { .start = 0x00a7, .end = 0x00ad, .idx = -6 }, + { .start = 0x0401, .end = 0x045f, .idx = -857 }, + { .start = 0x0490, .end = 0x0491, .idx = -905 }, + { .start = 0x2116, .end = 0x2116, .idx = -8205 }, + { .start = 0xffff, .end = 0xffff, .idx = 0 } }; static const char from_ucs4[] = diff -durpN glibc-2.3.1/iconvdata/ibm1129.h glibc-2.3.2/iconvdata/ibm1129.h --- glibc-2.3.1/iconvdata/ibm1129.h 2001-12-05 10:58:01.000000000 -0800 +++ glibc-2.3.2/iconvdata/ibm1129.h 2002-12-19 01:07:35.000000000 -0800 @@ -1,5 +1,5 @@ /* Conversion from and to IBM1129. - Copyright (C) 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -88,16 +88,16 @@ static const uint32_t to_ucs4[256] = static const struct gap from_idx[] = { - { start: 0x0000, end: 0x0103, idx: 0 }, - { start: 0x0110, end: 0x0111, idx: -12 }, - { start: 0x0152, end: 0x0153, idx: -76 }, - { start: 0x0178, end: 0x0178, idx: -112 }, - { start: 0x01a0, end: 0x01a1, idx: -151 }, - { start: 0x01af, end: 0x01b0, idx: -164 }, - { start: 0x0300, end: 0x0309, idx: -499 }, - { start: 0x0323, end: 0x0323, idx: -524 }, - { start: 0x20ab, end: 0x20ab, idx: -8083 }, - { start: 0xffff, end: 0xffff, idx: 0 } + { .start = 0x0000, .end = 0x0103, .idx = 0 }, + { .start = 0x0110, .end = 0x0111, .idx = -12 }, + { .start = 0x0152, .end = 0x0153, .idx = -76 }, + { .start = 0x0178, .end = 0x0178, .idx = -112 }, + { .start = 0x01a0, .end = 0x01a1, .idx = -151 }, + { .start = 0x01af, .end = 0x01b0, .idx = -164 }, + { .start = 0x0300, .end = 0x0309, .idx = -499 }, + { .start = 0x0323, .end = 0x0323, .idx = -524 }, + { .start = 0x20ab, .end = 0x20ab, .idx = -8083 }, + { .start = 0xffff, .end = 0xffff, .idx = 0 } }; static const char from_ucs4[] = diff -durpN glibc-2.3.1/iconvdata/ibm1132.h glibc-2.3.2/iconvdata/ibm1132.h --- glibc-2.3.1/iconvdata/ibm1132.h 2001-11-28 21:43:39.000000000 -0800 +++ glibc-2.3.2/iconvdata/ibm1132.h 2002-12-19 01:07:35.000000000 -0800 @@ -1,5 +1,5 @@ /* Mapping table for IBM1132. - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2001. @@ -82,10 +82,10 @@ static const uint32_t to_ucs4[256] = static const struct gap from_idx[] = { - { start: 0x0000, end: 0x00ac, idx: 0 }, - { start: 0x0e81, end: 0x0e8d, idx: -3540 }, - { start: 0x0e94, end: 0x0edd, idx: -3546 }, - { start: 0xffff, end: 0xffff, idx: 0 } + { .start = 0x0000, .end = 0x00ac, .idx = 0 }, + { .start = 0x0e81, .end = 0x0e8d, .idx = -3540 }, + { .start = 0x0e94, .end = 0x0edd, .idx = -3546 }, + { .start = 0xffff, .end = 0xffff, .idx = 0 } }; static const char from_ucs4[] = diff -durpN glibc-2.3.1/iconvdata/ibm1133.h glibc-2.3.2/iconvdata/ibm1133.h --- glibc-2.3.1/iconvdata/ibm1133.h 2001-11-28 21:43:11.000000000 -0800 +++ glibc-2.3.2/iconvdata/ibm1133.h 2002-12-19 01:07:35.000000000 -0800 @@ -1,5 +1,5 @@ /* Mapping table for IBM1133. - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2001. @@ -82,10 +82,10 @@ static const uint32_t to_ucs4[256] = static const struct gap from_idx[] = { - { start: 0x0000, end: 0x00ac, idx: 0 }, - { start: 0x0e81, end: 0x0e8d, idx: -3540 }, - { start: 0x0e94, end: 0x0edd, idx: -3546 }, - { start: 0xffff, end: 0xffff, idx: 0 } + { .start = 0x0000, .end = 0x00ac, .idx = 0 }, + { .start = 0x0e81, .end = 0x0e8d, .idx = -3540 }, + { .start = 0x0e94, .end = 0x0edd, .idx = -3546 }, + { .start = 0xffff, .end = 0xffff, .idx = 0 } }; static const char from_ucs4[] = diff -durpN glibc-2.3.1/iconvdata/ibm1160.h glibc-2.3.2/iconvdata/ibm1160.h --- glibc-2.3.1/iconvdata/ibm1160.h 2001-11-28 21:42:37.000000000 -0800 +++ glibc-2.3.2/iconvdata/ibm1160.h 2002-12-19 01:07:35.000000000 -0800 @@ -1,5 +1,5 @@ /* Mapping table for IBM1160. - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2001. @@ -88,10 +88,10 @@ static const uint32_t to_ucs4[256] = static const struct gap from_idx[] = { - { start: 0x0000, end: 0x00ac, idx: 0 }, - { start: 0x0e01, end: 0x0e5b, idx: -3412 }, - { start: 0x20ac, end: 0x20ac, idx: -8100 }, - { start: 0xffff, end: 0xffff, idx: 0 } + { .start = 0x0000, .end = 0x00ac, .idx = 0 }, + { .start = 0x0e01, .end = 0x0e5b, .idx = -3412 }, + { .start = 0x20ac, .end = 0x20ac, .idx = -8100 }, + { .start = 0xffff, .end = 0xffff, .idx = 0 } }; static const char from_ucs4[] = diff -durpN glibc-2.3.1/iconvdata/ibm1161.h glibc-2.3.2/iconvdata/ibm1161.h --- glibc-2.3.1/iconvdata/ibm1161.h 2001-11-28 21:41:54.000000000 -0800 +++ glibc-2.3.2/iconvdata/ibm1161.h 2002-12-19 01:07:35.000000000 -0800 @@ -1,5 +1,5 @@ /* Mapping table for IBM1161. - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2001. @@ -80,11 +80,11 @@ static const uint32_t to_ucs4[256] = static const struct gap from_idx[] = { - { start: 0x0000, end: 0x007f, idx: 0 }, - { start: 0x00a0, end: 0x00ac, idx: -32 }, - { start: 0x0e01, end: 0x0e5b, idx: -3444 }, - { start: 0x20ac, end: 0x20ac, idx: -8132 }, - { start: 0xffff, end: 0xffff, idx: 0 } + { .start = 0x0000, .end = 0x007f, .idx = 0 }, + { .start = 0x00a0, .end = 0x00ac, .idx = -32 }, + { .start = 0x0e01, .end = 0x0e5b, .idx = -3444 }, + { .start = 0x20ac, .end = 0x20ac, .idx = -8132 }, + { .start = 0xffff, .end = 0xffff, .idx = 0 } }; static const char from_ucs4[] = diff -durpN glibc-2.3.1/iconvdata/ibm1162.h glibc-2.3.2/iconvdata/ibm1162.h --- glibc-2.3.1/iconvdata/ibm1162.h 2001-11-28 21:41:32.000000000 -0800 +++ glibc-2.3.2/iconvdata/ibm1162.h 2002-12-19 01:07:35.000000000 -0800 @@ -1,5 +1,5 @@ /* Mapping table for IBM1162. - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2001. @@ -86,12 +86,12 @@ static const uint32_t to_ucs4[256] = static const struct gap from_idx[] = { - { start: 0x0000, end: 0x0090, idx: 0 }, - { start: 0x0098, end: 0x00a0, idx: -7 }, - { start: 0x0e01, end: 0x0e5b, idx: -3431 }, - { start: 0x2013, end: 0x2026, idx: -7966 }, - { start: 0x20ac, end: 0x20ac, idx: -8099 }, - { start: 0xffff, end: 0xffff, idx: 0 } + { .start = 0x0000, .end = 0x0090, .idx = 0 }, + { .start = 0x0098, .end = 0x00a0, .idx = -7 }, + { .start = 0x0e01, .end = 0x0e5b, .idx = -3431 }, + { .start = 0x2013, .end = 0x2026, .idx = -7966 }, + { .start = 0x20ac, .end = 0x20ac, .idx = -8099 }, + { .start = 0xffff, .end = 0xffff, .idx = 0 } }; static const char from_ucs4[] = diff -durpN glibc-2.3.1/iconvdata/ibm1163.h glibc-2.3.2/iconvdata/ibm1163.h --- glibc-2.3.1/iconvdata/ibm1163.h 2001-11-28 21:39:01.000000000 -0800 +++ glibc-2.3.2/iconvdata/ibm1163.h 2002-12-19 01:07:35.000000000 -0800 @@ -1,5 +1,5 @@ /* Mapping table for IBM1163. - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2001. @@ -88,17 +88,17 @@ static const uint32_t to_ucs4[256] = static const struct gap from_idx[] = { - { start: 0x0000, end: 0x0103, idx: 0 }, - { start: 0x0110, end: 0x0111, idx: -12 }, - { start: 0x0152, end: 0x0153, idx: -76 }, - { start: 0x0178, end: 0x0178, idx: -112 }, - { start: 0x01a0, end: 0x01a1, idx: -151 }, - { start: 0x01af, end: 0x01b0, idx: -164 }, - { start: 0x0300, end: 0x0309, idx: -499 }, - { start: 0x0323, end: 0x0323, idx: -524 }, - { start: 0x203e, end: 0x203e, idx: -7974 }, - { start: 0x20ab, end: 0x20ac, idx: -8082 }, - { start: 0xffff, end: 0xffff, idx: 0 } + { .start = 0x0000, .end = 0x0103, .idx = 0 }, + { .start = 0x0110, .end = 0x0111, .idx = -12 }, + { .start = 0x0152, .end = 0x0153, .idx = -76 }, + { .start = 0x0178, .end = 0x0178, .idx = -112 }, + { .start = 0x01a0, .end = 0x01a1, .idx = -151 }, + { .start = 0x01af, .end = 0x01b0, .idx = -164 }, + { .start = 0x0300, .end = 0x0309, .idx = -499 }, + { .start = 0x0323, .end = 0x0323, .idx = -524 }, + { .start = 0x203e, .end = 0x203e, .idx = -7974 }, + { .start = 0x20ab, .end = 0x20ac, .idx = -8082 }, + { .start = 0xffff, .end = 0xffff, .idx = 0 } }; static const char from_ucs4[] = diff -durpN glibc-2.3.1/iconvdata/ibm1164.h glibc-2.3.2/iconvdata/ibm1164.h --- glibc-2.3.1/iconvdata/ibm1164.h 2001-11-28 21:41:12.000000000 -0800 +++ glibc-2.3.2/iconvdata/ibm1164.h 2002-12-19 01:07:35.000000000 -0800 @@ -1,5 +1,5 @@ /* Mapping table for IBM1164. - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2002 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2001. @@ -88,17 +88,17 @@ static const uint32_t to_ucs4[256] = static const struct gap from_idx[] = { - { start: 0x0000, end: 0x0103, idx: 0 }, - { start: 0x0110, end: 0x0111, idx: -12 }, - { start: 0x0152, end: 0x0153, idx: -76 }, - { start: 0x0178, end: 0x0178, idx: -112 }, - { start: 0x01a0, end: 0x01a1, idx: -151 }, - { start: 0x01af, end: 0x01b0, idx: -164 }, - { start: 0x0300, end: 0x0309, idx: -499 }, - { start: 0x0323, end: 0x0323, idx: -524 }, - { start: 0x203e, end: 0x203e, idx: -7974 }, - { start: 0x20ab, end: 0x20ac, idx: -8082 }, - { start: 0xffff, end: 0xffff, idx: 0 } + { .start = 0x0000, .end = 0x0103, .idx = 0 }, + { .start = 0x0110, .end = 0x0111, .idx = -12 }, + { .start = 0x0152, .end = 0x0153, .idx = -76 }, + { .start = 0x0178, .end = 0x0178, .idx = -112 }, + { .start = 0x01a0, .end = 0x01a1, .idx = -151 }, + { .start = 0x01af, .end = 0x01b0, .idx = -164 }, + { .start = 0x0300, .end = 0x0309, .idx = -499 }, + { .start = 0x0323, .end = 0x0323, .idx = -524 }, + { .start = 0x203e, .end = 0x203e, .idx = -7974 }, + { .start = 0x20ab, .end = 0x20ac, .idx = -8082 }, + { .start = 0xffff, .end = 0xffff, .idx = 0 } }; static const char from_ucs4[] = diff -durpN glibc-2.3.1/iconvdata/ibm856.h glibc-2.3.2/iconvdata/ibm856.h --- glibc-2.3.1/iconvdata/ibm856.h 2001-11-28 21:56:12.000000000 -0800 +++ glibc-2.3.2/iconvdata/ibm856.h 2002-12-19 14:42:46.000000000 -0800 @@ -78,66 +78,66 @@ static const uint32_t to_ucs4[256] = static const struct gap from_idx[] = { - { start: 0x0000, end: 0x007f, idx: 0 }, - { start: 0x00a0, end: 0x00a0, idx: -32 }, - { start: 0x00a2, end: 0x00a9, idx: -33 }, - { start: 0x00ab, end: 0x00ae, idx: -34 }, - { start: 0x00b0, end: 0x00b6, idx: -35 }, - { start: 0x00b8, end: 0x00b9, idx: -36 }, - { start: 0x00bb, end: 0x00be, idx: -37 }, - { start: 0x00d7, end: 0x00d7, idx: -61 }, - { start: 0x00f7, end: 0x00f7, idx: -92 }, - { start: 0x05d0, end: 0x05ea, idx: -1332 }, - { start: 0x2017, end: 0x2017, idx: -8032 }, - { start: 0x2022, end: 0x2022, idx: -8042 }, - { start: 0x203c, end: 0x203c, idx: -8067 }, - { start: 0x203e, end: 0x203e, idx: -8068 }, - { start: 0x2190, end: 0x2195, idx: -8405 }, - { start: 0x21a8, end: 0x21a8, idx: -8423 }, - { start: 0x221f, end: 0x221f, idx: -8541 }, - { start: 0x2302, end: 0x2302, idx: -8767 }, - { start: 0x2500, end: 0x2500, idx: -9276 }, - { start: 0x2502, end: 0x2502, idx: -9277 }, - { start: 0x250c, end: 0x250c, idx: -9286 }, - { start: 0x2510, end: 0x2510, idx: -9289 }, - { start: 0x2514, end: 0x2514, idx: -9292 }, - { start: 0x2518, end: 0x2518, idx: -9295 }, - { start: 0x251c, end: 0x251c, idx: -9298 }, - { start: 0x2524, end: 0x2524, idx: -9305 }, - { start: 0x252c, end: 0x252c, idx: -9312 }, - { start: 0x2534, end: 0x2534, idx: -9319 }, - { start: 0x253c, end: 0x253c, idx: -9326 }, - { start: 0x2550, end: 0x2551, idx: -9345 }, - { start: 0x2554, end: 0x2554, idx: -9347 }, - { start: 0x2557, end: 0x2557, idx: -9349 }, - { start: 0x255a, end: 0x255a, idx: -9351 }, - { start: 0x255d, end: 0x255d, idx: -9353 }, - { start: 0x2560, end: 0x2560, idx: -9355 }, - { start: 0x2563, end: 0x2563, idx: -9357 }, - { start: 0x2566, end: 0x2566, idx: -9359 }, - { start: 0x2569, end: 0x2569, idx: -9361 }, - { start: 0x256c, end: 0x256c, idx: -9363 }, - { start: 0x2580, end: 0x2580, idx: -9382 }, - { start: 0x2584, end: 0x2584, idx: -9385 }, - { start: 0x2588, end: 0x2588, idx: -9388 }, - { start: 0x2591, end: 0x2593, idx: -9396 }, - { start: 0x25a0, end: 0x25a0, idx: -9408 }, - { start: 0x25ac, end: 0x25ac, idx: -9419 }, - { start: 0x25b2, end: 0x25b2, idx: -9424 }, - { start: 0x25ba, end: 0x25ba, idx: -9431 }, - { start: 0x25bc, end: 0x25bc, idx: -9432 }, - { start: 0x25c4, end: 0x25c4, idx: -9439 }, - { start: 0x25cb, end: 0x25cb, idx: -9445 }, - { start: 0x25d8, end: 0x25d9, idx: -9457 }, - { start: 0x263a, end: 0x263c, idx: -9553 }, - { start: 0x2640, end: 0x2640, idx: -9556 }, - { start: 0x2642, end: 0x2642, idx: -9557 }, - { start: 0x2660, end: 0x2660, idx: -9586 }, - { start: 0x2663, end: 0x2663, idx: -9588 }, - { start: 0x2665, end: 0x2666, idx: -9589 }, - { start: 0x266a, end: 0x266b, idx: -9592 }, - { start: 0xffe8, end: 0xffee, idx: -65268 }, - { start: 0xffff, end: 0xffff, idx: 0 } + { .start = 0x0000, .end = 0x007f, .idx = 0 }, + { .start = 0x00a0, .end = 0x00a0, .idx = -32 }, + { .start = 0x00a2, .end = 0x00a9, .idx = -33 }, + { .start = 0x00ab, .end = 0x00ae, .idx = -34 }, + { .start = 0x00b0, .end = 0x00b6, .idx = -35 }, + { .start = 0x00b8, .end = 0x00b9, .idx = -36 }, + { .start = 0x00bb, .end = 0x00be, .idx = -37 }, + { .start = 0x00d7, .end = 0x00d7, .idx = -61 }, + { .start = 0x00f7, .end = 0x00f7, .idx = -92 }, + { .start = 0x05d0, .end = 0x05ea, .idx = -1332 }, + { .start = 0x2017, .end = 0x2017, .idx = -8032 }, + { .start = 0x2022, .end = 0x2022, .idx = -8042 }, + { .start = 0x203c, .end = 0x203c, .idx = -8067 }, + { .start = 0x203e, .end = 0x203e, .idx = -8068 }, + { .start = 0x2190, .end = 0x2195, .idx = -8405 }, + { .start = 0x21a8, .end = 0x21a8, .idx = -8423 }, + { .start = 0x221f, .end = 0x221f, .idx = -8541 }, + { .start = 0x2302, .end = 0x2302, .idx = -8767 }, + { .start = 0x2500, .end = 0x2500, .idx = -9276 }, + { .start = 0x2502, .end = 0x2502, .idx = -9277 }, + { .start = 0x250c, .end = 0x250c, .idx = -9286 }, + { .start = 0x2510, .end = 0x2510, .idx = -9289 }, + { .start = 0x2514, .end = 0x2514, .idx = -9292 }, + { .start = 0x2518, .end = 0x2518, .idx = -9295 }, + { .start = 0x251c, .end = 0x251c, .idx = -9298 }, + { .start = 0x2524, .end = 0x2524, .idx = -9305 }, + { .start = 0x252c, .end = 0x252c, .idx = -9312 }, + { .start = 0x2534, .end = 0x2534, .idx = -9319 }, + { .start = 0x253c, .end = 0x253c, .idx = -9326 }, + { .start = 0x2550, .end = 0x2551, .idx = -9345 }, + { .start = 0x2554, .end = 0x2554, .idx = -9347 }, + { .start = 0x2557, .end = 0x2557, .idx = -9349 }, + { .start = 0x255a, .end = 0x255a, .idx = -9351 }, + { .start = 0x255d, .end = 0x255d, .idx = -9353 }, + { .start = 0x2560, .end = 0x2560, .idx = -9355 }, + { .start = 0x2563, .end = 0x2563, .idx = -9357 }, + { .start = 0x2566, .end = 0x2566, .idx = -9359 }, + { .start = 0x2569, .end = 0x2569, .idx = -9361 }, + { .start = 0x256c, .end = 0x256c, .idx = -9363 }, + { .start = 0x2580, .end = 0x2580, .idx = -9382 }, + { .start = 0x2584, .end = 0x2584, .idx = -9385 }, + { .start = 0x2588, .end = 0x2588, .idx = -9388 }, + { .start = 0x2591, .end = 0x2593, .idx = -9396 }, + { .start = 0x25a0, .end = 0x25a0, .idx = -9408 }, + { .start = 0x25ac, .end = 0x25ac, .idx = -9419 }, + { .start = 0x25b2, .end = 0x25b2, .idx = -9424 }, + { .start = 0x25ba, .end = 0x25ba, .idx = -9431 }, + { .start = 0x25bc, .end = 0x25bc, .idx = -9432 }, + { .start = 0x25c4, .end = 0x25c4, .idx = -9439 }, + { .start = 0x25cb, .end = 0x25cb, .idx = -9445 }, + { .start = 0x25d8, .end = 0x25d9, .idx = -9457 }, + { .start = 0x263a, .end = 0x263c, .idx = -9553 }, + { .start = 0x2640, .end = 0x2640, .idx = -9556 }, + { .start = 0x2642, .end = 0x2642, .idx = -9557 }, + { .start = 0x2660, .end = 0x2660, .idx = -9586 }, + { .start = 0x2663, .end = 0x2663, .idx = -9588 }, + { .start = 0x2665, .end = 0x2666, .idx = -9589 }, + { .start = 0x266a, .end = 0x266b, .idx = -9592 }, + { .start = 0xffe8, .end = 0xffee, .idx = -65268 }, + { .start = 0xffff, .end = 0xffff, .idx = 0 } }; static const char from_ucs4[] = diff -durpN glibc-2.3.1/iconvdata/ibm866nav.c glibc-2.3.2/iconvdata/ibm866nav.c --- glibc-2.3.1/iconvdata/ibm866nav.c 1969-12-31 16:00:00.000000000 -0800 +++ glibc-2.3.2/iconvdata/ibm866nav.c 2003-01-14 01:22:48.000000000 -0800 @@ -0,0 +1,29 @@ +/* Conversion from and to IBM866NAV. + Copyright (C) 2003 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 2003. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#include + +/* Get the conversion table. */ +#define TABLES + +#define CHARSET_NAME "IBM866NAV//" +#define HAS_HOLES 0 /* All 256 character are defined. */ + +#include <8bit-gap.c> diff -durpN glibc-2.3.1/iconvdata/ibm922.h glibc-2.3.2/iconvdata/ibm922.h --- glibc-2.3.1/iconvdata/ibm922.h 2001-11-28 21:57:11.000000000 -0800 +++ glibc-2.3.2/iconvdata/ibm922.h 2002-12-19 14:42:46.000000000 -0800 @@ -88,35 +88,35 @@ static const uint32_t to_ucs4[256] = static const struct gap from_idx[] = { - { start: 0x0000, end: 0x00ff, idx: 0 }, - { start: 0x0160, end: 0x0161, idx: -96 }, - { start: 0x017d, end: 0x017e, idx: -123 }, - { start: 0x2017, end: 0x2017, idx: -7955 }, - { start: 0x2022, end: 0x2022, idx: -7965 }, - { start: 0x203c, end: 0x203e, idx: -7990 }, - { start: 0x2190, end: 0x2195, idx: -8327 }, - { start: 0x21a8, end: 0x21a8, idx: -8345 }, - { start: 0x221f, end: 0x221f, idx: -8463 }, - { start: 0x2264, end: 0x2265, idx: -8531 }, - { start: 0x2500, end: 0x2502, idx: -9197 }, - { start: 0x250c, end: 0x251c, idx: -9206 }, - { start: 0x2524, end: 0x2524, idx: -9213 }, - { start: 0x252c, end: 0x252c, idx: -9220 }, - { start: 0x2534, end: 0x2534, idx: -9227 }, - { start: 0x253c, end: 0x253c, idx: -9234 }, - { start: 0x2550, end: 0x256c, idx: -9253 }, - { start: 0x2580, end: 0x2588, idx: -9272 }, - { start: 0x2591, end: 0x2593, idx: -9280 }, - { start: 0x25a0, end: 0x25a0, idx: -9292 }, - { start: 0x25ac, end: 0x25b2, idx: -9303 }, - { start: 0x25ba, end: 0x25bc, idx: -9310 }, - { start: 0x25c4, end: 0x25c4, idx: -9317 }, - { start: 0x25cb, end: 0x25cb, idx: -9323 }, - { start: 0x25d8, end: 0x25d9, idx: -9335 }, - { start: 0x263a, end: 0x2642, idx: -9431 }, - { start: 0x2660, end: 0x266c, idx: -9460 }, - { start: 0xffe8, end: 0xffee, idx: -65135 }, - { start: 0xffff, end: 0xffff, idx: 0 } + { .start = 0x0000, .end = 0x00ff, .idx = 0 }, + { .start = 0x0160, .end = 0x0161, .idx = -96 }, + { .start = 0x017d, .end = 0x017e, .idx = -123 }, + { .start = 0x2017, .end = 0x2017, .idx = -7955 }, + { .start = 0x2022, .end = 0x2022, .idx = -7965 }, + { .start = 0x203c, .end = 0x203e, .idx = -7990 }, + { .start = 0x2190, .end = 0x2195, .idx = -8327 }, + { .start = 0x21a8, .end = 0x21a8, .idx = -8345 }, + { .start = 0x221f, .end = 0x221f, .idx = -8463 }, + { .start = 0x2264, .end = 0x2265, .idx = -8531 }, + { .start = 0x2500, .end = 0x2502, .idx = -9197 }, + { .start = 0x250c, .end = 0x251c, .idx = -9206 }, + { .start = 0x2524, .end = 0x2524, .idx = -9213 }, + { .start = 0x252c, .end = 0x252c, .idx = -9220 }, + { .start = 0x2534, .end = 0x2534, .idx = -9227 }, + { .start = 0x253c, .end = 0x253c, .idx = -9234 }, + { .start = 0x2550, .end = 0x256c, .idx = -9253 }, + { .start = 0x2580, .end = 0x2588, .idx = -9272 }, + { .start = 0x2591, .end = 0x2593, .idx = -9280 }, + { .start = 0x25a0, .end = 0x25a0, .idx = -9292 }, + { .start = 0x25ac, .end = 0x25b2, .idx = -9303 }, + { .start = 0x25ba, .end = 0x25bc, .idx = -9310 }, + { .start = 0x25c4, .end = 0x25c4, .idx = -9317 }, + { .start = 0x25cb, .end = 0x25cb, .idx = -9323 }, + { .start = 0x25d8, .end = 0x25d9, .idx = -9335 }, + { .start = 0x263a, .end = 0x2642, .idx = -9431 }, + { .start = 0x2660, .end = 0x266c, .idx = -9460 }, + { .start = 0xffe8, .end = 0xffee, .idx = -65135 }, + { .start = 0xffff, .end = 0xffff, .idx = 0 } }; static const char from_ucs4[] = diff -durpN glibc-2.3.1/iconvdata/ibm930.h glibc-2.3.2/iconvdata/ibm930.h --- glibc-2.3.1/iconvdata/ibm930.h 2001-11-28 22:13:11.000000000 -0800 +++ glibc-2.3.2/iconvdata/ibm930.h 2002-12-19 14:42:48.000000000 -0800 @@ -70,106 +70,106 @@ static const uint16_t __ibm930sb_to_ucs4 static const struct gap __ibm930db_to_ucs4_idx[] = { - { start: 0x4040, end: 0x4040, idx: -16448 }, - { start: 0x4141, end: 0x4158, idx: -16704 }, - { start: 0x4161, end: 0x4178, idx: -16712 }, - { start: 0x4180, end: 0x41a0, idx: -16719 }, - { start: 0x41b1, end: 0x41ba, idx: -16735 }, - { start: 0x41c0, end: 0x41e0, idx: -16740 }, - { start: 0x41f1, end: 0x41fa, idx: -16756 }, - { start: 0x424a, end: 0x4250, idx: -16835 }, - { start: 0x425a, end: 0x4261, idx: -16844 }, - { start: 0x426a, end: 0x426f, idx: -16852 }, - { start: 0x4279, end: 0x427f, idx: -16861 }, - { start: 0x4281, end: 0x4289, idx: -16862 }, - { start: 0x4291, end: 0x4299, idx: -16869 }, - { start: 0x42a1, end: 0x42a9, idx: -16876 }, - { start: 0x42c0, end: 0x42c9, idx: -16898 }, - { start: 0x42d0, end: 0x42d9, idx: -16904 }, - { start: 0x42e0, end: 0x42e0, idx: -16910 }, - { start: 0x42e2, end: 0x42e9, idx: -16911 }, - { start: 0x42f0, end: 0x42f9, idx: -16917 }, - { start: 0x4341, end: 0x434f, idx: -16988 }, - { start: 0x4351, end: 0x437a, idx: -16989 }, - { start: 0x437c, end: 0x437f, idx: -16990 }, - { start: 0x4381, end: 0x438a, idx: -16991 }, - { start: 0x438c, end: 0x439a, idx: -16992 }, - { start: 0x439d, end: 0x439f, idx: -16994 }, - { start: 0x43a1, end: 0x43aa, idx: -16995 }, - { start: 0x43ac, end: 0x43dd, idx: -16996 }, - { start: 0x43e0, end: 0x43f2, idx: -16998 }, - { start: 0x4442, end: 0x444e, idx: -17077 }, - { start: 0x4450, end: 0x4457, idx: -17078 }, - { start: 0x445a, end: 0x447f, idx: -17080 }, - { start: 0x4481, end: 0x448a, idx: -17081 }, - { start: 0x448c, end: 0x449a, idx: -17082 }, - { start: 0x449d, end: 0x449f, idx: -17084 }, - { start: 0x44a2, end: 0x44aa, idx: -17086 }, - { start: 0x44ac, end: 0x44af, idx: -17087 }, - { start: 0x44ba, end: 0x44bd, idx: -17097 }, - { start: 0x44c0, end: 0x44d3, idx: -17099 }, - { start: 0x44d5, end: 0x44dd, idx: -17100 }, - { start: 0x44e0, end: 0x44f3, idx: -17102 }, - { start: 0x4541, end: 0x45fe, idx: -17179 }, - { start: 0x4641, end: 0x46fe, idx: -17245 }, - { start: 0x4741, end: 0x47fe, idx: -17311 }, - { start: 0x4841, end: 0x48fe, idx: -17377 }, - { start: 0x4941, end: 0x49fe, idx: -17443 }, - { start: 0x4a41, end: 0x4afe, idx: -17509 }, - { start: 0x4b41, end: 0x4bfe, idx: -17575 }, - { start: 0x4c41, end: 0x4cfe, idx: -17641 }, - { start: 0x4d41, end: 0x4dfe, idx: -17707 }, - { start: 0x4e41, end: 0x4efe, idx: -17773 }, - { start: 0x4f41, end: 0x4ffe, idx: -17839 }, - { start: 0x5041, end: 0x50fe, idx: -17905 }, - { start: 0x5141, end: 0x51fe, idx: -17971 }, - { start: 0x5241, end: 0x52fe, idx: -18037 }, - { start: 0x5341, end: 0x53fe, idx: -18103 }, - { start: 0x5441, end: 0x54fe, idx: -18169 }, - { start: 0x5541, end: 0x55fa, idx: -18235 }, - { start: 0x5641, end: 0x56fe, idx: -18305 }, - { start: 0x5741, end: 0x57fe, idx: -18371 }, - { start: 0x5841, end: 0x58fe, idx: -18437 }, - { start: 0x5941, end: 0x59fe, idx: -18503 }, - { start: 0x5a41, end: 0x5afe, idx: -18569 }, - { start: 0x5b41, end: 0x5bfe, idx: -18635 }, - { start: 0x5c41, end: 0x5cfe, idx: -18701 }, - { start: 0x5d41, end: 0x5dfe, idx: -18767 }, - { start: 0x5e41, end: 0x5efe, idx: -18833 }, - { start: 0x5f41, end: 0x5ffe, idx: -18899 }, - { start: 0x6041, end: 0x60fe, idx: -18965 }, - { start: 0x6141, end: 0x61fe, idx: -19031 }, - { start: 0x6241, end: 0x62fe, idx: -19097 }, - { start: 0x6341, end: 0x63fe, idx: -19163 }, - { start: 0x6441, end: 0x64fe, idx: -19229 }, - { start: 0x6541, end: 0x65fe, idx: -19295 }, - { start: 0x6641, end: 0x66fe, idx: -19361 }, - { start: 0x6741, end: 0x67fe, idx: -19427 }, - { start: 0x6841, end: 0x6885, idx: -19493 }, - { start: 0x6941, end: 0x69fe, idx: -19680 }, - { start: 0x6a41, end: 0x6afe, idx: -19746 }, - { start: 0x6b41, end: 0x6bfe, idx: -19812 }, - { start: 0x6c41, end: 0x6cfe, idx: -19878 }, - { start: 0x6d41, end: 0x6dfe, idx: -19944 }, - { start: 0x6e41, end: 0x6efe, idx: -20010 }, - { start: 0x6f41, end: 0x6ffe, idx: -20076 }, - { start: 0x7041, end: 0x70fe, idx: -20142 }, - { start: 0x7141, end: 0x71fe, idx: -20208 }, - { start: 0x7241, end: 0x72fe, idx: -20274 }, - { start: 0x7341, end: 0x73fe, idx: -20340 }, - { start: 0x7441, end: 0x74fe, idx: -20406 }, - { start: 0x7541, end: 0x75fe, idx: -20472 }, - { start: 0x7641, end: 0x76fe, idx: -20538 }, - { start: 0x7741, end: 0x77fe, idx: -20604 }, - { start: 0x7841, end: 0x78fe, idx: -20670 }, - { start: 0x7941, end: 0x79fe, idx: -20736 }, - { start: 0x7a41, end: 0x7afe, idx: -20802 }, - { start: 0x7b41, end: 0x7bfe, idx: -20868 }, - { start: 0x7c41, end: 0x7cfe, idx: -20934 }, - { start: 0x7d41, end: 0x7dfe, idx: -21000 }, - { start: 0x7e41, end: 0x7efe, idx: -21066 }, - { start: 0x7f41, end: 0x7ffe, idx: -21132 }, - { start: 0xffff, end: 0xffff, idx: 0 } + { .start = 0x4040, .end = 0x4040, .idx = -16448 }, + { .start = 0x4141, .end = 0x4158, .idx = -16704 }, + { .start = 0x4161, .end = 0x4178, .idx = -16712 }, + { .start = 0x4180, .end = 0x41a0, .idx = -16719 }, + { .start = 0x41b1, .end = 0x41ba, .idx = -16735 }, + { .start = 0x41c0, .end = 0x41e0, .idx = -16740 }, + { .start = 0x41f1, .end = 0x41fa, .idx = -16756 }, + { .start = 0x424a, .end = 0x4250, .idx = -16835 }, + { .start = 0x425a, .end = 0x4261, .idx = -16844 }, + { .start = 0x426a, .end = 0x426f, .idx = -16852 }, + { .start = 0x4279, .end = 0x427f, .idx = -16861 }, + { .start = 0x4281, .end = 0x4289, .idx = -16862 }, + { .start = 0x4291, .end = 0x4299, .idx = -16869 }, + { .start = 0x42a1, .end = 0x42a9, .idx = -16876 }, + { .start = 0x42c0, .end = 0x42c9, .idx = -16898 }, + { .start = 0x42d0, .end = 0x42d9, .idx = -16904 }, + { .start = 0x42e0, .end = 0x42e0, .idx = -16910 }, + { .start = 0x42e2, .end = 0x42e9, .idx = -16911 }, + { .start = 0x42f0, .end = 0x42f9, .idx = -16917 }, + { .start = 0x4341, .end = 0x434f, .idx = -16988 }, + { .start = 0x4351, .end = 0x437a, .idx = -16989 }, + { .start = 0x437c, .end = 0x437f, .idx = -16990 }, + { .start = 0x4381, .end = 0x438a, .idx = -16991 }, + { .start = 0x438c, .end = 0x439a, .idx = -16992 }, + { .start = 0x439d, .end = 0x439f, .idx = -16994 }, + { .start = 0x43a1, .end = 0x43aa, .idx = -16995 }, + { .start = 0x43ac, .end = 0x43dd, .idx = -16996 }, + { .start = 0x43e0, .end = 0x43f2, .idx = -16998 }, + { .start = 0x4442, .end = 0x444e, .idx = -17077 }, + { .start = 0x4450, .end = 0x4457, .idx = -17078 }, + { .start = 0x445a, .end = 0x447f, .idx = -17080 }, + { .start = 0x4481, .end = 0x448a, .idx = -17081 }, + { .start = 0x448c, .end = 0x449a, .idx = -17082 }, + { .start = 0x449d, .end = 0x449f, .idx = -17084 }, + { .start = 0x44a2, .end = 0x44aa, .idx = -17086 }, + { .start = 0x44ac, .end = 0x44af, .idx = -17087 }, + { .start = 0x44ba, .end = 0x44bd, .idx = -17097 }, + { .start = 0x44c0, .end = 0x44d3, .idx = -17099 }, + { .start = 0x44d5, .end = 0x44dd, .idx = -17100 }, + { .start = 0x44e0, .end = 0x44f3, .idx = -17102 }, + { .start = 0x4541, .end = 0x45fe, .idx = -17179 }, + { .start = 0x4641, .end = 0x46fe, .idx = -17245 }, + { .start = 0x4741, .end = 0x47fe, .idx = -17311 }, + { .start = 0x4841, .end = 0x48fe, .idx = -17377 }, + { .start = 0x4941, .end = 0x49fe, .idx = -17443 }, + { .start = 0x4a41, .end = 0x4afe, .idx = -17509 }, + { .start = 0x4b41, .end = 0x4bfe, .idx = -17575 }, + { .start = 0x4c41, .end = 0x4cfe, .idx = -17641 }, + { .start = 0x4d41, .end = 0x4dfe, .idx = -17707 }, + { .start = 0x4e41, .end = 0x4efe, .idx = -17773 }, + { .start = 0x4f41, .end = 0x4ffe, .idx = -17839 }, + { .start = 0x5041, .end = 0x50fe, .idx = -17905 }, + { .start = 0x5141, .end = 0x51fe, .idx = -17971 }, + { .start = 0x5241, .end = 0x52fe, .idx = -18037 }, + { .start = 0x5341, .end = 0x53fe, .idx = -18103 }, + { .start = 0x5441, .end = 0x54fe, .idx = -18169 }, + { .start = 0x5541, .end = 0x55fa, .idx = -18235 }, + { .start = 0x5641, .end = 0x56fe, .idx = -18305 }, + { .start = 0x5741, .end = 0x57fe, .idx = -18371 }, + { .start = 0x5841, .end = 0x58fe, .idx = -18437 }, + { .start = 0x5941, .end = 0x59fe, .idx = -18503 }, + { .start = 0x5a41, .end = 0x5afe, .idx = -18569 }, + { .start = 0x5b41, .end = 0x5bfe, .idx = -18635 }, + { .start = 0x5c41, .end = 0x5cfe, .idx = -18701 }, + { .start = 0x5d41, .end = 0x5dfe, .idx = -18767 }, + { .start = 0x5e41, .end = 0x5efe, .idx = -18833 }, + { .start = 0x5f41, .end = 0x5ffe, .idx = -18899 }, + { .start = 0x6041, .end = 0x60fe, .idx = -18965 }, + { .start = 0x6141, .end = 0x61fe, .idx = -19031 }, + { .start = 0x6241, .end = 0x62fe, .idx = -19097 }, + { .start = 0x6341, .end = 0x63fe, .idx = -19163 }, + { .start = 0x6441, .end = 0x64fe, .idx = -19229 }, + { .start = 0x6541, .end = 0x65fe, .idx = -19295 }, + { .start = 0x6641, .end = 0x66fe, .idx = -19361 }, + { .start = 0x6741, .end = 0x67fe, .idx = -19427 }, + { .start = 0x6841, .end = 0x6885, .idx = -19493 }, + { .start = 0x6941, .end = 0x69fe, .idx = -19680 }, + { .start = 0x6a41, .end = 0x6afe, .idx = -19746 }, + { .start = 0x6b41, .end = 0x6bfe, .idx = -19812 }, + { .start = 0x6c41, .end = 0x6cfe, .idx = -19878 }, + { .start = 0x6d41, .end = 0x6dfe, .idx = -19944 }, + { .start = 0x6e41, .end = 0x6efe, .idx = -20010 }, + { .start = 0x6f41, .end = 0x6ffe, .idx = -20076 }, + { .start = 0x7041, .end = 0x70fe, .idx = -20142 }, + { .start = 0x7141, .end = 0x71fe, .idx = -20208 }, + { .start = 0x7241, .end = 0x72fe, .idx = -20274 }, + { .start = 0x7341, .end = 0x73fe, .idx = -20340 }, + { .start = 0x7441, .end = 0x74fe, .idx = -20406 }, + { .start = 0x7541, .end = 0x75fe, .idx = -20472 }, + { .start = 0x7641, .end = 0x76fe, .idx = -20538 }, + { .start = 0x7741, .end = 0x77fe, .idx = -20604 }, + { .start = 0x7841, .end = 0x78fe, .idx = -20670 }, + { .start = 0x7941, .end = 0x79fe, .idx = -20736 }, + { .start = 0x7a41, .end = 0x7afe, .idx = -20802 }, + { .start = 0x7b41, .end = 0x7bfe, .idx = -20868 }, + { .start = 0x7c41, .end = 0x7cfe, .idx = -20934 }, + { .start = 0x7d41, .end = 0x7dfe, .idx = -21000 }, + { .start = 0x7e41, .end = 0x7efe, .idx = -21066 }, + { .start = 0x7f41, .end = 0x7ffe, .idx = -21132 }, + { .start = 0xffff, .end = 0xffff, .idx = 0 } }; static const uint16_t __ibm930db_to_ucs4[] = @@ -1471,33 +1471,33 @@ static const uint16_t __ibm930db_to_ucs4 static const struct gap __ucs4_to_ibm930sb_idx[] = { - { start: 0x0000, end: 0x00a5, idx: 0 }, - { start: 0x00a9, end: 0x00af, idx: -3 }, - { start: 0x00b2, end: 0x00b3, idx: -5 }, - { start: 0x00b5, end: 0x00b5, idx: -6 }, - { start: 0x00b7, end: 0x00d6, idx: -7 }, - { start: 0x00d8, end: 0x00f6, idx: -8 }, - { start: 0x00f8, end: 0x00ff, idx: -9 }, - { start: 0x203e, end: 0x203e, idx: -8007 }, - { start: 0x2195, end: 0x2195, idx: -8349 }, - { start: 0x21b5, end: 0x21b5, idx: -8380 }, - { start: 0x2550, end: 0x2551, idx: -9302 }, - { start: 0x2554, end: 0x2554, idx: -9304 }, - { start: 0x2557, end: 0x2557, idx: -9306 }, - { start: 0x255a, end: 0x255a, idx: -9308 }, - { start: 0x255d, end: 0x255d, idx: -9310 }, - { start: 0x2560, end: 0x2560, idx: -9312 }, - { start: 0x2563, end: 0x2563, idx: -9314 }, - { start: 0x2566, end: 0x2566, idx: -9316 }, - { start: 0x2569, end: 0x2569, idx: -9318 }, - { start: 0x256c, end: 0x256c, idx: -9320 }, - { start: 0x2591, end: 0x2591, idx: -9356 }, - { start: 0x2593, end: 0x2593, idx: -9357 }, - { start: 0x263c, end: 0x263c, idx: -9525 }, - { start: 0x303f, end: 0x303f, idx: -12087 }, - { start: 0xff61, end: 0xff9f, idx: -65112 }, - { start: 0xffe8, end: 0xffee, idx: -65184 }, - { start: 0xffff, end: 0xffff, idx: 0 } + { .start = 0x0000, .end = 0x00a5, .idx = 0 }, + { .start = 0x00a9, .end = 0x00af, .idx = -3 }, + { .start = 0x00b2, .end = 0x00b3, .idx = -5 }, + { .start = 0x00b5, .end = 0x00b5, .idx = -6 }, + { .start = 0x00b7, .end = 0x00d6, .idx = -7 }, + { .start = 0x00d8, .end = 0x00f6, .idx = -8 }, + { .start = 0x00f8, .end = 0x00ff, .idx = -9 }, + { .start = 0x203e, .end = 0x203e, .idx = -8007 }, + { .start = 0x2195, .end = 0x2195, .idx = -8349 }, + { .start = 0x21b5, .end = 0x21b5, .idx = -8380 }, + { .start = 0x2550, .end = 0x2551, .idx = -9302 }, + { .start = 0x2554, .end = 0x2554, .idx = -9304 }, + { .start = 0x2557, .end = 0x2557, .idx = -9306 }, + { .start = 0x255a, .end = 0x255a, .idx = -9308 }, + { .start = 0x255d, .end = 0x255d, .idx = -9310 }, + { .start = 0x2560, .end = 0x2560, .idx = -9312 }, + { .start = 0x2563, .end = 0x2563, .idx = -9314 }, + { .start = 0x2566, .end = 0x2566, .idx = -9316 }, + { .start = 0x2569, .end = 0x2569, .idx = -9318 }, + { .start = 0x256c, .end = 0x256c, .idx = -9320 }, + { .start = 0x2591, .end = 0x2591, .idx = -9356 }, + { .start = 0x2593, .end = 0x2593, .idx = -9357 }, + { .start = 0x263c, .end = 0x263c, .idx = -9525 }, + { .start = 0x303f, .end = 0x303f, .idx = -12087 }, + { .start = 0xff61, .end = 0xff9f, .idx = -65112 }, + { .start = 0xffe8, .end = 0xffee, .idx = -65184 }, + { .start = 0xffff, .end = 0xffff, .idx = 0 } }; static const char * __ucs4_to_ibm930sb[] = @@ -1544,4245 +1544,4245 @@ static const char * __ucs4_to_ibm930sb[] static const struct gap __ucs4_to_ibm930db_idx[] = { - { start: 0x00a6, end: 0x00a8, idx: -166 }, - { start: 0x00b0, end: 0x00b1, idx: -173 }, - { start: 0x00b4, end: 0x00b4, idx: -175 }, - { start: 0x00b6, end: 0x00b6, idx: -176 }, - { start: 0x00d7, end: 0x00d7, idx: -208 }, - { start: 0x00f7, end: 0x00f7, idx: -239 }, - { start: 0x0391, end: 0x03a1, idx: -904 }, - { start: 0x03a3, end: 0x03a9, idx: -905 }, - { start: 0x03b1, end: 0x03c1, idx: -912 }, - { start: 0x03c3, end: 0x03c9, idx: -913 }, - { start: 0x0401, end: 0x0401, idx: -968 }, - { start: 0x0410, end: 0x044f, idx: -982 }, - { start: 0x0451, end: 0x0451, idx: -983 }, - { start: 0x2010, end: 0x2010, idx: -8085 }, - { start: 0x2014, end: 0x2016, idx: -8088 }, - { start: 0x2018, end: 0x2019, idx: -8089 }, - { start: 0x201c, end: 0x201d, idx: -8091 }, - { start: 0x2020, end: 0x2021, idx: -8093 }, - { start: 0x2025, end: 0x2026, idx: -8096 }, - { start: 0x2030, end: 0x2030, idx: -8105 }, - { start: 0x2032, end: 0x2033, idx: -8106 }, - { start: 0x203b, end: 0x203b, idx: -8113 }, - { start: 0x2103, end: 0x2103, idx: -8312 }, - { start: 0x2116, end: 0x2116, idx: -8330 }, - { start: 0x2121, end: 0x2121, idx: -8340 }, - { start: 0x212b, end: 0x212b, idx: -8349 }, - { start: 0x2160, end: 0x2169, idx: -8401 }, - { start: 0x2170, end: 0x2179, idx: -8407 }, - { start: 0x2190, end: 0x2193, idx: -8429 }, - { start: 0x21d2, end: 0x21d2, idx: -8491 }, - { start: 0x21d4, end: 0x21d4, idx: -8492 }, - { start: 0x2200, end: 0x2200, idx: -8535 }, - { start: 0x2202, end: 0x2203, idx: -8536 }, - { start: 0x2207, end: 0x2208, idx: -8539 }, - { start: 0x220b, end: 0x220b, idx: -8541 }, - { start: 0x2212, end: 0x2212, idx: -8547 }, - { start: 0x221a, end: 0x221a, idx: -8554 }, - { start: 0x221d, end: 0x221e, idx: -8556 }, - { start: 0x2220, end: 0x2220, idx: -8557 }, - { start: 0x2225, end: 0x2225, idx: -8561 }, - { start: 0x2227, end: 0x222c, idx: -8562 }, - { start: 0x2234, end: 0x2235, idx: -8569 }, - { start: 0x223d, end: 0x223d, idx: -8576 }, - { start: 0x2252, end: 0x2252, idx: -8596 }, - { start: 0x2260, end: 0x2261, idx: -8609 }, - { start: 0x2266, end: 0x2267, idx: -8613 }, - { start: 0x226a, end: 0x226b, idx: -8615 }, - { start: 0x2282, end: 0x2283, idx: -8637 }, - { start: 0x2286, end: 0x2287, idx: -8639 }, - { start: 0x22a5, end: 0x22a5, idx: -8668 }, - { start: 0x2312, end: 0x2312, idx: -8776 }, - { start: 0x2500, end: 0x2503, idx: -9269 }, - { start: 0x250c, end: 0x250c, idx: -9277 }, - { start: 0x250f, end: 0x2510, idx: -9279 }, - { start: 0x2513, end: 0x2514, idx: -9281 }, - { start: 0x2517, end: 0x2518, idx: -9283 }, - { start: 0x251b, end: 0x251d, idx: -9285 }, - { start: 0x2520, end: 0x2520, idx: -9287 }, - { start: 0x2523, end: 0x2525, idx: -9289 }, - { start: 0x2528, end: 0x2528, idx: -9291 }, - { start: 0x252b, end: 0x252c, idx: -9293 }, - { start: 0x252f, end: 0x2530, idx: -9295 }, - { start: 0x2533, end: 0x2534, idx: -9297 }, - { start: 0x2537, end: 0x2538, idx: -9299 }, - { start: 0x253b, end: 0x253c, idx: -9301 }, - { start: 0x253f, end: 0x253f, idx: -9303 }, - { start: 0x2542, end: 0x2542, idx: -9305 }, - { start: 0x254b, end: 0x254b, idx: -9313 }, - { start: 0x25a0, end: 0x25a1, idx: -9397 }, - { start: 0x25b2, end: 0x25b3, idx: -9413 }, - { start: 0x25bc, end: 0x25bd, idx: -9421 }, - { start: 0x25c6, end: 0x25c7, idx: -9429 }, - { start: 0x25cb, end: 0x25cb, idx: -9432 }, - { start: 0x25ce, end: 0x25cf, idx: -9434 }, - { start: 0x25ef, end: 0x25ef, idx: -9465 }, - { start: 0x2605, end: 0x2606, idx: -9486 }, - { start: 0x2640, end: 0x2640, idx: -9543 }, - { start: 0x2642, end: 0x2642, idx: -9544 }, - { start: 0x266a, end: 0x266a, idx: -9583 }, - { start: 0x266d, end: 0x266d, idx: -9585 }, - { start: 0x266f, end: 0x266f, idx: -9586 }, - { start: 0x3000, end: 0x3003, idx: -12034 }, - { start: 0x3005, end: 0x3015, idx: -12035 }, - { start: 0x301c, end: 0x301c, idx: -12041 }, - { start: 0x3041, end: 0x3093, idx: -12077 }, - { start: 0x309b, end: 0x309e, idx: -12084 }, - { start: 0x30a1, end: 0x30f6, idx: -12086 }, - { start: 0x30fb, end: 0x30fe, idx: -12090 }, - { start: 0x3231, end: 0x3231, idx: -12396 }, - { start: 0x4e00, end: 0x4e01, idx: -19514 }, - { start: 0x4e03, end: 0x4e03, idx: -19515 }, - { start: 0x4e07, end: 0x4e0b, idx: -19518 }, - { start: 0x4e0d, end: 0x4e0e, idx: -19519 }, - { start: 0x4e10, end: 0x4e11, idx: -19520 }, - { start: 0x4e14, end: 0x4e19, idx: -19522 }, - { start: 0x4e1e, end: 0x4e1e, idx: -19526 }, - { start: 0x4e21, end: 0x4e21, idx: -19528 }, - { start: 0x4e26, end: 0x4e26, idx: -19532 }, - { start: 0x4e28, end: 0x4e28, idx: -19533 }, - { start: 0x4e2a, end: 0x4e2a, idx: -19534 }, - { start: 0x4e2d, end: 0x4e2d, idx: -19536 }, - { start: 0x4e31, end: 0x4e32, idx: -19539 }, - { start: 0x4e36, end: 0x4e36, idx: -19542 }, - { start: 0x4e38, end: 0x4e39, idx: -19543 }, - { start: 0x4e3b, end: 0x4e3c, idx: -19544 }, - { start: 0x4e3f, end: 0x4e3f, idx: -19546 }, - { start: 0x4e42, end: 0x4e43, idx: -19548 }, - { start: 0x4e45, end: 0x4e45, idx: -19549 }, - { start: 0x4e4b, end: 0x4e4b, idx: -19554 }, - { start: 0x4e4d, end: 0x4e4f, idx: -19555 }, - { start: 0x4e55, end: 0x4e59, idx: -19560 }, - { start: 0x4e5d, end: 0x4e5f, idx: -19563 }, - { start: 0x4e62, end: 0x4e62, idx: -19565 }, - { start: 0x4e71, end: 0x4e71, idx: -19579 }, - { start: 0x4e73, end: 0x4e73, idx: -19580 }, - { start: 0x4e7e, end: 0x4e7e, idx: -19590 }, - { start: 0x4e80, end: 0x4e80, idx: -19591 }, - { start: 0x4e82, end: 0x4e82, idx: -19592 }, - { start: 0x4e85, end: 0x4e86, idx: -19594 }, - { start: 0x4e88, end: 0x4e8c, idx: -19595 }, - { start: 0x4e8e, end: 0x4e8e, idx: -19596 }, - { start: 0x4e91, end: 0x4e92, idx: -19598 }, - { start: 0x4e94, end: 0x4e95, idx: -19599 }, - { start: 0x4e98, end: 0x4e99, idx: -19601 }, - { start: 0x4e9b, end: 0x4e9c, idx: -19602 }, - { start: 0x4e9e, end: 0x4ea2, idx: -19603 }, - { start: 0x4ea4, end: 0x4ea6, idx: -19604 }, - { start: 0x4ea8, end: 0x4ea8, idx: -19605 }, - { start: 0x4eab, end: 0x4eae, idx: -19607 }, - { start: 0x4eb0, end: 0x4eb0, idx: -19608 }, - { start: 0x4eb3, end: 0x4eb3, idx: -19610 }, - { start: 0x4eb6, end: 0x4eb6, idx: -19612 }, - { start: 0x4eba, end: 0x4eba, idx: -19615 }, - { start: 0x4ec0, end: 0x4ec2, idx: -19620 }, - { start: 0x4ec4, end: 0x4ec4, idx: -19621 }, - { start: 0x4ec6, end: 0x4ec7, idx: -19622 }, - { start: 0x4eca, end: 0x4ecb, idx: -19624 }, - { start: 0x4ecd, end: 0x4ecf, idx: -19625 }, - { start: 0x4ed4, end: 0x4ed9, idx: -19629 }, - { start: 0x4edd, end: 0x4edf, idx: -19632 }, - { start: 0x4ee1, end: 0x4ee1, idx: -19633 }, - { start: 0x4ee3, end: 0x4ee5, idx: -19634 }, - { start: 0x4eed, end: 0x4eee, idx: -19641 }, - { start: 0x4ef0, end: 0x4ef0, idx: -19642 }, - { start: 0x4ef2, end: 0x4ef2, idx: -19643 }, - { start: 0x4ef6, end: 0x4ef7, idx: -19646 }, - { start: 0x4efb, end: 0x4efc, idx: -19649 }, - { start: 0x4f00, end: 0x4f01, idx: -19652 }, - { start: 0x4f03, end: 0x4f03, idx: -19653 }, - { start: 0x4f09, end: 0x4f0a, idx: -19658 }, - { start: 0x4f0d, end: 0x4f11, idx: -19660 }, - { start: 0x4f1a, end: 0x4f1a, idx: -19668 }, - { start: 0x4f1c, end: 0x4f1d, idx: -19669 }, - { start: 0x4f2f, end: 0x4f30, idx: -19686 }, - { start: 0x4f34, end: 0x4f34, idx: -19689 }, - { start: 0x4f36, end: 0x4f36, idx: -19690 }, - { start: 0x4f38, end: 0x4f3a, idx: -19691 }, - { start: 0x4f3c, end: 0x4f3d, idx: -19692 }, - { start: 0x4f43, end: 0x4f43, idx: -19697 }, - { start: 0x4f46, end: 0x4f47, idx: -19699 }, - { start: 0x4f4d, end: 0x4f51, idx: -19704 }, - { start: 0x4f53, end: 0x4f53, idx: -19705 }, - { start: 0x4f55, end: 0x4f57, idx: -19706 }, - { start: 0x4f59, end: 0x4f5e, idx: -19707 }, - { start: 0x4f69, end: 0x4f69, idx: -19717 }, - { start: 0x4f6f, end: 0x4f70, idx: -19722 }, - { start: 0x4f73, end: 0x4f73, idx: -19724 }, - { start: 0x4f75, end: 0x4f76, idx: -19725 }, - { start: 0x4f7b, end: 0x4f7c, idx: -19729 }, - { start: 0x4f7f, end: 0x4f7f, idx: -19731 }, - { start: 0x4f83, end: 0x4f83, idx: -19734 }, - { start: 0x4f86, end: 0x4f86, idx: -19736 }, - { start: 0x4f88, end: 0x4f88, idx: -19737 }, - { start: 0x4f8a, end: 0x4f8b, idx: -19738 }, - { start: 0x4f8d, end: 0x4f8d, idx: -19739 }, - { start: 0x4f8f, end: 0x4f8f, idx: -19740 }, - { start: 0x4f91, end: 0x4f92, idx: -19741 }, - { start: 0x4f94, end: 0x4f94, idx: -19742 }, - { start: 0x4f96, end: 0x4f96, idx: -19743 }, - { start: 0x4f98, end: 0x4f98, idx: -19744 }, - { start: 0x4f9a, end: 0x4f9b, idx: -19745 }, - { start: 0x4f9d, end: 0x4f9d, idx: -19746 }, - { start: 0x4fa0, end: 0x4fa1, idx: -19748 }, - { start: 0x4fab, end: 0x4fab, idx: -19757 }, - { start: 0x4fad, end: 0x4faf, idx: -19758 }, - { start: 0x4fb5, end: 0x4fb6, idx: -19763 }, - { start: 0x4fbf, end: 0x4fbf, idx: -19771 }, - { start: 0x4fc2, end: 0x4fc4, idx: -19773 }, - { start: 0x4fc9, end: 0x4fca, idx: -19777 }, - { start: 0x4fcd, end: 0x4fce, idx: -19779 }, - { start: 0x4fd0, end: 0x4fd1, idx: -19780 }, - { start: 0x4fd4, end: 0x4fd4, idx: -19782 }, - { start: 0x4fd7, end: 0x4fd8, idx: -19784 }, - { start: 0x4fda, end: 0x4fdb, idx: -19785 }, - { start: 0x4fdd, end: 0x4fdd, idx: -19786 }, - { start: 0x4fdf, end: 0x4fe1, idx: -19787 }, - { start: 0x4fe3, end: 0x4fe5, idx: -19788 }, - { start: 0x4fee, end: 0x4fef, idx: -19796 }, - { start: 0x4ff3, end: 0x4ff3, idx: -19799 }, - { start: 0x4ff5, end: 0x4ff6, idx: -19800 }, - { start: 0x4ff8, end: 0x4ff8, idx: -19801 }, - { start: 0x4ffa, end: 0x4ffa, idx: -19802 }, - { start: 0x4ffe, end: 0x4fff, idx: -19805 }, - { start: 0x5005, end: 0x5006, idx: -19810 }, - { start: 0x5009, end: 0x5009, idx: -19812 }, - { start: 0x500b, end: 0x500b, idx: -19813 }, - { start: 0x500d, end: 0x500d, idx: -19814 }, - { start: 0x500f, end: 0x500f, idx: -19815 }, - { start: 0x5011, end: 0x5012, idx: -19816 }, - { start: 0x5014, end: 0x5014, idx: -19817 }, - { start: 0x5016, end: 0x5016, idx: -19818 }, - { start: 0x5019, end: 0x501a, idx: -19820 }, - { start: 0x501e, end: 0x501f, idx: -19823 }, - { start: 0x5021, end: 0x5026, idx: -19824 }, - { start: 0x5028, end: 0x502d, idx: -19825 }, - { start: 0x5036, end: 0x5036, idx: -19833 }, - { start: 0x5039, end: 0x5039, idx: -19835 }, - { start: 0x5040, end: 0x5040, idx: -19841 }, - { start: 0x5042, end: 0x5043, idx: -19842 }, - { start: 0x5046, end: 0x5049, idx: -19844 }, - { start: 0x504f, end: 0x5050, idx: -19849 }, - { start: 0x5055, end: 0x5056, idx: -19853 }, - { start: 0x505a, end: 0x505a, idx: -19856 }, - { start: 0x505c, end: 0x505c, idx: -19857 }, - { start: 0x5065, end: 0x5065, idx: -19865 }, - { start: 0x506c, end: 0x506c, idx: -19871 }, - { start: 0x5070, end: 0x5070, idx: -19874 }, - { start: 0x5072, end: 0x5072, idx: -19875 }, - { start: 0x5074, end: 0x5076, idx: -19876 }, - { start: 0x5078, end: 0x5078, idx: -19877 }, - { start: 0x507d, end: 0x507d, idx: -19881 }, - { start: 0x5080, end: 0x5080, idx: -19883 }, - { start: 0x5085, end: 0x5085, idx: -19887 }, - { start: 0x508d, end: 0x508d, idx: -19894 }, - { start: 0x5091, end: 0x5091, idx: -19897 }, - { start: 0x5094, end: 0x5094, idx: -19899 }, - { start: 0x5098, end: 0x509a, idx: -19902 }, - { start: 0x50ac, end: 0x50ad, idx: -19919 }, - { start: 0x50b2, end: 0x50b5, idx: -19923 }, - { start: 0x50b7, end: 0x50b7, idx: -19924 }, - { start: 0x50be, end: 0x50be, idx: -19930 }, - { start: 0x50c2, end: 0x50c2, idx: -19933 }, - { start: 0x50c5, end: 0x50c5, idx: -19935 }, - { start: 0x50c9, end: 0x50ca, idx: -19938 }, - { start: 0x50cd, end: 0x50cd, idx: -19940 }, - { start: 0x50cf, end: 0x50cf, idx: -19941 }, - { start: 0x50d1, end: 0x50d1, idx: -19942 }, - { start: 0x50d5, end: 0x50d6, idx: -19945 }, - { start: 0x50d8, end: 0x50d8, idx: -19946 }, - { start: 0x50da, end: 0x50da, idx: -19947 }, - { start: 0x50de, end: 0x50de, idx: -19950 }, - { start: 0x50e3, end: 0x50e3, idx: -19954 }, - { start: 0x50e5, end: 0x50e5, idx: -19955 }, - { start: 0x50e7, end: 0x50e7, idx: -19956 }, - { start: 0x50ed, end: 0x50ee, idx: -19961 }, - { start: 0x50f4, end: 0x50f5, idx: -19966 }, - { start: 0x50f9, end: 0x50f9, idx: -19969 }, - { start: 0x50fb, end: 0x50fb, idx: -19970 }, - { start: 0x5100, end: 0x5102, idx: -19974 }, - { start: 0x5104, end: 0x5104, idx: -19975 }, - { start: 0x5109, end: 0x5109, idx: -19979 }, - { start: 0x5112, end: 0x5112, idx: -19987 }, - { start: 0x5114, end: 0x5116, idx: -19988 }, - { start: 0x5118, end: 0x5118, idx: -19989 }, - { start: 0x511a, end: 0x511a, idx: -19990 }, - { start: 0x511f, end: 0x511f, idx: -19994 }, - { start: 0x5121, end: 0x5121, idx: -19995 }, - { start: 0x512a, end: 0x512a, idx: -20003 }, - { start: 0x5132, end: 0x5132, idx: -20010 }, - { start: 0x5137, end: 0x5137, idx: -20014 }, - { start: 0x513a, end: 0x513c, idx: -20016 }, - { start: 0x513f, end: 0x5141, idx: -20018 }, - { start: 0x5143, end: 0x514e, idx: -20019 }, - { start: 0x5150, end: 0x5150, idx: -20020 }, - { start: 0x5152, end: 0x5152, idx: -20021 }, - { start: 0x5154, end: 0x5154, idx: -20022 }, - { start: 0x515a, end: 0x515a, idx: -20027 }, - { start: 0x515c, end: 0x515c, idx: -20028 }, - { start: 0x5162, end: 0x5162, idx: -20033 }, - { start: 0x5164, end: 0x5165, idx: -20034 }, - { start: 0x5168, end: 0x516e, idx: -20036 }, - { start: 0x5171, end: 0x5171, idx: -20038 }, - { start: 0x5175, end: 0x5178, idx: -20041 }, - { start: 0x517c, end: 0x517c, idx: -20044 }, - { start: 0x5180, end: 0x5180, idx: -20047 }, - { start: 0x5182, end: 0x5182, idx: -20048 }, - { start: 0x5185, end: 0x5186, idx: -20050 }, - { start: 0x5189, end: 0x518a, idx: -20052 }, - { start: 0x518c, end: 0x518d, idx: -20053 }, - { start: 0x518f, end: 0x5193, idx: -20054 }, - { start: 0x5195, end: 0x5197, idx: -20055 }, - { start: 0x5199, end: 0x5199, idx: -20056 }, - { start: 0x519d, end: 0x519d, idx: -20059 }, - { start: 0x51a0, end: 0x51a0, idx: -20061 }, - { start: 0x51a2, end: 0x51a2, idx: -20062 }, - { start: 0x51a4, end: 0x51a6, idx: -20063 }, - { start: 0x51a8, end: 0x51ac, idx: -20064 }, - { start: 0x51b0, end: 0x51b7, idx: -20067 }, - { start: 0x51bd, end: 0x51be, idx: -20072 }, - { start: 0x51c4, end: 0x51c6, idx: -20077 }, - { start: 0x51c9, end: 0x51c9, idx: -20079 }, - { start: 0x51cb, end: 0x51cd, idx: -20080 }, - { start: 0x51d6, end: 0x51d6, idx: -20088 }, - { start: 0x51db, end: 0x51dd, idx: -20092 }, - { start: 0x51e0, end: 0x51e1, idx: -20094 }, - { start: 0x51e6, end: 0x51e7, idx: -20098 }, - { start: 0x51e9, end: 0x51ea, idx: -20099 }, - { start: 0x51ec, end: 0x51ed, idx: -20100 }, - { start: 0x51f0, end: 0x51f1, idx: -20102 }, - { start: 0x51f5, end: 0x51f6, idx: -20105 }, - { start: 0x51f8, end: 0x51fa, idx: -20106 }, - { start: 0x51fd, end: 0x51fe, idx: -20108 }, - { start: 0x5200, end: 0x5200, idx: -20109 }, - { start: 0x5203, end: 0x5204, idx: -20111 }, - { start: 0x5206, end: 0x5208, idx: -20112 }, - { start: 0x520a, end: 0x520b, idx: -20113 }, - { start: 0x520e, end: 0x520e, idx: -20115 }, - { start: 0x5211, end: 0x5211, idx: -20117 }, - { start: 0x5214, end: 0x5215, idx: -20119 }, - { start: 0x5217, end: 0x5217, idx: -20120 }, - { start: 0x521d, end: 0x521d, idx: -20125 }, - { start: 0x5224, end: 0x5225, idx: -20131 }, - { start: 0x5227, end: 0x5227, idx: -20132 }, - { start: 0x5229, end: 0x522a, idx: -20133 }, - { start: 0x522e, end: 0x522e, idx: -20136 }, - { start: 0x5230, end: 0x5230, idx: -20137 }, - { start: 0x5233, end: 0x5233, idx: -20139 }, - { start: 0x5236, end: 0x523b, idx: -20141 }, - { start: 0x5243, end: 0x5244, idx: -20148 }, - { start: 0x5247, end: 0x5247, idx: -20150 }, - { start: 0x524a, end: 0x524d, idx: -20152 }, - { start: 0x524f, end: 0x524f, idx: -20153 }, - { start: 0x5254, end: 0x5254, idx: -20157 }, - { start: 0x5256, end: 0x5256, idx: -20158 }, - { start: 0x525b, end: 0x525b, idx: -20162 }, - { start: 0x525d, end: 0x525e, idx: -20163 }, - { start: 0x5263, end: 0x5265, idx: -20167 }, - { start: 0x5269, end: 0x526a, idx: -20170 }, - { start: 0x526f, end: 0x5275, idx: -20174 }, - { start: 0x527d, end: 0x527d, idx: -20181 }, - { start: 0x527f, end: 0x527f, idx: -20182 }, - { start: 0x5283, end: 0x5283, idx: -20185 }, - { start: 0x5287, end: 0x5289, idx: -20188 }, - { start: 0x528d, end: 0x528d, idx: -20191 }, - { start: 0x5291, end: 0x5292, idx: -20194 }, - { start: 0x5294, end: 0x5294, idx: -20195 }, - { start: 0x529b, end: 0x529c, idx: -20201 }, - { start: 0x529f, end: 0x52a0, idx: -20203 }, - { start: 0x52a3, end: 0x52a3, idx: -20205 }, - { start: 0x52a6, end: 0x52a6, idx: -20207 }, - { start: 0x52a9, end: 0x52ad, idx: -20209 }, - { start: 0x52af, end: 0x52af, idx: -20210 }, - { start: 0x52b1, end: 0x52b1, idx: -20211 }, - { start: 0x52b4, end: 0x52b5, idx: -20213 }, - { start: 0x52b9, end: 0x52b9, idx: -20216 }, - { start: 0x52bc, end: 0x52bc, idx: -20218 }, - { start: 0x52be, end: 0x52be, idx: -20219 }, - { start: 0x52c0, end: 0x52c1, idx: -20220 }, - { start: 0x52c3, end: 0x52c3, idx: -20221 }, - { start: 0x52c5, end: 0x52c5, idx: -20222 }, - { start: 0x52c7, end: 0x52c7, idx: -20223 }, - { start: 0x52c9, end: 0x52c9, idx: -20224 }, - { start: 0x52cd, end: 0x52cd, idx: -20227 }, - { start: 0x52d2, end: 0x52d2, idx: -20231 }, - { start: 0x52d5, end: 0x52d5, idx: -20233 }, - { start: 0x52d7, end: 0x52d9, idx: -20234 }, - { start: 0x52db, end: 0x52db, idx: -20235 }, - { start: 0x52dd, end: 0x52e0, idx: -20236 }, - { start: 0x52e2, end: 0x52e4, idx: -20237 }, - { start: 0x52e6, end: 0x52e7, idx: -20238 }, - { start: 0x52f2, end: 0x52f3, idx: -20248 }, - { start: 0x52f5, end: 0x52f5, idx: -20249 }, - { start: 0x52f8, end: 0x52fa, idx: -20251 }, - { start: 0x52fe, end: 0x5302, idx: -20254 }, - { start: 0x5305, end: 0x5308, idx: -20256 }, - { start: 0x530d, end: 0x530d, idx: -20260 }, - { start: 0x530f, end: 0x5310, idx: -20261 }, - { start: 0x5315, end: 0x5317, idx: -20265 }, - { start: 0x5319, end: 0x531a, idx: -20266 }, - { start: 0x531d, end: 0x531d, idx: -20268 }, - { start: 0x5320, end: 0x5321, idx: -20270 }, - { start: 0x5323, end: 0x5324, idx: -20271 }, - { start: 0x532a, end: 0x532a, idx: -20276 }, - { start: 0x532f, end: 0x532f, idx: -20280 }, - { start: 0x5331, end: 0x5331, idx: -20281 }, - { start: 0x5333, end: 0x5333, idx: -20282 }, - { start: 0x5338, end: 0x533b, idx: -20286 }, - { start: 0x533f, end: 0x5341, idx: -20289 }, - { start: 0x5343, end: 0x5343, idx: -20290 }, - { start: 0x5345, end: 0x534a, idx: -20291 }, - { start: 0x534d, end: 0x534d, idx: -20293 }, - { start: 0x5351, end: 0x5354, idx: -20296 }, - { start: 0x5357, end: 0x5358, idx: -20298 }, - { start: 0x535a, end: 0x535a, idx: -20299 }, - { start: 0x535c, end: 0x535c, idx: -20300 }, - { start: 0x535e, end: 0x535e, idx: -20301 }, - { start: 0x5360, end: 0x5360, idx: -20302 }, - { start: 0x5366, end: 0x5366, idx: -20307 }, - { start: 0x5369, end: 0x5369, idx: -20309 }, - { start: 0x536e, end: 0x5375, idx: -20313 }, - { start: 0x5377, end: 0x5378, idx: -20314 }, - { start: 0x537b, end: 0x537b, idx: -20316 }, - { start: 0x537f, end: 0x537f, idx: -20319 }, - { start: 0x5382, end: 0x5382, idx: -20321 }, - { start: 0x5384, end: 0x5384, idx: -20322 }, - { start: 0x5393, end: 0x5393, idx: -20336 }, - { start: 0x5396, end: 0x5396, idx: -20338 }, - { start: 0x5398, end: 0x5398, idx: -20339 }, - { start: 0x539a, end: 0x539a, idx: -20340 }, - { start: 0x539f, end: 0x53a0, idx: -20344 }, - { start: 0x53a5, end: 0x53a6, idx: -20348 }, - { start: 0x53a8, end: 0x53a9, idx: -20349 }, - { start: 0x53ad, end: 0x53ae, idx: -20352 }, - { start: 0x53b0, end: 0x53b0, idx: -20353 }, - { start: 0x53b2, end: 0x53b3, idx: -20354 }, - { start: 0x53b6, end: 0x53b6, idx: -20356 }, - { start: 0x53bb, end: 0x53bb, idx: -20360 }, - { start: 0x53c2, end: 0x53c3, idx: -20366 }, - { start: 0x53c8, end: 0x53ce, idx: -20370 }, - { start: 0x53d4, end: 0x53d4, idx: -20375 }, - { start: 0x53d6, end: 0x53d7, idx: -20376 }, - { start: 0x53d9, end: 0x53d9, idx: -20377 }, - { start: 0x53db, end: 0x53db, idx: -20378 }, - { start: 0x53dd, end: 0x53dd, idx: -20379 }, - { start: 0x53df, end: 0x53df, idx: -20380 }, - { start: 0x53e1, end: 0x53e5, idx: -20381 }, - { start: 0x53e8, end: 0x53f3, idx: -20383 }, - { start: 0x53f6, end: 0x53f8, idx: -20385 }, - { start: 0x53fa, end: 0x53fa, idx: -20386 }, - { start: 0x5401, end: 0x5401, idx: -20392 }, - { start: 0x5403, end: 0x5404, idx: -20393 }, - { start: 0x5408, end: 0x5411, idx: -20396 }, - { start: 0x541b, end: 0x541b, idx: -20405 }, - { start: 0x541d, end: 0x541d, idx: -20406 }, - { start: 0x541f, end: 0x5420, idx: -20407 }, - { start: 0x5426, end: 0x5426, idx: -20412 }, - { start: 0x5429, end: 0x5429, idx: -20414 }, - { start: 0x542b, end: 0x542e, idx: -20415 }, - { start: 0x5436, end: 0x5436, idx: -20422 }, - { start: 0x5438, end: 0x5439, idx: -20423 }, - { start: 0x543b, end: 0x543e, idx: -20424 }, - { start: 0x5440, end: 0x5440, idx: -20425 }, - { start: 0x5442, end: 0x5442, idx: -20426 }, - { start: 0x5446, end: 0x5446, idx: -20429 }, - { start: 0x5448, end: 0x544a, idx: -20430 }, - { start: 0x544e, end: 0x544e, idx: -20433 }, - { start: 0x5451, end: 0x5451, idx: -20435 }, - { start: 0x545f, end: 0x545f, idx: -20448 }, - { start: 0x5468, end: 0x5468, idx: -20456 }, - { start: 0x546a, end: 0x546a, idx: -20457 }, - { start: 0x5470, end: 0x5471, idx: -20462 }, - { start: 0x5473, end: 0x5473, idx: -20463 }, - { start: 0x5475, end: 0x5477, idx: -20464 }, - { start: 0x547b, end: 0x547d, idx: -20467 }, - { start: 0x5480, end: 0x5480, idx: -20469 }, - { start: 0x5484, end: 0x5484, idx: -20472 }, - { start: 0x5486, end: 0x5486, idx: -20473 }, - { start: 0x548a, end: 0x548c, idx: -20476 }, - { start: 0x548e, end: 0x5490, idx: -20477 }, - { start: 0x5492, end: 0x5492, idx: -20478 }, - { start: 0x549c, end: 0x549c, idx: -20487 }, - { start: 0x54a2, end: 0x54a2, idx: -20492 }, - { start: 0x54a4, end: 0x54a5, idx: -20493 }, - { start: 0x54a8, end: 0x54a9, idx: -20495 }, - { start: 0x54ab, end: 0x54ac, idx: -20496 }, - { start: 0x54af, end: 0x54af, idx: -20498 }, - { start: 0x54b2, end: 0x54b3, idx: -20500 }, - { start: 0x54b8, end: 0x54b8, idx: -20504 }, - { start: 0x54bc, end: 0x54be, idx: -20507 }, - { start: 0x54c0, end: 0x54c2, idx: -20508 }, - { start: 0x54c4, end: 0x54c4, idx: -20509 }, - { start: 0x54c7, end: 0x54c9, idx: -20511 }, - { start: 0x54d8, end: 0x54d8, idx: -20525 }, - { start: 0x54e1, end: 0x54e2, idx: -20533 }, - { start: 0x54e5, end: 0x54e6, idx: -20535 }, - { start: 0x54e8, end: 0x54e9, idx: -20536 }, - { start: 0x54ed, end: 0x54ee, idx: -20539 }, - { start: 0x54f2, end: 0x54f2, idx: -20542 }, - { start: 0x54fa, end: 0x54fa, idx: -20549 }, - { start: 0x54fd, end: 0x54fd, idx: -20551 }, - { start: 0x54ff, end: 0x54ff, idx: -20552 }, - { start: 0x5504, end: 0x5504, idx: -20556 }, - { start: 0x5506, end: 0x5507, idx: -20557 }, - { start: 0x550f, end: 0x5510, idx: -20564 }, - { start: 0x5514, end: 0x5514, idx: -20567 }, - { start: 0x5516, end: 0x5516, idx: -20568 }, - { start: 0x552e, end: 0x552f, idx: -20591 }, - { start: 0x5531, end: 0x5531, idx: -20592 }, - { start: 0x5533, end: 0x5533, idx: -20593 }, - { start: 0x5538, end: 0x5539, idx: -20597 }, - { start: 0x553e, end: 0x553e, idx: -20601 }, - { start: 0x5540, end: 0x5540, idx: -20602 }, - { start: 0x5544, end: 0x5546, idx: -20605 }, - { start: 0x554c, end: 0x554c, idx: -20610 }, - { start: 0x554f, end: 0x554f, idx: -20612 }, - { start: 0x5553, end: 0x5553, idx: -20615 }, - { start: 0x5556, end: 0x5557, idx: -20617 }, - { start: 0x555c, end: 0x555e, idx: -20621 }, - { start: 0x5563, end: 0x5563, idx: -20625 }, - { start: 0x557b, end: 0x557c, idx: -20648 }, - { start: 0x557e, end: 0x557e, idx: -20649 }, - { start: 0x5580, end: 0x5580, idx: -20650 }, - { start: 0x5583, end: 0x5584, idx: -20652 }, - { start: 0x5586, end: 0x5587, idx: -20653 }, - { start: 0x5589, end: 0x558b, idx: -20654 }, - { start: 0x5598, end: 0x559a, idx: -20666 }, - { start: 0x559c, end: 0x559f, idx: -20667 }, - { start: 0x55a7, end: 0x55ac, idx: -20674 }, - { start: 0x55ae, end: 0x55ae, idx: -20675 }, - { start: 0x55b0, end: 0x55b0, idx: -20676 }, - { start: 0x55b6, end: 0x55b6, idx: -20681 }, - { start: 0x55c4, end: 0x55c5, idx: -20694 }, - { start: 0x55c7, end: 0x55c7, idx: -20695 }, - { start: 0x55d4, end: 0x55d4, idx: -20707 }, - { start: 0x55da, end: 0x55da, idx: -20712 }, - { start: 0x55dc, end: 0x55dc, idx: -20713 }, - { start: 0x55df, end: 0x55df, idx: -20715 }, - { start: 0x55e3, end: 0x55e4, idx: -20718 }, - { start: 0x55f7, end: 0x55f7, idx: -20736 }, - { start: 0x55f9, end: 0x55f9, idx: -20737 }, - { start: 0x55fd, end: 0x55fe, idx: -20740 }, - { start: 0x5606, end: 0x5606, idx: -20747 }, - { start: 0x5609, end: 0x5609, idx: -20749 }, - { start: 0x5614, end: 0x5614, idx: -20759 }, - { start: 0x5616, end: 0x5618, idx: -20760 }, - { start: 0x561b, end: 0x561b, idx: -20762 }, - { start: 0x5629, end: 0x5629, idx: -20775 }, - { start: 0x562f, end: 0x562f, idx: -20780 }, - { start: 0x5631, end: 0x5632, idx: -20781 }, - { start: 0x5634, end: 0x5634, idx: -20782 }, - { start: 0x5636, end: 0x5636, idx: -20783 }, - { start: 0x5638, end: 0x5638, idx: -20784 }, - { start: 0x5642, end: 0x5642, idx: -20793 }, - { start: 0x564c, end: 0x564c, idx: -20802 }, - { start: 0x564e, end: 0x564e, idx: -20803 }, - { start: 0x5650, end: 0x5650, idx: -20804 }, - { start: 0x565b, end: 0x565b, idx: -20814 }, - { start: 0x5664, end: 0x5664, idx: -20822 }, - { start: 0x5668, end: 0x5668, idx: -20825 }, - { start: 0x566a, end: 0x566c, idx: -20826 }, - { start: 0x5674, end: 0x5674, idx: -20833 }, - { start: 0x5678, end: 0x5678, idx: -20836 }, - { start: 0x567a, end: 0x567a, idx: -20837 }, - { start: 0x5680, end: 0x5680, idx: -20842 }, - { start: 0x5686, end: 0x5687, idx: -20847 }, - { start: 0x568a, end: 0x568a, idx: -20849 }, - { start: 0x568f, end: 0x568f, idx: -20853 }, - { start: 0x5694, end: 0x5694, idx: -20857 }, - { start: 0x5699, end: 0x5699, idx: -20861 }, - { start: 0x56a0, end: 0x56a0, idx: -20867 }, - { start: 0x56a2, end: 0x56a2, idx: -20868 }, - { start: 0x56a5, end: 0x56a5, idx: -20870 }, - { start: 0x56ae, end: 0x56ae, idx: -20878 }, - { start: 0x56b4, end: 0x56b4, idx: -20883 }, - { start: 0x56b6, end: 0x56b6, idx: -20884 }, - { start: 0x56bc, end: 0x56bc, idx: -20889 }, - { start: 0x56c0, end: 0x56c3, idx: -20892 }, - { start: 0x56c8, end: 0x56c8, idx: -20896 }, - { start: 0x56ca, end: 0x56ca, idx: -20897 }, - { start: 0x56ce, end: 0x56ce, idx: -20900 }, - { start: 0x56d1, end: 0x56d1, idx: -20902 }, - { start: 0x56d3, end: 0x56d3, idx: -20903 }, - { start: 0x56d7, end: 0x56d8, idx: -20906 }, - { start: 0x56da, end: 0x56db, idx: -20907 }, - { start: 0x56de, end: 0x56de, idx: -20909 }, - { start: 0x56e0, end: 0x56e0, idx: -20910 }, - { start: 0x56e3, end: 0x56e3, idx: -20912 }, - { start: 0x56ee, end: 0x56ee, idx: -20922 }, - { start: 0x56f0, end: 0x56f0, idx: -20923 }, - { start: 0x56f2, end: 0x56f3, idx: -20924 }, - { start: 0x56f9, end: 0x56fa, idx: -20929 }, - { start: 0x56fd, end: 0x56fd, idx: -20931 }, - { start: 0x56ff, end: 0x5700, idx: -20932 }, - { start: 0x5703, end: 0x5704, idx: -20934 }, - { start: 0x5708, end: 0x5709, idx: -20937 }, - { start: 0x570b, end: 0x570b, idx: -20938 }, - { start: 0x570d, end: 0x570d, idx: -20939 }, - { start: 0x570f, end: 0x570f, idx: -20940 }, - { start: 0x5712, end: 0x5713, idx: -20942 }, - { start: 0x5716, end: 0x5716, idx: -20944 }, - { start: 0x5718, end: 0x5718, idx: -20945 }, - { start: 0x571c, end: 0x571c, idx: -20948 }, - { start: 0x571f, end: 0x571f, idx: -20950 }, - { start: 0x5726, end: 0x5728, idx: -20956 }, - { start: 0x572d, end: 0x572d, idx: -20960 }, - { start: 0x5730, end: 0x5730, idx: -20962 }, - { start: 0x5737, end: 0x5738, idx: -20968 }, - { start: 0x573b, end: 0x573b, idx: -20970 }, - { start: 0x5740, end: 0x5740, idx: -20974 }, - { start: 0x5742, end: 0x5742, idx: -20975 }, - { start: 0x5747, end: 0x5747, idx: -20979 }, - { start: 0x574a, end: 0x574a, idx: -20981 }, - { start: 0x574e, end: 0x5751, idx: -20984 }, - { start: 0x5759, end: 0x5759, idx: -20991 }, - { start: 0x5761, end: 0x5761, idx: -20998 }, - { start: 0x5764, end: 0x5766, idx: -21000 }, - { start: 0x5769, end: 0x576a, idx: -21002 }, - { start: 0x577f, end: 0x577f, idx: -21022 }, - { start: 0x5782, end: 0x5782, idx: -21024 }, - { start: 0x5788, end: 0x5789, idx: -21029 }, - { start: 0x578b, end: 0x578b, idx: -21030 }, - { start: 0x5793, end: 0x5793, idx: -21037 }, - { start: 0x57a0, end: 0x57a0, idx: -21049 }, - { start: 0x57a2, end: 0x57a4, idx: -21050 }, - { start: 0x57aa, end: 0x57aa, idx: -21055 }, - { start: 0x57ac, end: 0x57ac, idx: -21056 }, - { start: 0x57b0, end: 0x57b0, idx: -21059 }, - { start: 0x57b3, end: 0x57b3, idx: -21061 }, - { start: 0x57c0, end: 0x57c0, idx: -21073 }, - { start: 0x57c3, end: 0x57c3, idx: -21075 }, - { start: 0x57c6, end: 0x57c8, idx: -21077 }, - { start: 0x57cb, end: 0x57cb, idx: -21079 }, - { start: 0x57ce, end: 0x57ce, idx: -21081 }, - { start: 0x57d2, end: 0x57d4, idx: -21084 }, - { start: 0x57d6, end: 0x57d6, idx: -21085 }, - { start: 0x57dc, end: 0x57dc, idx: -21090 }, - { start: 0x57df, end: 0x57e0, idx: -21092 }, - { start: 0x57e3, end: 0x57e3, idx: -21094 }, - { start: 0x57f4, end: 0x57f4, idx: -21110 }, - { start: 0x57f7, end: 0x57f7, idx: -21112 }, - { start: 0x57f9, end: 0x57fa, idx: -21113 }, - { start: 0x57fc, end: 0x57fc, idx: -21114 }, - { start: 0x5800, end: 0x5800, idx: -21117 }, - { start: 0x5802, end: 0x5802, idx: -21118 }, - { start: 0x5805, end: 0x5806, idx: -21120 }, - { start: 0x580a, end: 0x580b, idx: -21123 }, - { start: 0x5815, end: 0x5815, idx: -21132 }, - { start: 0x5819, end: 0x5819, idx: -21135 }, - { start: 0x581d, end: 0x581d, idx: -21138 }, - { start: 0x5821, end: 0x5821, idx: -21141 }, - { start: 0x5824, end: 0x5824, idx: -21143 }, - { start: 0x582a, end: 0x582a, idx: -21148 }, - { start: 0x582f, end: 0x5831, idx: -21152 }, - { start: 0x5834, end: 0x5835, idx: -21154 }, - { start: 0x583a, end: 0x583a, idx: -21158 }, - { start: 0x583d, end: 0x583d, idx: -21160 }, - { start: 0x5840, end: 0x5841, idx: -21162 }, - { start: 0x584a, end: 0x584b, idx: -21170 }, - { start: 0x5851, end: 0x5852, idx: -21175 }, - { start: 0x5854, end: 0x5854, idx: -21176 }, - { start: 0x5857, end: 0x585a, idx: -21178 }, - { start: 0x585e, end: 0x585e, idx: -21181 }, - { start: 0x5861, end: 0x5862, idx: -21183 }, - { start: 0x5869, end: 0x5869, idx: -21189 }, - { start: 0x586b, end: 0x586b, idx: -21190 }, - { start: 0x5870, end: 0x5870, idx: -21194 }, - { start: 0x5872, end: 0x5872, idx: -21195 }, - { start: 0x5875, end: 0x5875, idx: -21197 }, - { start: 0x5879, end: 0x5879, idx: -21200 }, - { start: 0x587e, end: 0x587e, idx: -21204 }, - { start: 0x5883, end: 0x5883, idx: -21208 }, - { start: 0x5885, end: 0x5885, idx: -21209 }, - { start: 0x5893, end: 0x5893, idx: -21222 }, - { start: 0x5897, end: 0x5897, idx: -21225 }, - { start: 0x589c, end: 0x589c, idx: -21229 }, - { start: 0x589e, end: 0x589f, idx: -21230 }, - { start: 0x58a8, end: 0x58a8, idx: -21238 }, - { start: 0x58ab, end: 0x58ab, idx: -21240 }, - { start: 0x58ae, end: 0x58ae, idx: -21242 }, - { start: 0x58b2, end: 0x58b3, idx: -21245 }, - { start: 0x58b8, end: 0x58bb, idx: -21249 }, - { start: 0x58be, end: 0x58be, idx: -21251 }, - { start: 0x58c1, end: 0x58c1, idx: -21253 }, - { start: 0x58c5, end: 0x58c5, idx: -21256 }, - { start: 0x58c7, end: 0x58c7, idx: -21257 }, - { start: 0x58ca, end: 0x58ca, idx: -21259 }, - { start: 0x58cc, end: 0x58cc, idx: -21260 }, - { start: 0x58d1, end: 0x58d1, idx: -21264 }, - { start: 0x58d3, end: 0x58d3, idx: -21265 }, - { start: 0x58d5, end: 0x58d5, idx: -21266 }, - { start: 0x58d7, end: 0x58d9, idx: -21267 }, - { start: 0x58dc, end: 0x58dc, idx: -21269 }, - { start: 0x58de, end: 0x58df, idx: -21270 }, - { start: 0x58e4, end: 0x58e5, idx: -21274 }, - { start: 0x58eb, end: 0x58ec, idx: -21279 }, - { start: 0x58ee, end: 0x58f2, idx: -21280 }, - { start: 0x58f7, end: 0x58f7, idx: -21284 }, - { start: 0x58f9, end: 0x58fd, idx: -21285 }, - { start: 0x5902, end: 0x5902, idx: -21289 }, - { start: 0x5909, end: 0x590b, idx: -21295 }, - { start: 0x590f, end: 0x5910, idx: -21298 }, - { start: 0x5915, end: 0x5916, idx: -21302 }, - { start: 0x5918, end: 0x591c, idx: -21303 }, - { start: 0x5922, end: 0x5922, idx: -21308 }, - { start: 0x5925, end: 0x5925, idx: -21310 }, - { start: 0x5927, end: 0x5927, idx: -21311 }, - { start: 0x5929, end: 0x592e, idx: -21312 }, - { start: 0x5931, end: 0x5932, idx: -21314 }, - { start: 0x5937, end: 0x5938, idx: -21318 }, - { start: 0x593e, end: 0x593e, idx: -21323 }, - { start: 0x5944, end: 0x5944, idx: -21328 }, - { start: 0x5947, end: 0x5949, idx: -21330 }, - { start: 0x594e, end: 0x5951, idx: -21334 }, - { start: 0x5953, end: 0x5955, idx: -21335 }, - { start: 0x5957, end: 0x5958, idx: -21336 }, - { start: 0x595a, end: 0x595b, idx: -21337 }, - { start: 0x595d, end: 0x595d, idx: -21338 }, - { start: 0x5960, end: 0x5960, idx: -21340 }, - { start: 0x5962, end: 0x5963, idx: -21341 }, - { start: 0x5965, end: 0x5965, idx: -21342 }, - { start: 0x5967, end: 0x596a, idx: -21343 }, - { start: 0x596c, end: 0x596c, idx: -21344 }, - { start: 0x596e, end: 0x596e, idx: -21345 }, - { start: 0x5973, end: 0x5974, idx: -21349 }, - { start: 0x5978, end: 0x5978, idx: -21352 }, - { start: 0x597d, end: 0x597d, idx: -21356 }, - { start: 0x5981, end: 0x5984, idx: -21359 }, - { start: 0x598a, end: 0x598a, idx: -21364 }, - { start: 0x598d, end: 0x598d, idx: -21366 }, - { start: 0x5993, end: 0x5993, idx: -21371 }, - { start: 0x5996, end: 0x5996, idx: -21373 }, - { start: 0x5999, end: 0x5999, idx: -21375 }, - { start: 0x599b, end: 0x599b, idx: -21376 }, - { start: 0x599d, end: 0x599d, idx: -21377 }, - { start: 0x59a3, end: 0x59a5, idx: -21382 }, - { start: 0x59a8, end: 0x59a8, idx: -21384 }, - { start: 0x59ac, end: 0x59ac, idx: -21387 }, - { start: 0x59b2, end: 0x59b2, idx: -21392 }, - { start: 0x59b9, end: 0x59bb, idx: -21398 }, - { start: 0x59be, end: 0x59be, idx: -21400 }, - { start: 0x59c6, end: 0x59c6, idx: -21407 }, - { start: 0x59c9, end: 0x59c9, idx: -21409 }, - { start: 0x59cb, end: 0x59cb, idx: -21410 }, - { start: 0x59d0, end: 0x59d1, idx: -21414 }, - { start: 0x59d3, end: 0x59d4, idx: -21415 }, - { start: 0x59d9, end: 0x59da, idx: -21419 }, - { start: 0x59dc, end: 0x59dc, idx: -21420 }, - { start: 0x59e5, end: 0x59e6, idx: -21428 }, - { start: 0x59e8, end: 0x59e8, idx: -21429 }, - { start: 0x59ea, end: 0x59eb, idx: -21430 }, - { start: 0x59f6, end: 0x59f6, idx: -21440 }, - { start: 0x59fb, end: 0x59fb, idx: -21444 }, - { start: 0x59ff, end: 0x59ff, idx: -21447 }, - { start: 0x5a01, end: 0x5a01, idx: -21448 }, - { start: 0x5a03, end: 0x5a03, idx: -21449 }, - { start: 0x5a09, end: 0x5a09, idx: -21454 }, - { start: 0x5a11, end: 0x5a11, idx: -21461 }, - { start: 0x5a18, end: 0x5a18, idx: -21467 }, - { start: 0x5a1a, end: 0x5a1a, idx: -21468 }, - { start: 0x5a1c, end: 0x5a1c, idx: -21469 }, - { start: 0x5a1f, end: 0x5a20, idx: -21471 }, - { start: 0x5a25, end: 0x5a25, idx: -21475 }, - { start: 0x5a29, end: 0x5a29, idx: -21478 }, - { start: 0x5a2f, end: 0x5a2f, idx: -21483 }, - { start: 0x5a35, end: 0x5a36, idx: -21488 }, - { start: 0x5a3c, end: 0x5a3c, idx: -21493 }, - { start: 0x5a40, end: 0x5a41, idx: -21496 }, - { start: 0x5a46, end: 0x5a46, idx: -21500 }, - { start: 0x5a49, end: 0x5a49, idx: -21502 }, - { start: 0x5a5a, end: 0x5a5a, idx: -21518 }, - { start: 0x5a62, end: 0x5a62, idx: -21525 }, - { start: 0x5a66, end: 0x5a66, idx: -21528 }, - { start: 0x5a6a, end: 0x5a6a, idx: -21531 }, - { start: 0x5a6c, end: 0x5a6c, idx: -21532 }, - { start: 0x5a7f, end: 0x5a7f, idx: -21550 }, - { start: 0x5a92, end: 0x5a92, idx: -21568 }, - { start: 0x5a9a, end: 0x5a9b, idx: -21575 }, - { start: 0x5abc, end: 0x5abe, idx: -21607 }, - { start: 0x5ac1, end: 0x5ac2, idx: -21609 }, - { start: 0x5ac9, end: 0x5ac9, idx: -21615 }, - { start: 0x5acb, end: 0x5acc, idx: -21616 }, - { start: 0x5ad0, end: 0x5ad0, idx: -21619 }, - { start: 0x5ad6, end: 0x5ad7, idx: -21624 }, - { start: 0x5ae1, end: 0x5ae1, idx: -21633 }, - { start: 0x5ae3, end: 0x5ae3, idx: -21634 }, - { start: 0x5ae6, end: 0x5ae6, idx: -21636 }, - { start: 0x5ae9, end: 0x5ae9, idx: -21638 }, - { start: 0x5afa, end: 0x5afb, idx: -21654 }, - { start: 0x5b09, end: 0x5b09, idx: -21667 }, - { start: 0x5b0b, end: 0x5b0c, idx: -21668 }, - { start: 0x5b16, end: 0x5b16, idx: -21677 }, - { start: 0x5b22, end: 0x5b22, idx: -21688 }, - { start: 0x5b2a, end: 0x5b2a, idx: -21695 }, - { start: 0x5b2c, end: 0x5b2c, idx: -21696 }, - { start: 0x5b30, end: 0x5b30, idx: -21699 }, - { start: 0x5b32, end: 0x5b32, idx: -21700 }, - { start: 0x5b36, end: 0x5b36, idx: -21703 }, - { start: 0x5b3e, end: 0x5b3e, idx: -21710 }, - { start: 0x5b40, end: 0x5b40, idx: -21711 }, - { start: 0x5b43, end: 0x5b43, idx: -21713 }, - { start: 0x5b45, end: 0x5b45, idx: -21714 }, - { start: 0x5b50, end: 0x5b51, idx: -21724 }, - { start: 0x5b54, end: 0x5b58, idx: -21726 }, - { start: 0x5b5a, end: 0x5b5d, idx: -21727 }, - { start: 0x5b5f, end: 0x5b5f, idx: -21728 }, - { start: 0x5b63, end: 0x5b66, idx: -21731 }, - { start: 0x5b69, end: 0x5b69, idx: -21733 }, - { start: 0x5b6b, end: 0x5b6b, idx: -21734 }, - { start: 0x5b70, end: 0x5b71, idx: -21738 }, - { start: 0x5b73, end: 0x5b73, idx: -21739 }, - { start: 0x5b75, end: 0x5b75, idx: -21740 }, - { start: 0x5b78, end: 0x5b78, idx: -21742 }, - { start: 0x5b7a, end: 0x5b7a, idx: -21743 }, - { start: 0x5b80, end: 0x5b80, idx: -21748 }, - { start: 0x5b83, end: 0x5b83, idx: -21750 }, - { start: 0x5b85, end: 0x5b85, idx: -21751 }, - { start: 0x5b87, end: 0x5b89, idx: -21752 }, - { start: 0x5b8b, end: 0x5b8d, idx: -21753 }, - { start: 0x5b8f, end: 0x5b8f, idx: -21754 }, - { start: 0x5b95, end: 0x5b95, idx: -21759 }, - { start: 0x5b97, end: 0x5b9d, idx: -21760 }, - { start: 0x5b9f, end: 0x5b9f, idx: -21761 }, - { start: 0x5ba2, end: 0x5ba6, idx: -21763 }, - { start: 0x5bae, end: 0x5bae, idx: -21770 }, - { start: 0x5bb0, end: 0x5bb0, idx: -21771 }, - { start: 0x5bb3, end: 0x5bb6, idx: -21773 }, - { start: 0x5bb8, end: 0x5bb9, idx: -21774 }, - { start: 0x5bbf, end: 0x5bc0, idx: -21779 }, - { start: 0x5bc2, end: 0x5bc7, idx: -21780 }, - { start: 0x5bc9, end: 0x5bc9, idx: -21781 }, - { start: 0x5bcc, end: 0x5bcc, idx: -21783 }, - { start: 0x5bd0, end: 0x5bd0, idx: -21786 }, - { start: 0x5bd2, end: 0x5bd4, idx: -21787 }, - { start: 0x5bd8, end: 0x5bd8, idx: -21790 }, - { start: 0x5bdb, end: 0x5bdb, idx: -21792 }, - { start: 0x5bdd, end: 0x5bdf, idx: -21793 }, - { start: 0x5be1, end: 0x5be2, idx: -21794 }, - { start: 0x5be4, end: 0x5be9, idx: -21795 }, - { start: 0x5beb, end: 0x5bec, idx: -21796 }, - { start: 0x5bee, end: 0x5bee, idx: -21797 }, - { start: 0x5bf0, end: 0x5bf0, idx: -21798 }, - { start: 0x5bf3, end: 0x5bf3, idx: -21800 }, - { start: 0x5bf5, end: 0x5bf6, idx: -21801 }, - { start: 0x5bf8, end: 0x5bf8, idx: -21802 }, - { start: 0x5bfa, end: 0x5bfa, idx: -21803 }, - { start: 0x5bfe, end: 0x5bff, idx: -21806 }, - { start: 0x5c01, end: 0x5c02, idx: -21807 }, - { start: 0x5c04, end: 0x5c0b, idx: -21808 }, - { start: 0x5c0d, end: 0x5c0f, idx: -21809 }, - { start: 0x5c11, end: 0x5c11, idx: -21810 }, - { start: 0x5c13, end: 0x5c13, idx: -21811 }, - { start: 0x5c16, end: 0x5c16, idx: -21813 }, - { start: 0x5c1a, end: 0x5c1a, idx: -21816 }, - { start: 0x5c1e, end: 0x5c1e, idx: -21819 }, - { start: 0x5c20, end: 0x5c20, idx: -21820 }, - { start: 0x5c22, end: 0x5c22, idx: -21821 }, - { start: 0x5c24, end: 0x5c24, idx: -21822 }, - { start: 0x5c28, end: 0x5c28, idx: -21825 }, - { start: 0x5c2d, end: 0x5c2d, idx: -21829 }, - { start: 0x5c31, end: 0x5c31, idx: -21832 }, - { start: 0x5c38, end: 0x5c41, idx: -21838 }, - { start: 0x5c45, end: 0x5c46, idx: -21841 }, - { start: 0x5c48, end: 0x5c48, idx: -21842 }, - { start: 0x5c4a, end: 0x5c4b, idx: -21843 }, - { start: 0x5c4d, end: 0x5c51, idx: -21844 }, - { start: 0x5c53, end: 0x5c53, idx: -21845 }, - { start: 0x5c55, end: 0x5c55, idx: -21846 }, - { start: 0x5c5b, end: 0x5c5b, idx: -21851 }, - { start: 0x5c5e, end: 0x5c5e, idx: -21853 }, - { start: 0x5c60, end: 0x5c62, idx: -21854 }, - { start: 0x5c64, end: 0x5c65, idx: -21855 }, - { start: 0x5c6c, end: 0x5c6c, idx: -21861 }, - { start: 0x5c6e, end: 0x5c6f, idx: -21862 }, - { start: 0x5c71, end: 0x5c71, idx: -21863 }, - { start: 0x5c76, end: 0x5c76, idx: -21867 }, - { start: 0x5c79, end: 0x5c79, idx: -21869 }, - { start: 0x5c8c, end: 0x5c8c, idx: -21887 }, - { start: 0x5c90, end: 0x5c91, idx: -21890 }, - { start: 0x5c94, end: 0x5c94, idx: -21892 }, - { start: 0x5ca1, end: 0x5ca1, idx: -21904 }, - { start: 0x5ca6, end: 0x5ca6, idx: -21908 }, - { start: 0x5ca8, end: 0x5ca9, idx: -21909 }, - { start: 0x5cab, end: 0x5cac, idx: -21910 }, - { start: 0x5cb1, end: 0x5cb1, idx: -21914 }, - { start: 0x5cb3, end: 0x5cb3, idx: -21915 }, - { start: 0x5cb6, end: 0x5cb8, idx: -21917 }, - { start: 0x5cba, end: 0x5cbc, idx: -21918 }, - { start: 0x5cbe, end: 0x5cbe, idx: -21919 }, - { start: 0x5cc5, end: 0x5cc5, idx: -21925 }, - { start: 0x5cc7, end: 0x5cc7, idx: -21926 }, - { start: 0x5cd9, end: 0x5cd9, idx: -21943 }, - { start: 0x5ce0, end: 0x5ce1, idx: -21949 }, - { start: 0x5ce8, end: 0x5cea, idx: -21955 }, - { start: 0x5ced, end: 0x5ced, idx: -21957 }, - { start: 0x5cef, end: 0x5cf0, idx: -21958 }, - { start: 0x5cf5, end: 0x5cf6, idx: -21962 }, - { start: 0x5cfa, end: 0x5cfb, idx: -21965 }, - { start: 0x5cfd, end: 0x5cfd, idx: -21966 }, - { start: 0x5d07, end: 0x5d07, idx: -21975 }, - { start: 0x5d0b, end: 0x5d0b, idx: -21978 }, - { start: 0x5d0e, end: 0x5d0e, idx: -21980 }, - { start: 0x5d11, end: 0x5d11, idx: -21982 }, - { start: 0x5d14, end: 0x5d1b, idx: -21984 }, - { start: 0x5d1f, end: 0x5d1f, idx: -21987 }, - { start: 0x5d22, end: 0x5d22, idx: -21989 }, - { start: 0x5d27, end: 0x5d27, idx: -21993 }, - { start: 0x5d29, end: 0x5d29, idx: -21994 }, - { start: 0x5d42, end: 0x5d42, idx: -22018 }, - { start: 0x5d4b, end: 0x5d4c, idx: -22026 }, - { start: 0x5d4e, end: 0x5d4e, idx: -22027 }, - { start: 0x5d50, end: 0x5d50, idx: -22028 }, - { start: 0x5d52, end: 0x5d53, idx: -22029 }, - { start: 0x5d5c, end: 0x5d5c, idx: -22037 }, - { start: 0x5d69, end: 0x5d69, idx: -22049 }, - { start: 0x5d6c, end: 0x5d6d, idx: -22051 }, - { start: 0x5d6f, end: 0x5d6f, idx: -22052 }, - { start: 0x5d73, end: 0x5d73, idx: -22055 }, - { start: 0x5d76, end: 0x5d76, idx: -22057 }, - { start: 0x5d82, end: 0x5d82, idx: -22068 }, - { start: 0x5d84, end: 0x5d84, idx: -22069 }, - { start: 0x5d87, end: 0x5d87, idx: -22071 }, - { start: 0x5d8b, end: 0x5d8c, idx: -22074 }, - { start: 0x5d90, end: 0x5d90, idx: -22077 }, - { start: 0x5d9d, end: 0x5d9d, idx: -22089 }, - { start: 0x5da2, end: 0x5da2, idx: -22093 }, - { start: 0x5dac, end: 0x5dac, idx: -22102 }, - { start: 0x5dae, end: 0x5dae, idx: -22103 }, - { start: 0x5db7, end: 0x5dba, idx: -22111 }, - { start: 0x5dbc, end: 0x5dbd, idx: -22112 }, - { start: 0x5dc9, end: 0x5dc9, idx: -22123 }, - { start: 0x5dcc, end: 0x5dcd, idx: -22125 }, - { start: 0x5dd0, end: 0x5dd0, idx: -22127 }, - { start: 0x5dd2, end: 0x5dd3, idx: -22128 }, - { start: 0x5dd6, end: 0x5dd6, idx: -22130 }, - { start: 0x5ddb, end: 0x5ddb, idx: -22134 }, - { start: 0x5ddd, end: 0x5dde, idx: -22135 }, - { start: 0x5de1, end: 0x5de1, idx: -22137 }, - { start: 0x5de3, end: 0x5de3, idx: -22138 }, - { start: 0x5de5, end: 0x5de8, idx: -22139 }, - { start: 0x5deb, end: 0x5deb, idx: -22141 }, - { start: 0x5dee, end: 0x5dee, idx: -22143 }, - { start: 0x5df1, end: 0x5df5, idx: -22145 }, - { start: 0x5df7, end: 0x5df7, idx: -22146 }, - { start: 0x5dfb, end: 0x5dfb, idx: -22149 }, - { start: 0x5dfd, end: 0x5dfe, idx: -22150 }, - { start: 0x5e02, end: 0x5e03, idx: -22153 }, - { start: 0x5e06, end: 0x5e06, idx: -22155 }, - { start: 0x5e0b, end: 0x5e0c, idx: -22159 }, - { start: 0x5e11, end: 0x5e11, idx: -22163 }, - { start: 0x5e16, end: 0x5e16, idx: -22167 }, - { start: 0x5e19, end: 0x5e1b, idx: -22169 }, - { start: 0x5e1d, end: 0x5e1d, idx: -22170 }, - { start: 0x5e25, end: 0x5e25, idx: -22177 }, - { start: 0x5e2b, end: 0x5e2b, idx: -22182 }, - { start: 0x5e2d, end: 0x5e2d, idx: -22183 }, - { start: 0x5e2f, end: 0x5e30, idx: -22184 }, - { start: 0x5e33, end: 0x5e33, idx: -22186 }, - { start: 0x5e36, end: 0x5e38, idx: -22188 }, - { start: 0x5e3d, end: 0x5e3d, idx: -22192 }, - { start: 0x5e40, end: 0x5e40, idx: -22194 }, - { start: 0x5e43, end: 0x5e45, idx: -22196 }, - { start: 0x5e47, end: 0x5e47, idx: -22197 }, - { start: 0x5e4c, end: 0x5e4c, idx: -22201 }, - { start: 0x5e4e, end: 0x5e4e, idx: -22202 }, - { start: 0x5e54, end: 0x5e55, idx: -22207 }, - { start: 0x5e57, end: 0x5e57, idx: -22208 }, - { start: 0x5e5f, end: 0x5e5f, idx: -22215 }, - { start: 0x5e61, end: 0x5e64, idx: -22216 }, - { start: 0x5e72, end: 0x5e76, idx: -22229 }, - { start: 0x5e78, end: 0x5e7f, idx: -22230 }, - { start: 0x5e81, end: 0x5e81, idx: -22231 }, - { start: 0x5e83, end: 0x5e84, idx: -22232 }, - { start: 0x5e87, end: 0x5e87, idx: -22234 }, - { start: 0x5e8a, end: 0x5e8a, idx: -22236 }, - { start: 0x5e8f, end: 0x5e8f, idx: -22240 }, - { start: 0x5e95, end: 0x5e97, idx: -22245 }, - { start: 0x5e9a, end: 0x5e9a, idx: -22247 }, - { start: 0x5e9c, end: 0x5e9c, idx: -22248 }, - { start: 0x5ea0, end: 0x5ea0, idx: -22251 }, - { start: 0x5ea6, end: 0x5ea7, idx: -22256 }, - { start: 0x5eab, end: 0x5eab, idx: -22259 }, - { start: 0x5ead, end: 0x5ead, idx: -22260 }, - { start: 0x5eb5, end: 0x5eb8, idx: -22267 }, - { start: 0x5ec1, end: 0x5ec3, idx: -22275 }, - { start: 0x5ec8, end: 0x5eca, idx: -22279 }, - { start: 0x5ecf, end: 0x5ed0, idx: -22283 }, - { start: 0x5ed3, end: 0x5ed3, idx: -22285 }, - { start: 0x5ed6, end: 0x5ed6, idx: -22287 }, - { start: 0x5eda, end: 0x5edb, idx: -22290 }, - { start: 0x5edd, end: 0x5edd, idx: -22291 }, - { start: 0x5edf, end: 0x5ee3, idx: -22292 }, - { start: 0x5ee8, end: 0x5ee9, idx: -22296 }, - { start: 0x5eec, end: 0x5eec, idx: -22298 }, - { start: 0x5ef0, end: 0x5ef1, idx: -22301 }, - { start: 0x5ef3, end: 0x5ef4, idx: -22302 }, - { start: 0x5ef6, end: 0x5ef8, idx: -22303 }, - { start: 0x5efa, end: 0x5efc, idx: -22304 }, - { start: 0x5efe, end: 0x5eff, idx: -22305 }, - { start: 0x5f01, end: 0x5f01, idx: -22306 }, - { start: 0x5f03, end: 0x5f04, idx: -22307 }, - { start: 0x5f09, end: 0x5f0d, idx: -22311 }, - { start: 0x5f0f, end: 0x5f11, idx: -22312 }, - { start: 0x5f13, end: 0x5f18, idx: -22313 }, - { start: 0x5f1b, end: 0x5f1b, idx: -22315 }, - { start: 0x5f1f, end: 0x5f1f, idx: -22318 }, - { start: 0x5f21, end: 0x5f21, idx: -22319 }, - { start: 0x5f25, end: 0x5f27, idx: -22322 }, - { start: 0x5f29, end: 0x5f29, idx: -22323 }, - { start: 0x5f2d, end: 0x5f2d, idx: -22326 }, - { start: 0x5f2f, end: 0x5f2f, idx: -22327 }, - { start: 0x5f31, end: 0x5f31, idx: -22328 }, - { start: 0x5f34, end: 0x5f35, idx: -22330 }, - { start: 0x5f37, end: 0x5f38, idx: -22331 }, - { start: 0x5f3c, end: 0x5f3c, idx: -22334 }, - { start: 0x5f3e, end: 0x5f3e, idx: -22335 }, - { start: 0x5f41, end: 0x5f41, idx: -22337 }, - { start: 0x5f45, end: 0x5f45, idx: -22340 }, - { start: 0x5f48, end: 0x5f48, idx: -22342 }, - { start: 0x5f4a, end: 0x5f4a, idx: -22343 }, - { start: 0x5f4c, end: 0x5f4c, idx: -22344 }, - { start: 0x5f4e, end: 0x5f4e, idx: -22345 }, - { start: 0x5f51, end: 0x5f51, idx: -22347 }, - { start: 0x5f53, end: 0x5f53, idx: -22348 }, - { start: 0x5f56, end: 0x5f57, idx: -22350 }, - { start: 0x5f59, end: 0x5f59, idx: -22351 }, - { start: 0x5f5c, end: 0x5f5d, idx: -22353 }, - { start: 0x5f61, end: 0x5f62, idx: -22356 }, - { start: 0x5f66, end: 0x5f67, idx: -22359 }, - { start: 0x5f69, end: 0x5f6d, idx: -22360 }, - { start: 0x5f70, end: 0x5f71, idx: -22362 }, - { start: 0x5f73, end: 0x5f73, idx: -22363 }, - { start: 0x5f77, end: 0x5f77, idx: -22366 }, - { start: 0x5f79, end: 0x5f79, idx: -22367 }, - { start: 0x5f7c, end: 0x5f7c, idx: -22369 }, - { start: 0x5f7f, end: 0x5f85, idx: -22371 }, - { start: 0x5f87, end: 0x5f88, idx: -22372 }, - { start: 0x5f8a, end: 0x5f8c, idx: -22373 }, - { start: 0x5f90, end: 0x5f93, idx: -22376 }, - { start: 0x5f97, end: 0x5f99, idx: -22379 }, - { start: 0x5f9e, end: 0x5f9e, idx: -22383 }, - { start: 0x5fa0, end: 0x5fa1, idx: -22384 }, - { start: 0x5fa8, end: 0x5faa, idx: -22390 }, - { start: 0x5fad, end: 0x5fae, idx: -22392 }, - { start: 0x5fb3, end: 0x5fb4, idx: -22396 }, - { start: 0x5fb7, end: 0x5fb7, idx: -22398 }, - { start: 0x5fb9, end: 0x5fb9, idx: -22399 }, - { start: 0x5fbc, end: 0x5fbd, idx: -22401 }, - { start: 0x5fc3, end: 0x5fc3, idx: -22406 }, - { start: 0x5fc5, end: 0x5fc5, idx: -22407 }, - { start: 0x5fcc, end: 0x5fcd, idx: -22413 }, - { start: 0x5fd6, end: 0x5fd9, idx: -22421 }, - { start: 0x5fdc, end: 0x5fde, idx: -22423 }, - { start: 0x5fe0, end: 0x5fe0, idx: -22424 }, - { start: 0x5fe4, end: 0x5fe4, idx: -22427 }, - { start: 0x5feb, end: 0x5feb, idx: -22433 }, - { start: 0x5ff0, end: 0x5ff1, idx: -22437 }, - { start: 0x5ff5, end: 0x5ff5, idx: -22440 }, - { start: 0x5ff8, end: 0x5ff8, idx: -22442 }, - { start: 0x5ffb, end: 0x5ffb, idx: -22444 }, - { start: 0x5ffd, end: 0x5ffd, idx: -22445 }, - { start: 0x5fff, end: 0x5fff, idx: -22446 }, - { start: 0x600e, end: 0x6010, idx: -22460 }, - { start: 0x6012, end: 0x6012, idx: -22461 }, - { start: 0x6015, end: 0x6016, idx: -22463 }, - { start: 0x6019, end: 0x6019, idx: -22465 }, - { start: 0x601b, end: 0x601d, idx: -22466 }, - { start: 0x6020, end: 0x6021, idx: -22468 }, - { start: 0x6025, end: 0x602b, idx: -22471 }, - { start: 0x602f, end: 0x602f, idx: -22474 }, - { start: 0x6031, end: 0x6031, idx: -22475 }, - { start: 0x603a, end: 0x603a, idx: -22483 }, - { start: 0x6041, end: 0x6043, idx: -22489 }, - { start: 0x6046, end: 0x6046, idx: -22491 }, - { start: 0x604a, end: 0x604b, idx: -22494 }, - { start: 0x604d, end: 0x604d, idx: -22495 }, - { start: 0x6050, end: 0x6050, idx: -22497 }, - { start: 0x6052, end: 0x6052, idx: -22498 }, - { start: 0x6055, end: 0x6055, idx: -22500 }, - { start: 0x6059, end: 0x605a, idx: -22503 }, - { start: 0x605d, end: 0x605d, idx: -22505 }, - { start: 0x605f, end: 0x6060, idx: -22506 }, - { start: 0x6062, end: 0x6065, idx: -22507 }, - { start: 0x6068, end: 0x606d, idx: -22509 }, - { start: 0x606f, end: 0x6070, idx: -22510 }, - { start: 0x6075, end: 0x6075, idx: -22514 }, - { start: 0x6077, end: 0x6077, idx: -22515 }, - { start: 0x6081, end: 0x6081, idx: -22524 }, - { start: 0x6083, end: 0x6085, idx: -22525 }, - { start: 0x6089, end: 0x608d, idx: -22528 }, - { start: 0x6092, end: 0x6092, idx: -22532 }, - { start: 0x6094, end: 0x6094, idx: -22533 }, - { start: 0x6096, end: 0x6097, idx: -22534 }, - { start: 0x609a, end: 0x609b, idx: -22536 }, - { start: 0x609f, end: 0x60a0, idx: -22539 }, - { start: 0x60a3, end: 0x60a3, idx: -22541 }, - { start: 0x60a6, end: 0x60a7, idx: -22543 }, - { start: 0x60a9, end: 0x60aa, idx: -22544 }, - { start: 0x60b2, end: 0x60b6, idx: -22551 }, - { start: 0x60b8, end: 0x60b8, idx: -22552 }, - { start: 0x60bc, end: 0x60bd, idx: -22555 }, - { start: 0x60c5, end: 0x60c7, idx: -22562 }, - { start: 0x60d1, end: 0x60d1, idx: -22571 }, - { start: 0x60d3, end: 0x60d3, idx: -22572 }, - { start: 0x60d5, end: 0x60d5, idx: -22573 }, - { start: 0x60d8, end: 0x60d8, idx: -22575 }, - { start: 0x60da, end: 0x60da, idx: -22576 }, - { start: 0x60dc, end: 0x60dc, idx: -22577 }, - { start: 0x60de, end: 0x60e1, idx: -22578 }, - { start: 0x60e3, end: 0x60e3, idx: -22579 }, - { start: 0x60e7, end: 0x60e8, idx: -22582 }, - { start: 0x60f0, end: 0x60f4, idx: -22589 }, - { start: 0x60f6, end: 0x60f7, idx: -22590 }, - { start: 0x60f9, end: 0x60fb, idx: -22591 }, - { start: 0x6100, end: 0x6101, idx: -22595 }, - { start: 0x6103, end: 0x6103, idx: -22596 }, - { start: 0x6106, end: 0x6106, idx: -22598 }, - { start: 0x6108, end: 0x6109, idx: -22599 }, - { start: 0x610d, end: 0x610f, idx: -22602 }, - { start: 0x6111, end: 0x6111, idx: -22603 }, - { start: 0x6115, end: 0x6115, idx: -22606 }, - { start: 0x611a, end: 0x611b, idx: -22610 }, - { start: 0x611f, end: 0x6121, idx: -22613 }, - { start: 0x6127, end: 0x6128, idx: -22618 }, - { start: 0x612c, end: 0x612c, idx: -22621 }, - { start: 0x6130, end: 0x6130, idx: -22624 }, - { start: 0x6134, end: 0x6134, idx: -22627 }, - { start: 0x6137, end: 0x6137, idx: -22629 }, - { start: 0x613c, end: 0x613f, idx: -22633 }, - { start: 0x6142, end: 0x6142, idx: -22635 }, - { start: 0x6144, end: 0x6144, idx: -22636 }, - { start: 0x6147, end: 0x6148, idx: -22638 }, - { start: 0x614a, end: 0x614e, idx: -22639 }, - { start: 0x6153, end: 0x6153, idx: -22643 }, - { start: 0x6155, end: 0x6155, idx: -22644 }, - { start: 0x6158, end: 0x615a, idx: -22646 }, - { start: 0x615d, end: 0x615d, idx: -22648 }, - { start: 0x615f, end: 0x615f, idx: -22649 }, - { start: 0x6162, end: 0x6163, idx: -22651 }, - { start: 0x6165, end: 0x6165, idx: -22652 }, - { start: 0x6167, end: 0x6168, idx: -22653 }, - { start: 0x616b, end: 0x616b, idx: -22655 }, - { start: 0x616e, end: 0x6171, idx: -22657 }, - { start: 0x6173, end: 0x6177, idx: -22658 }, - { start: 0x617e, end: 0x617e, idx: -22664 }, - { start: 0x6182, end: 0x6182, idx: -22667 }, - { start: 0x6187, end: 0x6187, idx: -22671 }, - { start: 0x618a, end: 0x618a, idx: -22673 }, - { start: 0x618e, end: 0x618e, idx: -22676 }, - { start: 0x6190, end: 0x6191, idx: -22677 }, - { start: 0x6194, end: 0x6194, idx: -22679 }, - { start: 0x6196, end: 0x6196, idx: -22680 }, - { start: 0x6198, end: 0x619a, idx: -22681 }, - { start: 0x61a4, end: 0x61a4, idx: -22690 }, - { start: 0x61a7, end: 0x61a7, idx: -22692 }, - { start: 0x61a9, end: 0x61a9, idx: -22693 }, - { start: 0x61ab, end: 0x61ac, idx: -22694 }, - { start: 0x61ae, end: 0x61ae, idx: -22695 }, - { start: 0x61b2, end: 0x61b2, idx: -22698 }, - { start: 0x61b6, end: 0x61b6, idx: -22701 }, - { start: 0x61ba, end: 0x61ba, idx: -22704 }, - { start: 0x61be, end: 0x61be, idx: -22707 }, - { start: 0x61c3, end: 0x61c3, idx: -22711 }, - { start: 0x61c6, end: 0x61cd, idx: -22713 }, - { start: 0x61d0, end: 0x61d0, idx: -22715 }, - { start: 0x61e3, end: 0x61e3, idx: -22733 }, - { start: 0x61e6, end: 0x61e6, idx: -22735 }, - { start: 0x61f2, end: 0x61f2, idx: -22746 }, - { start: 0x61f4, end: 0x61f4, idx: -22747 }, - { start: 0x61f6, end: 0x61f8, idx: -22748 }, - { start: 0x61fa, end: 0x61fa, idx: -22749 }, - { start: 0x61fc, end: 0x6200, idx: -22750 }, - { start: 0x6208, end: 0x620a, idx: -22757 }, - { start: 0x620c, end: 0x620e, idx: -22758 }, - { start: 0x6210, end: 0x6214, idx: -22759 }, - { start: 0x6216, end: 0x6216, idx: -22760 }, - { start: 0x621a, end: 0x621b, idx: -22763 }, - { start: 0x621d, end: 0x621f, idx: -22764 }, - { start: 0x6221, end: 0x6221, idx: -22765 }, - { start: 0x6226, end: 0x6226, idx: -22769 }, - { start: 0x622a, end: 0x622a, idx: -22772 }, - { start: 0x622e, end: 0x6230, idx: -22775 }, - { start: 0x6232, end: 0x6234, idx: -22776 }, - { start: 0x6238, end: 0x6238, idx: -22779 }, - { start: 0x623b, end: 0x623b, idx: -22781 }, - { start: 0x623f, end: 0x6241, idx: -22784 }, - { start: 0x6247, end: 0x6249, idx: -22789 }, - { start: 0x624b, end: 0x624b, idx: -22790 }, - { start: 0x624d, end: 0x624e, idx: -22791 }, - { start: 0x6253, end: 0x6253, idx: -22795 }, - { start: 0x6255, end: 0x6255, idx: -22796 }, - { start: 0x6258, end: 0x6258, idx: -22798 }, - { start: 0x625b, end: 0x625b, idx: -22800 }, - { start: 0x625e, end: 0x625e, idx: -22802 }, - { start: 0x6260, end: 0x6260, idx: -22803 }, - { start: 0x6263, end: 0x6263, idx: -22805 }, - { start: 0x6268, end: 0x6268, idx: -22809 }, - { start: 0x626e, end: 0x626e, idx: -22814 }, - { start: 0x6271, end: 0x6271, idx: -22816 }, - { start: 0x6276, end: 0x6276, idx: -22820 }, - { start: 0x6279, end: 0x6279, idx: -22822 }, - { start: 0x627c, end: 0x627c, idx: -22824 }, - { start: 0x627e, end: 0x6280, idx: -22825 }, - { start: 0x6282, end: 0x6284, idx: -22826 }, - { start: 0x6289, end: 0x628a, idx: -22830 }, - { start: 0x6291, end: 0x6298, idx: -22836 }, - { start: 0x629b, end: 0x629c, idx: -22838 }, - { start: 0x629e, end: 0x629e, idx: -22839 }, - { start: 0x62a6, end: 0x62a6, idx: -22846 }, - { start: 0x62ab, end: 0x62ac, idx: -22850 }, - { start: 0x62b1, end: 0x62b1, idx: -22854 }, - { start: 0x62b5, end: 0x62b5, idx: -22857 }, - { start: 0x62b9, end: 0x62b9, idx: -22860 }, - { start: 0x62bb, end: 0x62bd, idx: -22861 }, - { start: 0x62c2, end: 0x62c2, idx: -22865 }, - { start: 0x62c5, end: 0x62ca, idx: -22867 }, - { start: 0x62cc, end: 0x62cd, idx: -22868 }, - { start: 0x62cf, end: 0x62d4, idx: -22869 }, - { start: 0x62d7, end: 0x62d9, idx: -22871 }, - { start: 0x62db, end: 0x62dd, idx: -22872 }, - { start: 0x62e0, end: 0x62e1, idx: -22874 }, - { start: 0x62ec, end: 0x62ef, idx: -22884 }, - { start: 0x62f1, end: 0x62f1, idx: -22885 }, - { start: 0x62f3, end: 0x62f3, idx: -22886 }, - { start: 0x62f5, end: 0x62f7, idx: -22887 }, - { start: 0x62fe, end: 0x62ff, idx: -22893 }, - { start: 0x6301, end: 0x6302, idx: -22894 }, - { start: 0x6307, end: 0x6309, idx: -22898 }, - { start: 0x630c, end: 0x630c, idx: -22900 }, - { start: 0x6311, end: 0x6311, idx: -22904 }, - { start: 0x6319, end: 0x6319, idx: -22911 }, - { start: 0x631f, end: 0x631f, idx: -22916 }, - { start: 0x6327, end: 0x6328, idx: -22923 }, - { start: 0x632b, end: 0x632b, idx: -22925 }, - { start: 0x632f, end: 0x632f, idx: -22928 }, - { start: 0x633a, end: 0x633a, idx: -22938 }, - { start: 0x633d, end: 0x633f, idx: -22940 }, - { start: 0x6349, end: 0x6349, idx: -22949 }, - { start: 0x634c, end: 0x634d, idx: -22951 }, - { start: 0x634f, end: 0x6350, idx: -22952 }, - { start: 0x6355, end: 0x6355, idx: -22956 }, - { start: 0x6357, end: 0x6357, idx: -22957 }, - { start: 0x635c, end: 0x635c, idx: -22961 }, - { start: 0x6367, end: 0x6369, idx: -22971 }, - { start: 0x636b, end: 0x636b, idx: -22972 }, - { start: 0x636e, end: 0x636e, idx: -22974 }, - { start: 0x6372, end: 0x6372, idx: -22977 }, - { start: 0x6376, end: 0x6377, idx: -22980 }, - { start: 0x637a, end: 0x637b, idx: -22982 }, - { start: 0x6380, end: 0x6380, idx: -22986 }, - { start: 0x6383, end: 0x6383, idx: -22988 }, - { start: 0x6388, end: 0x6389, idx: -22992 }, - { start: 0x638c, end: 0x638c, idx: -22994 }, - { start: 0x638e, end: 0x638f, idx: -22995 }, - { start: 0x6392, end: 0x6392, idx: -22997 }, - { start: 0x6396, end: 0x6396, idx: -23000 }, - { start: 0x6398, end: 0x6398, idx: -23001 }, - { start: 0x639b, end: 0x639b, idx: -23003 }, - { start: 0x639f, end: 0x63a3, idx: -23006 }, - { start: 0x63a5, end: 0x63a5, idx: -23007 }, - { start: 0x63a7, end: 0x63ac, idx: -23008 }, - { start: 0x63b2, end: 0x63b2, idx: -23013 }, - { start: 0x63b4, end: 0x63b5, idx: -23014 }, - { start: 0x63bb, end: 0x63bb, idx: -23019 }, - { start: 0x63be, end: 0x63be, idx: -23021 }, - { start: 0x63c0, end: 0x63c0, idx: -23022 }, - { start: 0x63c3, end: 0x63c4, idx: -23024 }, - { start: 0x63c6, end: 0x63c6, idx: -23025 }, - { start: 0x63c9, end: 0x63c9, idx: -23027 }, - { start: 0x63cf, end: 0x63d0, idx: -23032 }, - { start: 0x63d2, end: 0x63d2, idx: -23033 }, - { start: 0x63d6, end: 0x63d6, idx: -23036 }, - { start: 0x63da, end: 0x63db, idx: -23039 }, - { start: 0x63e1, end: 0x63e1, idx: -23044 }, - { start: 0x63e3, end: 0x63e3, idx: -23045 }, - { start: 0x63e9, end: 0x63e9, idx: -23050 }, - { start: 0x63ee, end: 0x63ee, idx: -23054 }, - { start: 0x63f4, end: 0x63f6, idx: -23059 }, - { start: 0x63fa, end: 0x63fa, idx: -23062 }, - { start: 0x6406, end: 0x6406, idx: -23073 }, - { start: 0x640d, end: 0x640d, idx: -23079 }, - { start: 0x640f, end: 0x640f, idx: -23080 }, - { start: 0x6413, end: 0x6414, idx: -23083 }, - { start: 0x6416, end: 0x6417, idx: -23084 }, - { start: 0x641c, end: 0x641c, idx: -23088 }, - { start: 0x6426, end: 0x6426, idx: -23097 }, - { start: 0x6428, end: 0x6428, idx: -23098 }, - { start: 0x642c, end: 0x642d, idx: -23101 }, - { start: 0x6434, end: 0x6434, idx: -23107 }, - { start: 0x6436, end: 0x6436, idx: -23108 }, - { start: 0x643a, end: 0x643a, idx: -23111 }, - { start: 0x643e, end: 0x643e, idx: -23114 }, - { start: 0x6442, end: 0x6442, idx: -23117 }, - { start: 0x644e, end: 0x644e, idx: -23128 }, - { start: 0x6451, end: 0x6451, idx: -23130 }, - { start: 0x6458, end: 0x6458, idx: -23136 }, - { start: 0x6460, end: 0x6460, idx: -23143 }, - { start: 0x6467, end: 0x6467, idx: -23149 }, - { start: 0x6469, end: 0x6469, idx: -23150 }, - { start: 0x646f, end: 0x646f, idx: -23155 }, - { start: 0x6476, end: 0x6476, idx: -23161 }, - { start: 0x6478, end: 0x6478, idx: -23162 }, - { start: 0x647a, end: 0x647a, idx: -23163 }, - { start: 0x6483, end: 0x6483, idx: -23171 }, - { start: 0x6488, end: 0x6488, idx: -23175 }, - { start: 0x6492, end: 0x6493, idx: -23184 }, - { start: 0x6495, end: 0x6495, idx: -23185 }, - { start: 0x649a, end: 0x649a, idx: -23189 }, - { start: 0x649d, end: 0x649e, idx: -23191 }, - { start: 0x64a4, end: 0x64a5, idx: -23196 }, - { start: 0x64a9, end: 0x64a9, idx: -23199 }, - { start: 0x64ab, end: 0x64ab, idx: -23200 }, - { start: 0x64ad, end: 0x64ae, idx: -23201 }, - { start: 0x64b0, end: 0x64b0, idx: -23202 }, - { start: 0x64b2, end: 0x64b2, idx: -23203 }, - { start: 0x64b9, end: 0x64b9, idx: -23209 }, - { start: 0x64bb, end: 0x64bc, idx: -23210 }, - { start: 0x64c1, end: 0x64c2, idx: -23214 }, - { start: 0x64c5, end: 0x64c5, idx: -23216 }, - { start: 0x64c7, end: 0x64c7, idx: -23217 }, - { start: 0x64cd, end: 0x64ce, idx: -23222 }, - { start: 0x64d2, end: 0x64d2, idx: -23225 }, - { start: 0x64d4, end: 0x64d4, idx: -23226 }, - { start: 0x64d8, end: 0x64d8, idx: -23229 }, - { start: 0x64da, end: 0x64da, idx: -23230 }, - { start: 0x64e0, end: 0x64e3, idx: -23235 }, - { start: 0x64e6, end: 0x64e7, idx: -23237 }, - { start: 0x64ec, end: 0x64ec, idx: -23241 }, - { start: 0x64ef, end: 0x64ef, idx: -23243 }, - { start: 0x64f1, end: 0x64f2, idx: -23244 }, - { start: 0x64f4, end: 0x64f4, idx: -23245 }, - { start: 0x64f6, end: 0x64f6, idx: -23246 }, - { start: 0x64fa, end: 0x64fa, idx: -23249 }, - { start: 0x64fd, end: 0x64fe, idx: -23251 }, - { start: 0x6500, end: 0x6500, idx: -23252 }, - { start: 0x6505, end: 0x6505, idx: -23256 }, - { start: 0x6518, end: 0x6518, idx: -23274 }, - { start: 0x651c, end: 0x651d, idx: -23277 }, - { start: 0x6522, end: 0x6524, idx: -23281 }, - { start: 0x652a, end: 0x652c, idx: -23286 }, - { start: 0x652f, end: 0x652f, idx: -23288 }, - { start: 0x6534, end: 0x6539, idx: -23292 }, - { start: 0x653b, end: 0x653b, idx: -23293 }, - { start: 0x653e, end: 0x653f, idx: -23295 }, - { start: 0x6545, end: 0x6545, idx: -23300 }, - { start: 0x6548, end: 0x6548, idx: -23302 }, - { start: 0x654d, end: 0x654f, idx: -23306 }, - { start: 0x6551, end: 0x6551, idx: -23307 }, - { start: 0x6555, end: 0x6559, idx: -23310 }, - { start: 0x655d, end: 0x655e, idx: -23313 }, - { start: 0x6562, end: 0x6563, idx: -23316 }, - { start: 0x6566, end: 0x6566, idx: -23318 }, - { start: 0x656c, end: 0x656c, idx: -23323 }, - { start: 0x6570, end: 0x6570, idx: -23326 }, - { start: 0x6572, end: 0x6572, idx: -23327 }, - { start: 0x6574, end: 0x6575, idx: -23328 }, - { start: 0x6577, end: 0x6578, idx: -23329 }, - { start: 0x6582, end: 0x6583, idx: -23338 }, - { start: 0x6587, end: 0x6589, idx: -23341 }, - { start: 0x658c, end: 0x658c, idx: -23343 }, - { start: 0x658e, end: 0x658e, idx: -23344 }, - { start: 0x6590, end: 0x6591, idx: -23345 }, - { start: 0x6597, end: 0x6597, idx: -23350 }, - { start: 0x6599, end: 0x6599, idx: -23351 }, - { start: 0x659b, end: 0x659c, idx: -23352 }, - { start: 0x659f, end: 0x659f, idx: -23354 }, - { start: 0x65a1, end: 0x65a1, idx: -23355 }, - { start: 0x65a4, end: 0x65a5, idx: -23357 }, - { start: 0x65a7, end: 0x65a7, idx: -23358 }, - { start: 0x65ab, end: 0x65ad, idx: -23361 }, - { start: 0x65af, end: 0x65b0, idx: -23362 }, - { start: 0x65b7, end: 0x65b7, idx: -23368 }, - { start: 0x65b9, end: 0x65b9, idx: -23369 }, - { start: 0x65bc, end: 0x65bd, idx: -23371 }, - { start: 0x65c1, end: 0x65c1, idx: -23374 }, - { start: 0x65c3, end: 0x65c6, idx: -23375 }, - { start: 0x65cb, end: 0x65cc, idx: -23379 }, - { start: 0x65cf, end: 0x65cf, idx: -23381 }, - { start: 0x65d2, end: 0x65d2, idx: -23383 }, - { start: 0x65d7, end: 0x65d7, idx: -23387 }, - { start: 0x65d9, end: 0x65d9, idx: -23388 }, - { start: 0x65db, end: 0x65db, idx: -23389 }, - { start: 0x65e0, end: 0x65e2, idx: -23393 }, - { start: 0x65e5, end: 0x65e9, idx: -23395 }, - { start: 0x65ec, end: 0x65ed, idx: -23397 }, - { start: 0x65f1, end: 0x65f1, idx: -23400 }, - { start: 0x65fa, end: 0x65fb, idx: -23408 }, - { start: 0x6600, end: 0x6600, idx: -23412 }, - { start: 0x6602, end: 0x6603, idx: -23413 }, - { start: 0x6606, end: 0x6607, idx: -23415 }, - { start: 0x6609, end: 0x660a, idx: -23416 }, - { start: 0x660c, end: 0x660c, idx: -23417 }, - { start: 0x660e, end: 0x660f, idx: -23418 }, - { start: 0x6613, end: 0x6615, idx: -23421 }, - { start: 0x661c, end: 0x661c, idx: -23427 }, - { start: 0x661e, end: 0x6620, idx: -23428 }, - { start: 0x6624, end: 0x6625, idx: -23431 }, - { start: 0x6627, end: 0x6628, idx: -23432 }, - { start: 0x662d, end: 0x662f, idx: -23436 }, - { start: 0x6631, end: 0x6631, idx: -23437 }, - { start: 0x6634, end: 0x6636, idx: -23439 }, - { start: 0x663b, end: 0x663c, idx: -23443 }, - { start: 0x663f, end: 0x663f, idx: -23445 }, - { start: 0x6641, end: 0x6644, idx: -23446 }, - { start: 0x6649, end: 0x6649, idx: -23450 }, - { start: 0x664b, end: 0x664b, idx: -23451 }, - { start: 0x664f, end: 0x664f, idx: -23454 }, - { start: 0x6652, end: 0x6652, idx: -23456 }, - { start: 0x6657, end: 0x6657, idx: -23460 }, - { start: 0x6659, end: 0x6659, idx: -23461 }, - { start: 0x665d, end: 0x665f, idx: -23464 }, - { start: 0x6662, end: 0x6662, idx: -23466 }, - { start: 0x6664, end: 0x6669, idx: -23467 }, - { start: 0x666e, end: 0x6670, idx: -23471 }, - { start: 0x6673, end: 0x6674, idx: -23473 }, - { start: 0x6676, end: 0x6676, idx: -23474 }, - { start: 0x667a, end: 0x667a, idx: -23477 }, - { start: 0x6681, end: 0x6681, idx: -23483 }, - { start: 0x6683, end: 0x6684, idx: -23484 }, - { start: 0x6687, end: 0x6689, idx: -23486 }, - { start: 0x668e, end: 0x668e, idx: -23490 }, - { start: 0x6691, end: 0x6691, idx: -23492 }, - { start: 0x6696, end: 0x6699, idx: -23496 }, - { start: 0x669d, end: 0x669d, idx: -23499 }, - { start: 0x66a0, end: 0x66a0, idx: -23501 }, - { start: 0x66a2, end: 0x66a2, idx: -23502 }, - { start: 0x66a6, end: 0x66a6, idx: -23505 }, - { start: 0x66ab, end: 0x66ab, idx: -23509 }, - { start: 0x66ae, end: 0x66ae, idx: -23511 }, - { start: 0x66b2, end: 0x66b2, idx: -23514 }, - { start: 0x66b4, end: 0x66b4, idx: -23515 }, - { start: 0x66b8, end: 0x66b9, idx: -23518 }, - { start: 0x66bc, end: 0x66bc, idx: -23520 }, - { start: 0x66be, end: 0x66bf, idx: -23521 }, - { start: 0x66c1, end: 0x66c1, idx: -23522 }, - { start: 0x66c4, end: 0x66c4, idx: -23524 }, - { start: 0x66c7, end: 0x66c7, idx: -23526 }, - { start: 0x66c9, end: 0x66c9, idx: -23527 }, - { start: 0x66d6, end: 0x66d6, idx: -23539 }, - { start: 0x66d9, end: 0x66da, idx: -23541 }, - { start: 0x66dc, end: 0x66dd, idx: -23542 }, - { start: 0x66e0, end: 0x66e0, idx: -23544 }, - { start: 0x66e6, end: 0x66e6, idx: -23549 }, - { start: 0x66e9, end: 0x66e9, idx: -23551 }, - { start: 0x66f0, end: 0x66f0, idx: -23557 }, - { start: 0x66f2, end: 0x66f5, idx: -23558 }, - { start: 0x66f7, end: 0x6700, idx: -23559 }, - { start: 0x6703, end: 0x6703, idx: -23561 }, - { start: 0x6708, end: 0x6709, idx: -23565 }, - { start: 0x670b, end: 0x670b, idx: -23566 }, - { start: 0x670d, end: 0x670f, idx: -23567 }, - { start: 0x6714, end: 0x6717, idx: -23571 }, - { start: 0x671b, end: 0x671b, idx: -23574 }, - { start: 0x671d, end: 0x671f, idx: -23575 }, - { start: 0x6726, end: 0x6728, idx: -23581 }, - { start: 0x672a, end: 0x672e, idx: -23582 }, - { start: 0x6731, end: 0x6731, idx: -23584 }, - { start: 0x6734, end: 0x6734, idx: -23586 }, - { start: 0x6736, end: 0x6738, idx: -23587 }, - { start: 0x673a, end: 0x673a, idx: -23588 }, - { start: 0x673d, end: 0x673d, idx: -23590 }, - { start: 0x673f, end: 0x673f, idx: -23591 }, - { start: 0x6741, end: 0x6741, idx: -23592 }, - { start: 0x6746, end: 0x6746, idx: -23596 }, - { start: 0x6749, end: 0x6749, idx: -23598 }, - { start: 0x674e, end: 0x6751, idx: -23602 }, - { start: 0x6753, end: 0x6753, idx: -23603 }, - { start: 0x6756, end: 0x6756, idx: -23605 }, - { start: 0x6759, end: 0x6759, idx: -23607 }, - { start: 0x675c, end: 0x675c, idx: -23609 }, - { start: 0x675e, end: 0x6766, idx: -23610 }, - { start: 0x676a, end: 0x676a, idx: -23613 }, - { start: 0x676d, end: 0x676d, idx: -23615 }, - { start: 0x676f, end: 0x6773, idx: -23616 }, - { start: 0x6775, end: 0x6775, idx: -23617 }, - { start: 0x6777, end: 0x6777, idx: -23618 }, - { start: 0x677c, end: 0x677c, idx: -23622 }, - { start: 0x677e, end: 0x677f, idx: -23623 }, - { start: 0x6785, end: 0x6785, idx: -23628 }, - { start: 0x6787, end: 0x6787, idx: -23629 }, - { start: 0x6789, end: 0x6789, idx: -23630 }, - { start: 0x678b, end: 0x678c, idx: -23631 }, - { start: 0x6790, end: 0x6790, idx: -23634 }, - { start: 0x6795, end: 0x6795, idx: -23638 }, - { start: 0x6797, end: 0x6797, idx: -23639 }, - { start: 0x679a, end: 0x679a, idx: -23641 }, - { start: 0x679c, end: 0x679d, idx: -23642 }, - { start: 0x67a0, end: 0x67a2, idx: -23644 }, - { start: 0x67a6, end: 0x67a6, idx: -23647 }, - { start: 0x67a9, end: 0x67a9, idx: -23649 }, - { start: 0x67af, end: 0x67af, idx: -23654 }, - { start: 0x67b3, end: 0x67b4, idx: -23657 }, - { start: 0x67b6, end: 0x67b9, idx: -23658 }, - { start: 0x67bb, end: 0x67bb, idx: -23659 }, - { start: 0x67c0, end: 0x67c1, idx: -23663 }, - { start: 0x67c4, end: 0x67c4, idx: -23665 }, - { start: 0x67c6, end: 0x67c6, idx: -23666 }, - { start: 0x67ca, end: 0x67ca, idx: -23669 }, - { start: 0x67ce, end: 0x67d1, idx: -23672 }, - { start: 0x67d3, end: 0x67d4, idx: -23673 }, - { start: 0x67d8, end: 0x67d8, idx: -23676 }, - { start: 0x67da, end: 0x67da, idx: -23677 }, - { start: 0x67dd, end: 0x67de, idx: -23679 }, - { start: 0x67e2, end: 0x67e2, idx: -23682 }, - { start: 0x67e4, end: 0x67e4, idx: -23683 }, - { start: 0x67e7, end: 0x67e7, idx: -23685 }, - { start: 0x67e9, end: 0x67e9, idx: -23686 }, - { start: 0x67ec, end: 0x67ec, idx: -23688 }, - { start: 0x67ee, end: 0x67ef, idx: -23689 }, - { start: 0x67f1, end: 0x67f1, idx: -23690 }, - { start: 0x67f3, end: 0x67f5, idx: -23691 }, - { start: 0x67fb, end: 0x67fb, idx: -23696 }, - { start: 0x67fe, end: 0x67ff, idx: -23698 }, - { start: 0x6801, end: 0x6805, idx: -23699 }, - { start: 0x6813, end: 0x6813, idx: -23712 }, - { start: 0x6816, end: 0x6817, idx: -23714 }, - { start: 0x681e, end: 0x681e, idx: -23720 }, - { start: 0x6821, end: 0x6822, idx: -23722 }, - { start: 0x6829, end: 0x682b, idx: -23728 }, - { start: 0x6832, end: 0x6832, idx: -23734 }, - { start: 0x6834, end: 0x6834, idx: -23735 }, - { start: 0x6838, end: 0x6839, idx: -23738 }, - { start: 0x683c, end: 0x683d, idx: -23740 }, - { start: 0x6840, end: 0x6844, idx: -23742 }, - { start: 0x6846, end: 0x6846, idx: -23743 }, - { start: 0x6848, end: 0x6848, idx: -23744 }, - { start: 0x684d, end: 0x684e, idx: -23748 }, - { start: 0x6850, end: 0x6854, idx: -23749 }, - { start: 0x6859, end: 0x6859, idx: -23753 }, - { start: 0x685c, end: 0x685d, idx: -23755 }, - { start: 0x685f, end: 0x685f, idx: -23756 }, - { start: 0x6863, end: 0x6863, idx: -23759 }, - { start: 0x6867, end: 0x6867, idx: -23762 }, - { start: 0x6874, end: 0x6874, idx: -23774 }, - { start: 0x6876, end: 0x6877, idx: -23775 }, - { start: 0x687e, end: 0x687f, idx: -23781 }, - { start: 0x6881, end: 0x6881, idx: -23782 }, - { start: 0x6883, end: 0x6883, idx: -23783 }, - { start: 0x6885, end: 0x6885, idx: -23784 }, - { start: 0x688d, end: 0x688f, idx: -23791 }, - { start: 0x6893, end: 0x6894, idx: -23794 }, - { start: 0x6897, end: 0x6897, idx: -23796 }, - { start: 0x689b, end: 0x689b, idx: -23799 }, - { start: 0x689d, end: 0x689d, idx: -23800 }, - { start: 0x689f, end: 0x68a0, idx: -23801 }, - { start: 0x68a2, end: 0x68a2, idx: -23802 }, - { start: 0x68a6, end: 0x68a8, idx: -23805 }, - { start: 0x68ad, end: 0x68ad, idx: -23809 }, - { start: 0x68af, end: 0x68b1, idx: -23810 }, - { start: 0x68b3, end: 0x68b3, idx: -23811 }, - { start: 0x68b5, end: 0x68b6, idx: -23812 }, - { start: 0x68b9, end: 0x68ba, idx: -23814 }, - { start: 0x68bc, end: 0x68bc, idx: -23815 }, - { start: 0x68c4, end: 0x68c4, idx: -23822 }, - { start: 0x68c6, end: 0x68c6, idx: -23823 }, - { start: 0x68c8, end: 0x68cb, idx: -23824 }, - { start: 0x68cd, end: 0x68cd, idx: -23825 }, - { start: 0x68cf, end: 0x68cf, idx: -23826 }, - { start: 0x68d2, end: 0x68d2, idx: -23828 }, - { start: 0x68d4, end: 0x68d5, idx: -23829 }, - { start: 0x68d7, end: 0x68d8, idx: -23830 }, - { start: 0x68da, end: 0x68da, idx: -23831 }, - { start: 0x68df, end: 0x68e1, idx: -23835 }, - { start: 0x68e3, end: 0x68e3, idx: -23836 }, - { start: 0x68e7, end: 0x68e7, idx: -23839 }, - { start: 0x68ee, end: 0x68ef, idx: -23845 }, - { start: 0x68f2, end: 0x68f2, idx: -23847 }, - { start: 0x68f9, end: 0x68fa, idx: -23853 }, - { start: 0x6900, end: 0x6901, idx: -23858 }, - { start: 0x6904, end: 0x6905, idx: -23860 }, - { start: 0x6908, end: 0x6908, idx: -23862 }, - { start: 0x690b, end: 0x690f, idx: -23864 }, - { start: 0x6912, end: 0x6912, idx: -23866 }, - { start: 0x6919, end: 0x691c, idx: -23872 }, - { start: 0x6921, end: 0x6923, idx: -23876 }, - { start: 0x6925, end: 0x6926, idx: -23877 }, - { start: 0x6928, end: 0x6928, idx: -23878 }, - { start: 0x692a, end: 0x692a, idx: -23879 }, - { start: 0x6930, end: 0x6930, idx: -23884 }, - { start: 0x6934, end: 0x6934, idx: -23887 }, - { start: 0x6936, end: 0x6936, idx: -23888 }, - { start: 0x6939, end: 0x6939, idx: -23890 }, - { start: 0x693d, end: 0x693d, idx: -23893 }, - { start: 0x693f, end: 0x693f, idx: -23894 }, - { start: 0x694a, end: 0x694a, idx: -23904 }, - { start: 0x6953, end: 0x6955, idx: -23912 }, - { start: 0x6959, end: 0x695a, idx: -23915 }, - { start: 0x695c, end: 0x695e, idx: -23916 }, - { start: 0x6960, end: 0x6962, idx: -23917 }, - { start: 0x6968, end: 0x6968, idx: -23922 }, - { start: 0x696a, end: 0x696b, idx: -23923 }, - { start: 0x696d, end: 0x696f, idx: -23924 }, - { start: 0x6973, end: 0x6975, idx: -23927 }, - { start: 0x6977, end: 0x6979, idx: -23928 }, - { start: 0x697c, end: 0x697e, idx: -23930 }, - { start: 0x6981, end: 0x6982, idx: -23932 }, - { start: 0x698a, end: 0x698a, idx: -23939 }, - { start: 0x698e, end: 0x698e, idx: -23942 }, - { start: 0x6991, end: 0x6991, idx: -23944 }, - { start: 0x6994, end: 0x6995, idx: -23946 }, - { start: 0x6998, end: 0x6998, idx: -23948 }, - { start: 0x699b, end: 0x699c, idx: -23950 }, - { start: 0x69a0, end: 0x69a0, idx: -23953 }, - { start: 0x69a7, end: 0x69a7, idx: -23959 }, - { start: 0x69ae, end: 0x69ae, idx: -23965 }, - { start: 0x69b1, end: 0x69b2, idx: -23967 }, - { start: 0x69b4, end: 0x69b4, idx: -23968 }, - { start: 0x69bb, end: 0x69bb, idx: -23974 }, - { start: 0x69be, end: 0x69bf, idx: -23976 }, - { start: 0x69c1, end: 0x69c1, idx: -23977 }, - { start: 0x69c3, end: 0x69c3, idx: -23978 }, - { start: 0x69c7, end: 0x69c7, idx: -23981 }, - { start: 0x69ca, end: 0x69ce, idx: -23983 }, - { start: 0x69d0, end: 0x69d0, idx: -23984 }, - { start: 0x69d3, end: 0x69d3, idx: -23986 }, - { start: 0x69d8, end: 0x69d9, idx: -23990 }, - { start: 0x69dd, end: 0x69de, idx: -23993 }, - { start: 0x69e2, end: 0x69e2, idx: -23996 }, - { start: 0x69e7, end: 0x69e8, idx: -24000 }, - { start: 0x69eb, end: 0x69eb, idx: -24002 }, - { start: 0x69ed, end: 0x69ed, idx: -24003 }, - { start: 0x69f2, end: 0x69f2, idx: -24007 }, - { start: 0x69f9, end: 0x69f9, idx: -24013 }, - { start: 0x69fb, end: 0x69fb, idx: -24014 }, - { start: 0x69fd, end: 0x69fd, idx: -24015 }, - { start: 0x69ff, end: 0x69ff, idx: -24016 }, - { start: 0x6a02, end: 0x6a02, idx: -24018 }, - { start: 0x6a05, end: 0x6a05, idx: -24020 }, - { start: 0x6a0a, end: 0x6a0c, idx: -24024 }, - { start: 0x6a12, end: 0x6a14, idx: -24029 }, - { start: 0x6a17, end: 0x6a17, idx: -24031 }, - { start: 0x6a19, end: 0x6a19, idx: -24032 }, - { start: 0x6a1b, end: 0x6a1b, idx: -24033 }, - { start: 0x6a1e, end: 0x6a1f, idx: -24035 }, - { start: 0x6a21, end: 0x6a23, idx: -24036 }, - { start: 0x6a29, end: 0x6a2b, idx: -24041 }, - { start: 0x6a2e, end: 0x6a2e, idx: -24043 }, - { start: 0x6a30, end: 0x6a30, idx: -24044 }, - { start: 0x6a35, end: 0x6a36, idx: -24048 }, - { start: 0x6a38, end: 0x6a3a, idx: -24049 }, - { start: 0x6a3d, end: 0x6a3d, idx: -24051 }, - { start: 0x6a44, end: 0x6a44, idx: -24057 }, - { start: 0x6a46, end: 0x6a48, idx: -24058 }, - { start: 0x6a4b, end: 0x6a4b, idx: -24060 }, - { start: 0x6a58, end: 0x6a59, idx: -24072 }, - { start: 0x6a5f, end: 0x6a5f, idx: -24077 }, - { start: 0x6a61, end: 0x6a62, idx: -24078 }, - { start: 0x6a66, end: 0x6a66, idx: -24081 }, - { start: 0x6a6b, end: 0x6a6b, idx: -24085 }, - { start: 0x6a72, end: 0x6a73, idx: -24091 }, - { start: 0x6a78, end: 0x6a78, idx: -24095 }, - { start: 0x6a7e, end: 0x6a80, idx: -24100 }, - { start: 0x6a84, end: 0x6a84, idx: -24103 }, - { start: 0x6a8d, end: 0x6a8e, idx: -24111 }, - { start: 0x6a90, end: 0x6a90, idx: -24112 }, - { start: 0x6a97, end: 0x6a97, idx: -24118 }, - { start: 0x6a9c, end: 0x6a9c, idx: -24122 }, - { start: 0x6aa0, end: 0x6aa0, idx: -24125 }, - { start: 0x6aa2, end: 0x6aa3, idx: -24126 }, - { start: 0x6aaa, end: 0x6aaa, idx: -24132 }, - { start: 0x6aac, end: 0x6aac, idx: -24133 }, - { start: 0x6aae, end: 0x6aae, idx: -24134 }, - { start: 0x6ab3, end: 0x6ab3, idx: -24138 }, - { start: 0x6ab8, end: 0x6ab8, idx: -24142 }, - { start: 0x6abb, end: 0x6abb, idx: -24144 }, - { start: 0x6ac1, end: 0x6ac3, idx: -24149 }, - { start: 0x6ad1, end: 0x6ad1, idx: -24162 }, - { start: 0x6ad3, end: 0x6ad3, idx: -24163 }, - { start: 0x6ada, end: 0x6adb, idx: -24169 }, - { start: 0x6ade, end: 0x6adf, idx: -24171 }, - { start: 0x6ae2, end: 0x6ae2, idx: -24173 }, - { start: 0x6ae4, end: 0x6ae4, idx: -24174 }, - { start: 0x6ae8, end: 0x6ae8, idx: -24177 }, - { start: 0x6aea, end: 0x6aea, idx: -24178 }, - { start: 0x6afa, end: 0x6afb, idx: -24193 }, - { start: 0x6b04, end: 0x6b05, idx: -24201 }, - { start: 0x6b0a, end: 0x6b0a, idx: -24205 }, - { start: 0x6b12, end: 0x6b12, idx: -24212 }, - { start: 0x6b16, end: 0x6b16, idx: -24215 }, - { start: 0x6b1d, end: 0x6b1d, idx: -24221 }, - { start: 0x6b1f, end: 0x6b21, idx: -24222 }, - { start: 0x6b23, end: 0x6b23, idx: -24223 }, - { start: 0x6b27, end: 0x6b27, idx: -24226 }, - { start: 0x6b32, end: 0x6b32, idx: -24236 }, - { start: 0x6b37, end: 0x6b3a, idx: -24240 }, - { start: 0x6b3d, end: 0x6b3e, idx: -24242 }, - { start: 0x6b43, end: 0x6b43, idx: -24246 }, - { start: 0x6b47, end: 0x6b47, idx: -24249 }, - { start: 0x6b49, end: 0x6b49, idx: -24250 }, - { start: 0x6b4c, end: 0x6b4c, idx: -24252 }, - { start: 0x6b4e, end: 0x6b4e, idx: -24253 }, - { start: 0x6b50, end: 0x6b50, idx: -24254 }, - { start: 0x6b53, end: 0x6b54, idx: -24256 }, - { start: 0x6b59, end: 0x6b59, idx: -24260 }, - { start: 0x6b5b, end: 0x6b5b, idx: -24261 }, - { start: 0x6b5f, end: 0x6b5f, idx: -24264 }, - { start: 0x6b61, end: 0x6b64, idx: -24265 }, - { start: 0x6b66, end: 0x6b66, idx: -24266 }, - { start: 0x6b69, end: 0x6b6a, idx: -24268 }, - { start: 0x6b6f, end: 0x6b6f, idx: -24272 }, - { start: 0x6b73, end: 0x6b74, idx: -24275 }, - { start: 0x6b78, end: 0x6b79, idx: -24278 }, - { start: 0x6b7b, end: 0x6b7b, idx: -24279 }, - { start: 0x6b7f, end: 0x6b80, idx: -24282 }, - { start: 0x6b83, end: 0x6b84, idx: -24284 }, - { start: 0x6b86, end: 0x6b86, idx: -24285 }, - { start: 0x6b89, end: 0x6b8b, idx: -24287 }, - { start: 0x6b8d, end: 0x6b8d, idx: -24288 }, - { start: 0x6b95, end: 0x6b96, idx: -24295 }, - { start: 0x6b98, end: 0x6b98, idx: -24296 }, - { start: 0x6b9e, end: 0x6b9e, idx: -24301 }, - { start: 0x6ba4, end: 0x6ba4, idx: -24306 }, - { start: 0x6baa, end: 0x6bab, idx: -24311 }, - { start: 0x6baf, end: 0x6baf, idx: -24314 }, - { start: 0x6bb1, end: 0x6bb5, idx: -24315 }, - { start: 0x6bb7, end: 0x6bb7, idx: -24316 }, - { start: 0x6bba, end: 0x6bbc, idx: -24318 }, - { start: 0x6bbf, end: 0x6bc0, idx: -24320 }, - { start: 0x6bc5, end: 0x6bc6, idx: -24324 }, - { start: 0x6bcb, end: 0x6bcb, idx: -24328 }, - { start: 0x6bcd, end: 0x6bce, idx: -24329 }, - { start: 0x6bd2, end: 0x6bd4, idx: -24332 }, - { start: 0x6bd6, end: 0x6bd6, idx: -24333 }, - { start: 0x6bd8, end: 0x6bd8, idx: -24334 }, - { start: 0x6bdb, end: 0x6bdb, idx: -24336 }, - { start: 0x6bdf, end: 0x6bdf, idx: -24339 }, - { start: 0x6beb, end: 0x6bec, idx: -24350 }, - { start: 0x6bef, end: 0x6bef, idx: -24352 }, - { start: 0x6bf3, end: 0x6bf3, idx: -24355 }, - { start: 0x6c08, end: 0x6c08, idx: -24375 }, - { start: 0x6c0f, end: 0x6c0f, idx: -24381 }, - { start: 0x6c11, end: 0x6c11, idx: -24382 }, - { start: 0x6c13, end: 0x6c14, idx: -24383 }, - { start: 0x6c17, end: 0x6c17, idx: -24385 }, - { start: 0x6c1b, end: 0x6c1b, idx: -24388 }, - { start: 0x6c23, end: 0x6c24, idx: -24395 }, - { start: 0x6c34, end: 0x6c34, idx: -24410 }, - { start: 0x6c37, end: 0x6c38, idx: -24412 }, - { start: 0x6c3e, end: 0x6c42, idx: -24417 }, - { start: 0x6c4e, end: 0x6c4e, idx: -24428 }, - { start: 0x6c50, end: 0x6c50, idx: -24429 }, - { start: 0x6c55, end: 0x6c55, idx: -24433 }, - { start: 0x6c57, end: 0x6c57, idx: -24434 }, - { start: 0x6c5a, end: 0x6c5a, idx: -24436 }, - { start: 0x6c5c, end: 0x6c60, idx: -24437 }, - { start: 0x6c62, end: 0x6c62, idx: -24438 }, - { start: 0x6c68, end: 0x6c68, idx: -24443 }, - { start: 0x6c6a, end: 0x6c6a, idx: -24444 }, - { start: 0x6c6f, end: 0x6c70, idx: -24448 }, - { start: 0x6c72, end: 0x6c73, idx: -24449 }, - { start: 0x6c7a, end: 0x6c7a, idx: -24455 }, - { start: 0x6c7d, end: 0x6c7e, idx: -24457 }, - { start: 0x6c81, end: 0x6c83, idx: -24459 }, - { start: 0x6c86, end: 0x6c86, idx: -24461 }, - { start: 0x6c88, end: 0x6c88, idx: -24462 }, - { start: 0x6c8c, end: 0x6c8d, idx: -24465 }, - { start: 0x6c90, end: 0x6c90, idx: -24467 }, - { start: 0x6c92, end: 0x6c93, idx: -24468 }, - { start: 0x6c96, end: 0x6c96, idx: -24470 }, - { start: 0x6c99, end: 0x6c9b, idx: -24472 }, - { start: 0x6ca1, end: 0x6ca2, idx: -24477 }, - { start: 0x6cab, end: 0x6cab, idx: -24485 }, - { start: 0x6cae, end: 0x6cae, idx: -24487 }, - { start: 0x6cb1, end: 0x6cb1, idx: -24489 }, - { start: 0x6cb3, end: 0x6cb3, idx: -24490 }, - { start: 0x6cb8, end: 0x6cbf, idx: -24494 }, - { start: 0x6cc1, end: 0x6cc1, idx: -24495 }, - { start: 0x6cc4, end: 0x6cc5, idx: -24497 }, - { start: 0x6cc9, end: 0x6cca, idx: -24500 }, - { start: 0x6ccc, end: 0x6ccc, idx: -24501 }, - { start: 0x6cd3, end: 0x6cd3, idx: -24507 }, - { start: 0x6cd5, end: 0x6cd5, idx: -24508 }, - { start: 0x6cd7, end: 0x6cd7, idx: -24509 }, - { start: 0x6cd9, end: 0x6cdb, idx: -24510 }, - { start: 0x6cdd, end: 0x6cdd, idx: -24511 }, - { start: 0x6ce1, end: 0x6ce3, idx: -24514 }, - { start: 0x6ce5, end: 0x6ce5, idx: -24515 }, - { start: 0x6ce8, end: 0x6ce8, idx: -24517 }, - { start: 0x6cea, end: 0x6cea, idx: -24518 }, - { start: 0x6cef, end: 0x6cf1, idx: -24522 }, - { start: 0x6cf3, end: 0x6cf3, idx: -24523 }, - { start: 0x6d04, end: 0x6d04, idx: -24539 }, - { start: 0x6d0b, end: 0x6d0c, idx: -24545 }, - { start: 0x6d12, end: 0x6d12, idx: -24550 }, - { start: 0x6d17, end: 0x6d17, idx: -24554 }, - { start: 0x6d19, end: 0x6d19, idx: -24555 }, - { start: 0x6d1b, end: 0x6d1b, idx: -24556 }, - { start: 0x6d1e, end: 0x6d1f, idx: -24558 }, - { start: 0x6d25, end: 0x6d25, idx: -24563 }, - { start: 0x6d29, end: 0x6d2b, idx: -24566 }, - { start: 0x6d32, end: 0x6d33, idx: -24572 }, - { start: 0x6d35, end: 0x6d36, idx: -24573 }, - { start: 0x6d38, end: 0x6d38, idx: -24574 }, - { start: 0x6d3b, end: 0x6d3b, idx: -24576 }, - { start: 0x6d3d, end: 0x6d3e, idx: -24577 }, - { start: 0x6d41, end: 0x6d41, idx: -24579 }, - { start: 0x6d44, end: 0x6d45, idx: -24581 }, - { start: 0x6d59, end: 0x6d5a, idx: -24600 }, - { start: 0x6d5c, end: 0x6d5c, idx: -24601 }, - { start: 0x6d63, end: 0x6d64, idx: -24607 }, - { start: 0x6d66, end: 0x6d66, idx: -24608 }, - { start: 0x6d69, end: 0x6d6a, idx: -24610 }, - { start: 0x6d6c, end: 0x6d6c, idx: -24611 }, - { start: 0x6d6e, end: 0x6d6f, idx: -24612 }, - { start: 0x6d74, end: 0x6d74, idx: -24616 }, - { start: 0x6d77, end: 0x6d79, idx: -24618 }, - { start: 0x6d85, end: 0x6d85, idx: -24629 }, - { start: 0x6d87, end: 0x6d88, idx: -24630 }, - { start: 0x6d8c, end: 0x6d8c, idx: -24633 }, - { start: 0x6d8e, end: 0x6d8e, idx: -24634 }, - { start: 0x6d93, end: 0x6d93, idx: -24638 }, - { start: 0x6d95, end: 0x6d96, idx: -24639 }, - { start: 0x6d99, end: 0x6d99, idx: -24641 }, - { start: 0x6d9b, end: 0x6d9c, idx: -24642 }, - { start: 0x6dac, end: 0x6dac, idx: -24657 }, - { start: 0x6daf, end: 0x6daf, idx: -24659 }, - { start: 0x6db2, end: 0x6db2, idx: -24661 }, - { start: 0x6db5, end: 0x6db5, idx: -24663 }, - { start: 0x6db8, end: 0x6db8, idx: -24665 }, - { start: 0x6dbc, end: 0x6dbc, idx: -24668 }, - { start: 0x6dc0, end: 0x6dc0, idx: -24671 }, - { start: 0x6dc5, end: 0x6dc7, idx: -24675 }, - { start: 0x6dcb, end: 0x6dcc, idx: -24678 }, - { start: 0x6dcf, end: 0x6dcf, idx: -24680 }, - { start: 0x6dd1, end: 0x6dd2, idx: -24681 }, - { start: 0x6dd5, end: 0x6dd5, idx: -24683 }, - { start: 0x6dd8, end: 0x6dd9, idx: -24685 }, - { start: 0x6dde, end: 0x6dde, idx: -24689 }, - { start: 0x6de1, end: 0x6de1, idx: -24691 }, - { start: 0x6de4, end: 0x6de4, idx: -24693 }, - { start: 0x6de6, end: 0x6de6, idx: -24694 }, - { start: 0x6de8, end: 0x6de8, idx: -24695 }, - { start: 0x6dea, end: 0x6dec, idx: -24696 }, - { start: 0x6dee, end: 0x6dee, idx: -24697 }, - { start: 0x6df1, end: 0x6df3, idx: -24699 }, - { start: 0x6df5, end: 0x6df5, idx: -24700 }, - { start: 0x6df7, end: 0x6dfc, idx: -24701 }, - { start: 0x6e05, end: 0x6e05, idx: -24709 }, - { start: 0x6e07, end: 0x6e0b, idx: -24710 }, - { start: 0x6e13, end: 0x6e13, idx: -24717 }, - { start: 0x6e15, end: 0x6e15, idx: -24718 }, - { start: 0x6e19, end: 0x6e1b, idx: -24721 }, - { start: 0x6e1d, end: 0x6e1d, idx: -24722 }, - { start: 0x6e1f, end: 0x6e21, idx: -24723 }, - { start: 0x6e23, end: 0x6e27, idx: -24724 }, - { start: 0x6e29, end: 0x6e29, idx: -24725 }, - { start: 0x6e2b, end: 0x6e2f, idx: -24726 }, - { start: 0x6e38, end: 0x6e3a, idx: -24734 }, - { start: 0x6e3c, end: 0x6e3c, idx: -24735 }, - { start: 0x6e3e, end: 0x6e3e, idx: -24736 }, - { start: 0x6e43, end: 0x6e43, idx: -24740 }, - { start: 0x6e4a, end: 0x6e4a, idx: -24746 }, - { start: 0x6e4d, end: 0x6e4e, idx: -24748 }, - { start: 0x6e56, end: 0x6e56, idx: -24755 }, - { start: 0x6e58, end: 0x6e58, idx: -24756 }, - { start: 0x6e5b, end: 0x6e5c, idx: -24758 }, - { start: 0x6e5f, end: 0x6e5f, idx: -24760 }, - { start: 0x6e67, end: 0x6e67, idx: -24767 }, - { start: 0x6e6b, end: 0x6e6b, idx: -24770 }, - { start: 0x6e6e, end: 0x6e6f, idx: -24772 }, - { start: 0x6e72, end: 0x6e72, idx: -24774 }, - { start: 0x6e76, end: 0x6e76, idx: -24777 }, - { start: 0x6e7e, end: 0x6e80, idx: -24784 }, - { start: 0x6e82, end: 0x6e82, idx: -24785 }, - { start: 0x6e8c, end: 0x6e8c, idx: -24794 }, - { start: 0x6e8f, end: 0x6e90, idx: -24796 }, - { start: 0x6e96, end: 0x6e96, idx: -24801 }, - { start: 0x6e98, end: 0x6e98, idx: -24802 }, - { start: 0x6e9c, end: 0x6e9d, idx: -24805 }, - { start: 0x6e9f, end: 0x6e9f, idx: -24806 }, - { start: 0x6ea2, end: 0x6ea2, idx: -24808 }, - { start: 0x6ea5, end: 0x6ea5, idx: -24810 }, - { start: 0x6eaa, end: 0x6eaa, idx: -24814 }, - { start: 0x6eaf, end: 0x6eaf, idx: -24818 }, - { start: 0x6eb2, end: 0x6eb2, idx: -24820 }, - { start: 0x6eb6, end: 0x6eb7, idx: -24823 }, - { start: 0x6eba, end: 0x6eba, idx: -24825 }, - { start: 0x6ebd, end: 0x6ebd, idx: -24827 }, - { start: 0x6ebf, end: 0x6ebf, idx: -24828 }, - { start: 0x6ec2, end: 0x6ec2, idx: -24830 }, - { start: 0x6ec4, end: 0x6ec5, idx: -24831 }, - { start: 0x6ec9, end: 0x6ec9, idx: -24834 }, - { start: 0x6ecb, end: 0x6ecc, idx: -24835 }, - { start: 0x6ed1, end: 0x6ed1, idx: -24839 }, - { start: 0x6ed3, end: 0x6ed5, idx: -24840 }, - { start: 0x6edd, end: 0x6ede, idx: -24847 }, - { start: 0x6eec, end: 0x6eec, idx: -24860 }, - { start: 0x6eef, end: 0x6eef, idx: -24862 }, - { start: 0x6ef2, end: 0x6ef2, idx: -24864 }, - { start: 0x6ef4, end: 0x6ef4, idx: -24865 }, - { start: 0x6ef7, end: 0x6ef8, idx: -24867 }, - { start: 0x6efe, end: 0x6eff, idx: -24872 }, - { start: 0x6f01, end: 0x6f02, idx: -24873 }, - { start: 0x6f06, end: 0x6f06, idx: -24876 }, - { start: 0x6f09, end: 0x6f09, idx: -24878 }, - { start: 0x6f0f, end: 0x6f0f, idx: -24883 }, - { start: 0x6f11, end: 0x6f11, idx: -24884 }, - { start: 0x6f13, end: 0x6f15, idx: -24885 }, - { start: 0x6f20, end: 0x6f20, idx: -24895 }, - { start: 0x6f22, end: 0x6f23, idx: -24896 }, - { start: 0x6f2b, end: 0x6f2c, idx: -24903 }, - { start: 0x6f31, end: 0x6f32, idx: -24907 }, - { start: 0x6f38, end: 0x6f38, idx: -24912 }, - { start: 0x6f3e, end: 0x6f3f, idx: -24917 }, - { start: 0x6f41, end: 0x6f41, idx: -24918 }, - { start: 0x6f45, end: 0x6f45, idx: -24921 }, - { start: 0x6f51, end: 0x6f51, idx: -24932 }, - { start: 0x6f54, end: 0x6f54, idx: -24934 }, - { start: 0x6f58, end: 0x6f58, idx: -24937 }, - { start: 0x6f5b, end: 0x6f5c, idx: -24939 }, - { start: 0x6f5f, end: 0x6f5f, idx: -24941 }, - { start: 0x6f64, end: 0x6f64, idx: -24945 }, - { start: 0x6f66, end: 0x6f66, idx: -24946 }, - { start: 0x6f6d, end: 0x6f70, idx: -24952 }, - { start: 0x6f74, end: 0x6f74, idx: -24955 }, - { start: 0x6f78, end: 0x6f78, idx: -24958 }, - { start: 0x6f7a, end: 0x6f7a, idx: -24959 }, - { start: 0x6f7c, end: 0x6f7c, idx: -24960 }, - { start: 0x6f80, end: 0x6f82, idx: -24963 }, - { start: 0x6f84, end: 0x6f84, idx: -24964 }, - { start: 0x6f86, end: 0x6f86, idx: -24965 }, - { start: 0x6f88, end: 0x6f88, idx: -24966 }, - { start: 0x6f8e, end: 0x6f8e, idx: -24971 }, - { start: 0x6f91, end: 0x6f91, idx: -24973 }, - { start: 0x6f97, end: 0x6f97, idx: -24978 }, - { start: 0x6fa1, end: 0x6fa1, idx: -24987 }, - { start: 0x6fa3, end: 0x6fa4, idx: -24988 }, - { start: 0x6faa, end: 0x6faa, idx: -24993 }, - { start: 0x6fb1, end: 0x6fb1, idx: -24999 }, - { start: 0x6fb3, end: 0x6fb3, idx: -25000 }, - { start: 0x6fb5, end: 0x6fb5, idx: -25001 }, - { start: 0x6fb9, end: 0x6fb9, idx: -25004 }, - { start: 0x6fc0, end: 0x6fc3, idx: -25010 }, - { start: 0x6fc6, end: 0x6fc6, idx: -25012 }, - { start: 0x6fd4, end: 0x6fd5, idx: -25025 }, - { start: 0x6fd8, end: 0x6fd8, idx: -25027 }, - { start: 0x6fdb, end: 0x6fdb, idx: -25029 }, - { start: 0x6fdf, end: 0x6fe1, idx: -25032 }, - { start: 0x6fe4, end: 0x6fe4, idx: -25034 }, - { start: 0x6feb, end: 0x6fec, idx: -25040 }, - { start: 0x6fee, end: 0x6fef, idx: -25041 }, - { start: 0x6ff1, end: 0x6ff1, idx: -25042 }, - { start: 0x6ff3, end: 0x6ff3, idx: -25043 }, - { start: 0x6ff5, end: 0x6ff6, idx: -25044 }, - { start: 0x6ffa, end: 0x6ffa, idx: -25047 }, - { start: 0x6ffe, end: 0x6ffe, idx: -25050 }, - { start: 0x7001, end: 0x7001, idx: -25052 }, - { start: 0x7005, end: 0x7007, idx: -25055 }, - { start: 0x7009, end: 0x7009, idx: -25056 }, - { start: 0x700b, end: 0x700b, idx: -25057 }, - { start: 0x700f, end: 0x700f, idx: -25060 }, - { start: 0x7011, end: 0x7011, idx: -25061 }, - { start: 0x7015, end: 0x7015, idx: -25064 }, - { start: 0x7018, end: 0x7018, idx: -25066 }, - { start: 0x701a, end: 0x701b, idx: -25067 }, - { start: 0x701d, end: 0x701f, idx: -25068 }, - { start: 0x7026, end: 0x7028, idx: -25074 }, - { start: 0x702c, end: 0x702c, idx: -25077 }, - { start: 0x7030, end: 0x7030, idx: -25080 }, - { start: 0x7032, end: 0x7032, idx: -25081 }, - { start: 0x703e, end: 0x703e, idx: -25092 }, - { start: 0x704c, end: 0x704c, idx: -25105 }, - { start: 0x7051, end: 0x7051, idx: -25109 }, - { start: 0x7058, end: 0x7058, idx: -25115 }, - { start: 0x7063, end: 0x7063, idx: -25125 }, - { start: 0x706b, end: 0x706b, idx: -25132 }, - { start: 0x706f, end: 0x7070, idx: -25135 }, - { start: 0x7078, end: 0x7078, idx: -25142 }, - { start: 0x707c, end: 0x707d, idx: -25145 }, - { start: 0x7085, end: 0x7085, idx: -25152 }, - { start: 0x7089, end: 0x708a, idx: -25155 }, - { start: 0x708e, end: 0x708e, idx: -25158 }, - { start: 0x7092, end: 0x7092, idx: -25161 }, - { start: 0x7099, end: 0x7099, idx: -25167 }, - { start: 0x70ab, end: 0x70af, idx: -25184 }, - { start: 0x70b3, end: 0x70b3, idx: -25187 }, - { start: 0x70b8, end: 0x70bb, idx: -25191 }, - { start: 0x70c8, end: 0x70c8, idx: -25203 }, - { start: 0x70cb, end: 0x70cb, idx: -25205 }, - { start: 0x70cf, end: 0x70cf, idx: -25208 }, - { start: 0x70d9, end: 0x70d9, idx: -25217 }, - { start: 0x70dd, end: 0x70dd, idx: -25220 }, - { start: 0x70df, end: 0x70df, idx: -25221 }, - { start: 0x70f1, end: 0x70f1, idx: -25238 }, - { start: 0x70f9, end: 0x70f9, idx: -25245 }, - { start: 0x70fd, end: 0x70fd, idx: -25248 }, - { start: 0x7104, end: 0x7104, idx: -25254 }, - { start: 0x7109, end: 0x7109, idx: -25258 }, - { start: 0x710f, end: 0x710f, idx: -25263 }, - { start: 0x7114, end: 0x7114, idx: -25267 }, - { start: 0x7119, end: 0x711a, idx: -25271 }, - { start: 0x711c, end: 0x711c, idx: -25272 }, - { start: 0x7121, end: 0x7121, idx: -25276 }, - { start: 0x7126, end: 0x7126, idx: -25280 }, - { start: 0x7130, end: 0x7130, idx: -25289 }, - { start: 0x7136, end: 0x7136, idx: -25294 }, - { start: 0x713c, end: 0x713c, idx: -25299 }, - { start: 0x7146, end: 0x7147, idx: -25308 }, - { start: 0x7149, end: 0x7149, idx: -25309 }, - { start: 0x714c, end: 0x714c, idx: -25311 }, - { start: 0x714e, end: 0x714e, idx: -25312 }, - { start: 0x7155, end: 0x7156, idx: -25318 }, - { start: 0x7159, end: 0x7159, idx: -25320 }, - { start: 0x715c, end: 0x715c, idx: -25322 }, - { start: 0x7162, end: 0x7162, idx: -25327 }, - { start: 0x7164, end: 0x7167, idx: -25328 }, - { start: 0x7169, end: 0x7169, idx: -25329 }, - { start: 0x716c, end: 0x716c, idx: -25331 }, - { start: 0x716e, end: 0x716e, idx: -25332 }, - { start: 0x717d, end: 0x717d, idx: -25346 }, - { start: 0x7184, end: 0x7184, idx: -25352 }, - { start: 0x7188, end: 0x7188, idx: -25355 }, - { start: 0x718a, end: 0x718a, idx: -25356 }, - { start: 0x718f, end: 0x718f, idx: -25360 }, - { start: 0x7194, end: 0x7195, idx: -25364 }, - { start: 0x7199, end: 0x7199, idx: -25367 }, - { start: 0x719f, end: 0x719f, idx: -25372 }, - { start: 0x71a8, end: 0x71a8, idx: -25380 }, - { start: 0x71ac, end: 0x71ac, idx: -25383 }, - { start: 0x71b1, end: 0x71b1, idx: -25387 }, - { start: 0x71b9, end: 0x71b9, idx: -25394 }, - { start: 0x71be, end: 0x71be, idx: -25398 }, - { start: 0x71c1, end: 0x71c1, idx: -25400 }, - { start: 0x71c3, end: 0x71c3, idx: -25401 }, - { start: 0x71c8, end: 0x71c9, idx: -25405 }, - { start: 0x71ce, end: 0x71ce, idx: -25409 }, - { start: 0x71d0, end: 0x71d0, idx: -25410 }, - { start: 0x71d2, end: 0x71d2, idx: -25411 }, - { start: 0x71d4, end: 0x71d5, idx: -25412 }, - { start: 0x71d7, end: 0x71d7, idx: -25413 }, - { start: 0x71df, end: 0x71e0, idx: -25420 }, - { start: 0x71e5, end: 0x71e7, idx: -25424 }, - { start: 0x71ec, end: 0x71ee, idx: -25428 }, - { start: 0x71f5, end: 0x71f5, idx: -25434 }, - { start: 0x71f9, end: 0x71f9, idx: -25437 }, - { start: 0x71fb, end: 0x71fc, idx: -25438 }, - { start: 0x71fe, end: 0x71ff, idx: -25439 }, - { start: 0x7206, end: 0x7206, idx: -25445 }, - { start: 0x720d, end: 0x720d, idx: -25451 }, - { start: 0x7210, end: 0x7210, idx: -25453 }, - { start: 0x721b, end: 0x721b, idx: -25463 }, - { start: 0x7228, end: 0x7228, idx: -25475 }, - { start: 0x722a, end: 0x722a, idx: -25476 }, - { start: 0x722c, end: 0x722d, idx: -25477 }, - { start: 0x7230, end: 0x7230, idx: -25479 }, - { start: 0x7232, end: 0x7232, idx: -25480 }, - { start: 0x7235, end: 0x7236, idx: -25482 }, - { start: 0x723a, end: 0x7240, idx: -25485 }, - { start: 0x7246, end: 0x7248, idx: -25490 }, - { start: 0x724b, end: 0x724c, idx: -25492 }, - { start: 0x7252, end: 0x7252, idx: -25497 }, - { start: 0x7258, end: 0x7259, idx: -25502 }, - { start: 0x725b, end: 0x725b, idx: -25503 }, - { start: 0x725d, end: 0x725d, idx: -25504 }, - { start: 0x725f, end: 0x725f, idx: -25505 }, - { start: 0x7261, end: 0x7262, idx: -25506 }, - { start: 0x7267, end: 0x7267, idx: -25510 }, - { start: 0x7269, end: 0x7269, idx: -25511 }, - { start: 0x7272, end: 0x7272, idx: -25519 }, - { start: 0x7274, end: 0x7274, idx: -25520 }, - { start: 0x7279, end: 0x7279, idx: -25524 }, - { start: 0x727d, end: 0x727e, idx: -25527 }, - { start: 0x7280, end: 0x7282, idx: -25528 }, - { start: 0x7287, end: 0x7287, idx: -25532 }, - { start: 0x7292, end: 0x7292, idx: -25542 }, - { start: 0x7296, end: 0x7296, idx: -25545 }, - { start: 0x72a0, end: 0x72a0, idx: -25554 }, - { start: 0x72a2, end: 0x72a2, idx: -25555 }, - { start: 0x72a7, end: 0x72a7, idx: -25559 }, - { start: 0x72ac, end: 0x72ac, idx: -25563 }, - { start: 0x72af, end: 0x72af, idx: -25565 }, - { start: 0x72b1, end: 0x72b2, idx: -25566 }, - { start: 0x72b6, end: 0x72b6, idx: -25569 }, - { start: 0x72b9, end: 0x72b9, idx: -25571 }, - { start: 0x72be, end: 0x72be, idx: -25575 }, - { start: 0x72c2, end: 0x72c4, idx: -25578 }, - { start: 0x72c6, end: 0x72c6, idx: -25579 }, - { start: 0x72ce, end: 0x72ce, idx: -25586 }, - { start: 0x72d0, end: 0x72d0, idx: -25587 }, - { start: 0x72d2, end: 0x72d2, idx: -25588 }, - { start: 0x72d7, end: 0x72d7, idx: -25592 }, - { start: 0x72d9, end: 0x72d9, idx: -25593 }, - { start: 0x72db, end: 0x72db, idx: -25594 }, - { start: 0x72e0, end: 0x72e2, idx: -25598 }, - { start: 0x72e9, end: 0x72e9, idx: -25604 }, - { start: 0x72ec, end: 0x72ed, idx: -25606 }, - { start: 0x72f7, end: 0x72f9, idx: -25615 }, - { start: 0x72fc, end: 0x72fd, idx: -25617 }, - { start: 0x730a, end: 0x730a, idx: -25629 }, - { start: 0x7316, end: 0x7317, idx: -25640 }, - { start: 0x731b, end: 0x731d, idx: -25643 }, - { start: 0x731f, end: 0x731f, idx: -25644 }, - { start: 0x7324, end: 0x7325, idx: -25648 }, - { start: 0x7329, end: 0x732b, idx: -25651 }, - { start: 0x732e, end: 0x732f, idx: -25653 }, - { start: 0x7334, end: 0x7334, idx: -25657 }, - { start: 0x7336, end: 0x7337, idx: -25658 }, - { start: 0x733e, end: 0x733f, idx: -25664 }, - { start: 0x7344, end: 0x7345, idx: -25668 }, - { start: 0x734e, end: 0x734f, idx: -25676 }, - { start: 0x7357, end: 0x7357, idx: -25683 }, - { start: 0x7363, end: 0x7363, idx: -25694 }, - { start: 0x7368, end: 0x7368, idx: -25698 }, - { start: 0x736a, end: 0x736a, idx: -25699 }, - { start: 0x7370, end: 0x7370, idx: -25704 }, - { start: 0x7372, end: 0x7372, idx: -25705 }, - { start: 0x7375, end: 0x7375, idx: -25707 }, - { start: 0x7377, end: 0x7378, idx: -25708 }, - { start: 0x737a, end: 0x737b, idx: -25709 }, - { start: 0x7384, end: 0x7384, idx: -25717 }, - { start: 0x7387, end: 0x7387, idx: -25719 }, - { start: 0x7389, end: 0x7389, idx: -25720 }, - { start: 0x738b, end: 0x738b, idx: -25721 }, - { start: 0x7396, end: 0x7396, idx: -25731 }, - { start: 0x73a9, end: 0x73a9, idx: -25749 }, - { start: 0x73b2, end: 0x73b3, idx: -25757 }, - { start: 0x73bb, end: 0x73bb, idx: -25764 }, - { start: 0x73bd, end: 0x73bd, idx: -25765 }, - { start: 0x73c0, end: 0x73c0, idx: -25767 }, - { start: 0x73c2, end: 0x73c2, idx: -25768 }, - { start: 0x73c8, end: 0x73ca, idx: -25773 }, - { start: 0x73cd, end: 0x73ce, idx: -25775 }, - { start: 0x73d2, end: 0x73d2, idx: -25778 }, - { start: 0x73d6, end: 0x73d6, idx: -25781 }, - { start: 0x73de, end: 0x73de, idx: -25788 }, - { start: 0x73e0, end: 0x73e0, idx: -25789 }, - { start: 0x73e3, end: 0x73e3, idx: -25791 }, - { start: 0x73e5, end: 0x73e5, idx: -25792 }, - { start: 0x73ea, end: 0x73ea, idx: -25796 }, - { start: 0x73ed, end: 0x73ee, idx: -25798 }, - { start: 0x73f1, end: 0x73f1, idx: -25800 }, - { start: 0x73f5, end: 0x73f5, idx: -25803 }, - { start: 0x73f8, end: 0x73f8, idx: -25805 }, - { start: 0x73fe, end: 0x73fe, idx: -25810 }, - { start: 0x7403, end: 0x7403, idx: -25814 }, - { start: 0x7405, end: 0x7407, idx: -25815 }, - { start: 0x7409, end: 0x7409, idx: -25816 }, - { start: 0x7422, end: 0x7422, idx: -25840 }, - { start: 0x7425, end: 0x7426, idx: -25842 }, - { start: 0x7429, end: 0x742a, idx: -25844 }, - { start: 0x742e, end: 0x742e, idx: -25847 }, - { start: 0x7432, end: 0x7436, idx: -25850 }, - { start: 0x743a, end: 0x743a, idx: -25853 }, - { start: 0x743f, end: 0x743f, idx: -25857 }, - { start: 0x7441, end: 0x7441, idx: -25858 }, - { start: 0x7455, end: 0x7455, idx: -25877 }, - { start: 0x7459, end: 0x745c, idx: -25880 }, - { start: 0x745e, end: 0x7460, idx: -25881 }, - { start: 0x7462, end: 0x7464, idx: -25882 }, - { start: 0x7469, end: 0x746a, idx: -25886 }, - { start: 0x746f, end: 0x7470, idx: -25890 }, - { start: 0x7473, end: 0x7473, idx: -25892 }, - { start: 0x7476, end: 0x7476, idx: -25894 }, - { start: 0x747e, end: 0x747e, idx: -25901 }, - { start: 0x7483, end: 0x7483, idx: -25905 }, - { start: 0x7489, end: 0x7489, idx: -25910 }, - { start: 0x748b, end: 0x748b, idx: -25911 }, - { start: 0x749e, end: 0x749f, idx: -25929 }, - { start: 0x74a2, end: 0x74a2, idx: -25931 }, - { start: 0x74a7, end: 0x74a7, idx: -25935 }, - { start: 0x74b0, end: 0x74b0, idx: -25943 }, - { start: 0x74bd, end: 0x74bd, idx: -25955 }, - { start: 0x74ca, end: 0x74ca, idx: -25967 }, - { start: 0x74cf, end: 0x74cf, idx: -25971 }, - { start: 0x74d4, end: 0x74d4, idx: -25975 }, - { start: 0x74dc, end: 0x74dc, idx: -25982 }, - { start: 0x74e0, end: 0x74e0, idx: -25985 }, - { start: 0x74e2, end: 0x74e3, idx: -25986 }, - { start: 0x74e6, end: 0x74e7, idx: -25988 }, - { start: 0x74e9, end: 0x74e9, idx: -25989 }, - { start: 0x74ee, end: 0x74ee, idx: -25993 }, - { start: 0x74f0, end: 0x74f2, idx: -25994 }, - { start: 0x74f6, end: 0x74f8, idx: -25997 }, - { start: 0x7501, end: 0x7501, idx: -26005 }, - { start: 0x7503, end: 0x7505, idx: -26006 }, - { start: 0x750c, end: 0x750e, idx: -26012 }, - { start: 0x7511, end: 0x7511, idx: -26014 }, - { start: 0x7513, end: 0x7513, idx: -26015 }, - { start: 0x7515, end: 0x7515, idx: -26016 }, - { start: 0x7518, end: 0x7518, idx: -26018 }, - { start: 0x751a, end: 0x751a, idx: -26019 }, - { start: 0x751c, end: 0x751c, idx: -26020 }, - { start: 0x751e, end: 0x751f, idx: -26021 }, - { start: 0x7523, end: 0x7523, idx: -26024 }, - { start: 0x7525, end: 0x7526, idx: -26025 }, - { start: 0x7528, end: 0x7528, idx: -26026 }, - { start: 0x752b, end: 0x752c, idx: -26028 }, - { start: 0x752f, end: 0x7533, idx: -26030 }, - { start: 0x7537, end: 0x7538, idx: -26033 }, - { start: 0x753a, end: 0x753c, idx: -26034 }, - { start: 0x7544, end: 0x7544, idx: -26041 }, - { start: 0x7546, end: 0x7546, idx: -26042 }, - { start: 0x7549, end: 0x754d, idx: -26044 }, - { start: 0x754f, end: 0x754f, idx: -26045 }, - { start: 0x7551, end: 0x7551, idx: -26046 }, - { start: 0x7554, end: 0x7554, idx: -26048 }, - { start: 0x7559, end: 0x755d, idx: -26052 }, - { start: 0x7560, end: 0x7560, idx: -26054 }, - { start: 0x7562, end: 0x7562, idx: -26055 }, - { start: 0x7564, end: 0x7567, idx: -26056 }, - { start: 0x7569, end: 0x756b, idx: -26057 }, - { start: 0x756d, end: 0x756d, idx: -26058 }, - { start: 0x756f, end: 0x7570, idx: -26059 }, - { start: 0x7573, end: 0x7574, idx: -26061 }, - { start: 0x7576, end: 0x7578, idx: -26062 }, - { start: 0x757f, end: 0x757f, idx: -26068 }, - { start: 0x7582, end: 0x7582, idx: -26070 }, - { start: 0x7586, end: 0x7587, idx: -26073 }, - { start: 0x7589, end: 0x758b, idx: -26074 }, - { start: 0x758e, end: 0x758f, idx: -26076 }, - { start: 0x7591, end: 0x7591, idx: -26077 }, - { start: 0x7594, end: 0x7594, idx: -26079 }, - { start: 0x759a, end: 0x759a, idx: -26084 }, - { start: 0x759d, end: 0x759d, idx: -26086 }, - { start: 0x75a3, end: 0x75a3, idx: -26091 }, - { start: 0x75a5, end: 0x75a5, idx: -26092 }, - { start: 0x75ab, end: 0x75ab, idx: -26097 }, - { start: 0x75b1, end: 0x75b3, idx: -26102 }, - { start: 0x75b5, end: 0x75b5, idx: -26103 }, - { start: 0x75b8, end: 0x75b9, idx: -26105 }, - { start: 0x75bc, end: 0x75be, idx: -26107 }, - { start: 0x75c2, end: 0x75c3, idx: -26110 }, - { start: 0x75c5, end: 0x75c5, idx: -26111 }, - { start: 0x75c7, end: 0x75c7, idx: -26112 }, - { start: 0x75ca, end: 0x75ca, idx: -26114 }, - { start: 0x75cd, end: 0x75cd, idx: -26116 }, - { start: 0x75d2, end: 0x75d2, idx: -26120 }, - { start: 0x75d4, end: 0x75d5, idx: -26121 }, - { start: 0x75d8, end: 0x75d9, idx: -26123 }, - { start: 0x75db, end: 0x75db, idx: -26124 }, - { start: 0x75de, end: 0x75de, idx: -26126 }, - { start: 0x75e2, end: 0x75e3, idx: -26129 }, - { start: 0x75e9, end: 0x75e9, idx: -26134 }, - { start: 0x75f0, end: 0x75f0, idx: -26140 }, - { start: 0x75f2, end: 0x75f4, idx: -26141 }, - { start: 0x75fa, end: 0x75fa, idx: -26146 }, - { start: 0x75fc, end: 0x75fc, idx: -26147 }, - { start: 0x75fe, end: 0x75ff, idx: -26148 }, - { start: 0x7601, end: 0x7601, idx: -26149 }, - { start: 0x7609, end: 0x7609, idx: -26156 }, - { start: 0x760b, end: 0x760b, idx: -26157 }, - { start: 0x760d, end: 0x760d, idx: -26158 }, - { start: 0x761f, end: 0x7622, idx: -26175 }, - { start: 0x7624, end: 0x7624, idx: -26176 }, - { start: 0x7626, end: 0x7627, idx: -26177 }, - { start: 0x7630, end: 0x7630, idx: -26185 }, - { start: 0x7634, end: 0x7634, idx: -26188 }, - { start: 0x763b, end: 0x763b, idx: -26194 }, - { start: 0x7642, end: 0x7642, idx: -26200 }, - { start: 0x7646, end: 0x7648, idx: -26203 }, - { start: 0x764c, end: 0x764c, idx: -26206 }, - { start: 0x7652, end: 0x7652, idx: -26211 }, - { start: 0x7656, end: 0x7656, idx: -26214 }, - { start: 0x7658, end: 0x7658, idx: -26215 }, - { start: 0x765c, end: 0x765c, idx: -26218 }, - { start: 0x7661, end: 0x7662, idx: -26222 }, - { start: 0x7667, end: 0x766a, idx: -26226 }, - { start: 0x766c, end: 0x766c, idx: -26227 }, - { start: 0x7670, end: 0x7670, idx: -26230 }, - { start: 0x7672, end: 0x7672, idx: -26231 }, - { start: 0x7676, end: 0x7676, idx: -26234 }, - { start: 0x7678, end: 0x7678, idx: -26235 }, - { start: 0x767a, end: 0x767e, idx: -26236 }, - { start: 0x7680, end: 0x7680, idx: -26237 }, - { start: 0x7682, end: 0x7684, idx: -26238 }, - { start: 0x7686, end: 0x7688, idx: -26239 }, - { start: 0x768b, end: 0x768b, idx: -26241 }, - { start: 0x768e, end: 0x768e, idx: -26243 }, - { start: 0x7690, end: 0x7690, idx: -26244 }, - { start: 0x7693, end: 0x7693, idx: -26246 }, - { start: 0x7696, end: 0x7696, idx: -26248 }, - { start: 0x7699, end: 0x769c, idx: -26250 }, - { start: 0x769e, end: 0x769e, idx: -26251 }, - { start: 0x76a6, end: 0x76a6, idx: -26258 }, - { start: 0x76ae, end: 0x76ae, idx: -26265 }, - { start: 0x76b0, end: 0x76b0, idx: -26266 }, - { start: 0x76b4, end: 0x76b4, idx: -26269 }, - { start: 0x76b7, end: 0x76ba, idx: -26271 }, - { start: 0x76bf, end: 0x76bf, idx: -26275 }, - { start: 0x76c2, end: 0x76c3, idx: -26277 }, - { start: 0x76c6, end: 0x76c6, idx: -26279 }, - { start: 0x76c8, end: 0x76c8, idx: -26280 }, - { start: 0x76ca, end: 0x76ca, idx: -26281 }, - { start: 0x76cd, end: 0x76cd, idx: -26283 }, - { start: 0x76d2, end: 0x76d2, idx: -26287 }, - { start: 0x76d6, end: 0x76d7, idx: -26290 }, - { start: 0x76db, end: 0x76dc, idx: -26293 }, - { start: 0x76de, end: 0x76df, idx: -26294 }, - { start: 0x76e1, end: 0x76e1, idx: -26295 }, - { start: 0x76e3, end: 0x76e5, idx: -26296 }, - { start: 0x76e7, end: 0x76e7, idx: -26297 }, - { start: 0x76ea, end: 0x76ea, idx: -26299 }, - { start: 0x76ee, end: 0x76ee, idx: -26302 }, - { start: 0x76f2, end: 0x76f2, idx: -26305 }, - { start: 0x76f4, end: 0x76f4, idx: -26306 }, - { start: 0x76f8, end: 0x76f8, idx: -26309 }, - { start: 0x76fb, end: 0x76fb, idx: -26311 }, - { start: 0x76fe, end: 0x76fe, idx: -26313 }, - { start: 0x7701, end: 0x7701, idx: -26315 }, - { start: 0x7704, end: 0x7704, idx: -26317 }, - { start: 0x7707, end: 0x7709, idx: -26319 }, - { start: 0x770b, end: 0x770c, idx: -26320 }, - { start: 0x771b, end: 0x771b, idx: -26334 }, - { start: 0x771e, end: 0x7720, idx: -26336 }, - { start: 0x7724, end: 0x7726, idx: -26339 }, - { start: 0x7729, end: 0x7729, idx: -26341 }, - { start: 0x7737, end: 0x7738, idx: -26354 }, - { start: 0x773a, end: 0x773a, idx: -26355 }, - { start: 0x773c, end: 0x773c, idx: -26356 }, - { start: 0x7740, end: 0x7740, idx: -26359 }, - { start: 0x7746, end: 0x7747, idx: -26364 }, - { start: 0x775a, end: 0x775b, idx: -26382 }, - { start: 0x7761, end: 0x7761, idx: -26387 }, - { start: 0x7763, end: 0x7763, idx: -26388 }, - { start: 0x7765, end: 0x7766, idx: -26389 }, - { start: 0x7768, end: 0x7768, idx: -26390 }, - { start: 0x776b, end: 0x776b, idx: -26392 }, - { start: 0x7779, end: 0x7779, idx: -26405 }, - { start: 0x777e, end: 0x777f, idx: -26409 }, - { start: 0x778b, end: 0x778b, idx: -26420 }, - { start: 0x778e, end: 0x778e, idx: -26422 }, - { start: 0x7791, end: 0x7791, idx: -26424 }, - { start: 0x779e, end: 0x779e, idx: -26436 }, - { start: 0x77a0, end: 0x77a0, idx: -26437 }, - { start: 0x77a5, end: 0x77a5, idx: -26441 }, - { start: 0x77ac, end: 0x77ad, idx: -26447 }, - { start: 0x77b0, end: 0x77b0, idx: -26449 }, - { start: 0x77b3, end: 0x77b3, idx: -26451 }, - { start: 0x77b6, end: 0x77b6, idx: -26453 }, - { start: 0x77b9, end: 0x77b9, idx: -26455 }, - { start: 0x77bb, end: 0x77bd, idx: -26456 }, - { start: 0x77bf, end: 0x77bf, idx: -26457 }, - { start: 0x77c7, end: 0x77c7, idx: -26464 }, - { start: 0x77cd, end: 0x77cd, idx: -26469 }, - { start: 0x77d7, end: 0x77d7, idx: -26478 }, - { start: 0x77da, end: 0x77dc, idx: -26480 }, - { start: 0x77e2, end: 0x77e3, idx: -26485 }, - { start: 0x77e5, end: 0x77e5, idx: -26486 }, - { start: 0x77e7, end: 0x77e7, idx: -26487 }, - { start: 0x77e9, end: 0x77e9, idx: -26488 }, - { start: 0x77ed, end: 0x77ef, idx: -26491 }, - { start: 0x77f3, end: 0x77f3, idx: -26494 }, - { start: 0x77fc, end: 0x77fc, idx: -26502 }, - { start: 0x7802, end: 0x7802, idx: -26507 }, - { start: 0x780c, end: 0x780c, idx: -26516 }, - { start: 0x7812, end: 0x7812, idx: -26521 }, - { start: 0x7814, end: 0x7815, idx: -26522 }, - { start: 0x7820, end: 0x7821, idx: -26532 }, - { start: 0x7825, end: 0x7827, idx: -26535 }, - { start: 0x7832, end: 0x7832, idx: -26545 }, - { start: 0x7834, end: 0x7834, idx: -26546 }, - { start: 0x783a, end: 0x783a, idx: -26551 }, - { start: 0x783f, end: 0x783f, idx: -26555 }, - { start: 0x7845, end: 0x7845, idx: -26560 }, - { start: 0x784e, end: 0x784e, idx: -26568 }, - { start: 0x785d, end: 0x785d, idx: -26582 }, - { start: 0x7864, end: 0x7864, idx: -26588 }, - { start: 0x786b, end: 0x786c, idx: -26594 }, - { start: 0x786f, end: 0x786f, idx: -26596 }, - { start: 0x7872, end: 0x7872, idx: -26598 }, - { start: 0x7874, end: 0x7874, idx: -26599 }, - { start: 0x787a, end: 0x787a, idx: -26604 }, - { start: 0x787c, end: 0x787c, idx: -26605 }, - { start: 0x7881, end: 0x7881, idx: -26609 }, - { start: 0x7886, end: 0x7887, idx: -26613 }, - { start: 0x788c, end: 0x788e, idx: -26617 }, - { start: 0x7891, end: 0x7891, idx: -26619 }, - { start: 0x7893, end: 0x7893, idx: -26620 }, - { start: 0x7895, end: 0x7895, idx: -26621 }, - { start: 0x7897, end: 0x7897, idx: -26622 }, - { start: 0x789a, end: 0x789a, idx: -26624 }, - { start: 0x78a3, end: 0x78a3, idx: -26632 }, - { start: 0x78a7, end: 0x78a7, idx: -26635 }, - { start: 0x78a9, end: 0x78aa, idx: -26636 }, - { start: 0x78af, end: 0x78af, idx: -26640 }, - { start: 0x78b5, end: 0x78b5, idx: -26645 }, - { start: 0x78ba, end: 0x78ba, idx: -26649 }, - { start: 0x78bc, end: 0x78bc, idx: -26650 }, - { start: 0x78be, end: 0x78be, idx: -26651 }, - { start: 0x78c1, end: 0x78c1, idx: -26653 }, - { start: 0x78c5, end: 0x78c6, idx: -26656 }, - { start: 0x78ca, end: 0x78cb, idx: -26659 }, - { start: 0x78d0, end: 0x78d1, idx: -26663 }, - { start: 0x78d4, end: 0x78d4, idx: -26665 }, - { start: 0x78da, end: 0x78da, idx: -26670 }, - { start: 0x78e7, end: 0x78e8, idx: -26682 }, - { start: 0x78ec, end: 0x78ec, idx: -26685 }, - { start: 0x78ef, end: 0x78ef, idx: -26687 }, - { start: 0x78f4, end: 0x78f4, idx: -26691 }, - { start: 0x78fd, end: 0x78fd, idx: -26699 }, - { start: 0x7901, end: 0x7901, idx: -26702 }, - { start: 0x7907, end: 0x7907, idx: -26707 }, - { start: 0x790e, end: 0x790e, idx: -26713 }, - { start: 0x7911, end: 0x7912, idx: -26715 }, - { start: 0x7919, end: 0x7919, idx: -26721 }, - { start: 0x7926, end: 0x7926, idx: -26733 }, - { start: 0x792a, end: 0x792c, idx: -26736 }, - { start: 0x7930, end: 0x7930, idx: -26739 }, - { start: 0x793a, end: 0x793a, idx: -26748 }, - { start: 0x793c, end: 0x793c, idx: -26749 }, - { start: 0x793e, end: 0x793e, idx: -26750 }, - { start: 0x7940, end: 0x7941, idx: -26751 }, - { start: 0x7947, end: 0x7949, idx: -26756 }, - { start: 0x7950, end: 0x7950, idx: -26762 }, - { start: 0x7953, end: 0x7953, idx: -26764 }, - { start: 0x7955, end: 0x7957, idx: -26765 }, - { start: 0x795a, end: 0x795a, idx: -26767 }, - { start: 0x795d, end: 0x7960, idx: -26769 }, - { start: 0x7962, end: 0x7962, idx: -26770 }, - { start: 0x7965, end: 0x7965, idx: -26772 }, - { start: 0x7968, end: 0x7968, idx: -26774 }, - { start: 0x796d, end: 0x796d, idx: -26778 }, - { start: 0x7977, end: 0x7977, idx: -26787 }, - { start: 0x797a, end: 0x797a, idx: -26789 }, - { start: 0x797f, end: 0x7981, idx: -26793 }, - { start: 0x7984, end: 0x7985, idx: -26795 }, - { start: 0x798a, end: 0x798a, idx: -26799 }, - { start: 0x798d, end: 0x798f, idx: -26801 }, - { start: 0x7994, end: 0x7994, idx: -26805 }, - { start: 0x799b, end: 0x799b, idx: -26811 }, - { start: 0x799d, end: 0x799d, idx: -26812 }, - { start: 0x79a6, end: 0x79a7, idx: -26820 }, - { start: 0x79aa, end: 0x79aa, idx: -26822 }, - { start: 0x79ae, end: 0x79ae, idx: -26825 }, - { start: 0x79b0, end: 0x79b1, idx: -26826 }, - { start: 0x79b3, end: 0x79b3, idx: -26827 }, - { start: 0x79b9, end: 0x79ba, idx: -26832 }, - { start: 0x79bd, end: 0x79c1, idx: -26834 }, - { start: 0x79c9, end: 0x79c9, idx: -26841 }, - { start: 0x79cb, end: 0x79cb, idx: -26842 }, - { start: 0x79d1, end: 0x79d2, idx: -26847 }, - { start: 0x79d5, end: 0x79d5, idx: -26849 }, - { start: 0x79d8, end: 0x79d8, idx: -26851 }, - { start: 0x79df, end: 0x79df, idx: -26857 }, - { start: 0x79e1, end: 0x79e1, idx: -26858 }, - { start: 0x79e3, end: 0x79e4, idx: -26859 }, - { start: 0x79e6, end: 0x79e7, idx: -26860 }, - { start: 0x79e9, end: 0x79e9, idx: -26861 }, - { start: 0x79ec, end: 0x79ec, idx: -26863 }, - { start: 0x79f0, end: 0x79f0, idx: -26866 }, - { start: 0x79fb, end: 0x79fb, idx: -26876 }, - { start: 0x7a00, end: 0x7a00, idx: -26880 }, - { start: 0x7a08, end: 0x7a08, idx: -26887 }, - { start: 0x7a0b, end: 0x7a0b, idx: -26889 }, - { start: 0x7a0d, end: 0x7a0e, idx: -26890 }, - { start: 0x7a14, end: 0x7a14, idx: -26895 }, - { start: 0x7a17, end: 0x7a1a, idx: -26897 }, - { start: 0x7a1c, end: 0x7a1c, idx: -26898 }, - { start: 0x7a1f, end: 0x7a20, idx: -26900 }, - { start: 0x7a2e, end: 0x7a2e, idx: -26913 }, - { start: 0x7a31, end: 0x7a32, idx: -26915 }, - { start: 0x7a37, end: 0x7a37, idx: -26919 }, - { start: 0x7a3b, end: 0x7a40, idx: -26922 }, - { start: 0x7a42, end: 0x7a43, idx: -26923 }, - { start: 0x7a46, end: 0x7a46, idx: -26925 }, - { start: 0x7a49, end: 0x7a49, idx: -26927 }, - { start: 0x7a4d, end: 0x7a50, idx: -26930 }, - { start: 0x7a57, end: 0x7a57, idx: -26936 }, - { start: 0x7a61, end: 0x7a63, idx: -26945 }, - { start: 0x7a69, end: 0x7a69, idx: -26950 }, - { start: 0x7a6b, end: 0x7a6b, idx: -26951 }, - { start: 0x7a70, end: 0x7a70, idx: -26955 }, - { start: 0x7a74, end: 0x7a74, idx: -26958 }, - { start: 0x7a76, end: 0x7a76, idx: -26959 }, - { start: 0x7a79, end: 0x7a7a, idx: -26961 }, - { start: 0x7a7d, end: 0x7a7d, idx: -26963 }, - { start: 0x7a7f, end: 0x7a7f, idx: -26964 }, - { start: 0x7a81, end: 0x7a81, idx: -26965 }, - { start: 0x7a83, end: 0x7a84, idx: -26966 }, - { start: 0x7a88, end: 0x7a88, idx: -26969 }, - { start: 0x7a92, end: 0x7a93, idx: -26978 }, - { start: 0x7a95, end: 0x7a98, idx: -26979 }, - { start: 0x7a9f, end: 0x7a9f, idx: -26985 }, - { start: 0x7aa9, end: 0x7aaa, idx: -26994 }, - { start: 0x7aae, end: 0x7ab0, idx: -26997 }, - { start: 0x7ab6, end: 0x7ab6, idx: -27002 }, - { start: 0x7aba, end: 0x7aba, idx: -27005 }, - { start: 0x7abf, end: 0x7abf, idx: -27009 }, - { start: 0x7ac3, end: 0x7ac5, idx: -27012 }, - { start: 0x7ac7, end: 0x7ac8, idx: -27013 }, - { start: 0x7aca, end: 0x7acb, idx: -27014 }, - { start: 0x7acd, end: 0x7acd, idx: -27015 }, - { start: 0x7acf, end: 0x7acf, idx: -27016 }, - { start: 0x7ad1, end: 0x7ad3, idx: -27017 }, - { start: 0x7ad5, end: 0x7ad5, idx: -27018 }, - { start: 0x7ad9, end: 0x7ada, idx: -27021 }, - { start: 0x7adc, end: 0x7add, idx: -27022 }, - { start: 0x7adf, end: 0x7ae3, idx: -27023 }, - { start: 0x7ae5, end: 0x7ae7, idx: -27024 }, - { start: 0x7aea, end: 0x7aeb, idx: -27026 }, - { start: 0x7aed, end: 0x7aed, idx: -27027 }, - { start: 0x7aef, end: 0x7af0, idx: -27028 }, - { start: 0x7af6, end: 0x7af6, idx: -27033 }, - { start: 0x7af8, end: 0x7afa, idx: -27034 }, - { start: 0x7aff, end: 0x7aff, idx: -27038 }, - { start: 0x7b02, end: 0x7b02, idx: -27040 }, - { start: 0x7b04, end: 0x7b04, idx: -27041 }, - { start: 0x7b06, end: 0x7b06, idx: -27042 }, - { start: 0x7b08, end: 0x7b08, idx: -27043 }, - { start: 0x7b0a, end: 0x7b0b, idx: -27044 }, - { start: 0x7b0f, end: 0x7b0f, idx: -27047 }, - { start: 0x7b11, end: 0x7b11, idx: -27048 }, - { start: 0x7b18, end: 0x7b19, idx: -27054 }, - { start: 0x7b1b, end: 0x7b1b, idx: -27055 }, - { start: 0x7b1e, end: 0x7b1e, idx: -27057 }, - { start: 0x7b20, end: 0x7b20, idx: -27058 }, - { start: 0x7b25, end: 0x7b26, idx: -27062 }, - { start: 0x7b28, end: 0x7b28, idx: -27063 }, - { start: 0x7b2c, end: 0x7b2c, idx: -27066 }, - { start: 0x7b33, end: 0x7b33, idx: -27072 }, - { start: 0x7b35, end: 0x7b36, idx: -27073 }, - { start: 0x7b39, end: 0x7b39, idx: -27075 }, - { start: 0x7b45, end: 0x7b46, idx: -27086 }, - { start: 0x7b48, end: 0x7b49, idx: -27087 }, - { start: 0x7b4b, end: 0x7b4d, idx: -27088 }, - { start: 0x7b4f, end: 0x7b52, idx: -27089 }, - { start: 0x7b54, end: 0x7b54, idx: -27090 }, - { start: 0x7b56, end: 0x7b56, idx: -27091 }, - { start: 0x7b5d, end: 0x7b5d, idx: -27097 }, - { start: 0x7b65, end: 0x7b65, idx: -27104 }, - { start: 0x7b67, end: 0x7b67, idx: -27105 }, - { start: 0x7b6c, end: 0x7b6c, idx: -27109 }, - { start: 0x7b6e, end: 0x7b6e, idx: -27110 }, - { start: 0x7b70, end: 0x7b71, idx: -27111 }, - { start: 0x7b74, end: 0x7b75, idx: -27113 }, - { start: 0x7b7a, end: 0x7b7a, idx: -27117 }, - { start: 0x7b86, end: 0x7b87, idx: -27128 }, - { start: 0x7b8b, end: 0x7b8b, idx: -27131 }, - { start: 0x7b8d, end: 0x7b8d, idx: -27132 }, - { start: 0x7b8f, end: 0x7b8f, idx: -27133 }, - { start: 0x7b92, end: 0x7b92, idx: -27135 }, - { start: 0x7b94, end: 0x7b95, idx: -27136 }, - { start: 0x7b97, end: 0x7b9a, idx: -27137 }, - { start: 0x7b9c, end: 0x7b9f, idx: -27138 }, - { start: 0x7ba1, end: 0x7ba1, idx: -27139 }, - { start: 0x7baa, end: 0x7baa, idx: -27147 }, - { start: 0x7bad, end: 0x7bad, idx: -27149 }, - { start: 0x7bb1, end: 0x7bb1, idx: -27152 }, - { start: 0x7bb4, end: 0x7bb4, idx: -27154 }, - { start: 0x7bb8, end: 0x7bb8, idx: -27157 }, - { start: 0x7bc0, end: 0x7bc1, idx: -27164 }, - { start: 0x7bc4, end: 0x7bc4, idx: -27166 }, - { start: 0x7bc6, end: 0x7bc7, idx: -27167 }, - { start: 0x7bc9, end: 0x7bc9, idx: -27168 }, - { start: 0x7bcb, end: 0x7bcc, idx: -27169 }, - { start: 0x7bcf, end: 0x7bcf, idx: -27171 }, - { start: 0x7bdd, end: 0x7bdd, idx: -27184 }, - { start: 0x7be0, end: 0x7be0, idx: -27186 }, - { start: 0x7be4, end: 0x7be6, idx: -27189 }, - { start: 0x7be9, end: 0x7be9, idx: -27191 }, - { start: 0x7bed, end: 0x7bed, idx: -27194 }, - { start: 0x7bf3, end: 0x7bf3, idx: -27199 }, - { start: 0x7bf6, end: 0x7bf7, idx: -27201 }, - { start: 0x7c00, end: 0x7c00, idx: -27209 }, - { start: 0x7c07, end: 0x7c07, idx: -27215 }, - { start: 0x7c0d, end: 0x7c0d, idx: -27220 }, - { start: 0x7c11, end: 0x7c14, idx: -27223 }, - { start: 0x7c17, end: 0x7c17, idx: -27225 }, - { start: 0x7c1e, end: 0x7c1f, idx: -27231 }, - { start: 0x7c21, end: 0x7c21, idx: -27232 }, - { start: 0x7c23, end: 0x7c23, idx: -27233 }, - { start: 0x7c27, end: 0x7c27, idx: -27236 }, - { start: 0x7c2a, end: 0x7c2b, idx: -27238 }, - { start: 0x7c37, end: 0x7c38, idx: -27249 }, - { start: 0x7c3d, end: 0x7c40, idx: -27253 }, - { start: 0x7c43, end: 0x7c43, idx: -27255 }, - { start: 0x7c4c, end: 0x7c4d, idx: -27263 }, - { start: 0x7c4f, end: 0x7c50, idx: -27264 }, - { start: 0x7c54, end: 0x7c54, idx: -27267 }, - { start: 0x7c56, end: 0x7c56, idx: -27268 }, - { start: 0x7c58, end: 0x7c58, idx: -27269 }, - { start: 0x7c5f, end: 0x7c60, idx: -27275 }, - { start: 0x7c64, end: 0x7c65, idx: -27278 }, - { start: 0x7c6c, end: 0x7c6c, idx: -27284 }, - { start: 0x7c73, end: 0x7c73, idx: -27290 }, - { start: 0x7c75, end: 0x7c75, idx: -27291 }, - { start: 0x7c7e, end: 0x7c7e, idx: -27299 }, - { start: 0x7c81, end: 0x7c83, idx: -27301 }, - { start: 0x7c89, end: 0x7c89, idx: -27306 }, - { start: 0x7c8b, end: 0x7c8b, idx: -27307 }, - { start: 0x7c8d, end: 0x7c8d, idx: -27308 }, - { start: 0x7c90, end: 0x7c90, idx: -27310 }, - { start: 0x7c92, end: 0x7c92, idx: -27311 }, - { start: 0x7c95, end: 0x7c95, idx: -27313 }, - { start: 0x7c97, end: 0x7c98, idx: -27314 }, - { start: 0x7c9b, end: 0x7c9b, idx: -27316 }, - { start: 0x7c9f, end: 0x7c9f, idx: -27319 }, - { start: 0x7ca1, end: 0x7ca2, idx: -27320 }, - { start: 0x7ca4, end: 0x7ca5, idx: -27321 }, - { start: 0x7ca7, end: 0x7ca8, idx: -27322 }, - { start: 0x7cab, end: 0x7cab, idx: -27324 }, - { start: 0x7cad, end: 0x7cae, idx: -27325 }, - { start: 0x7cb1, end: 0x7cb3, idx: -27327 }, - { start: 0x7cb9, end: 0x7cb9, idx: -27332 }, - { start: 0x7cbd, end: 0x7cbe, idx: -27335 }, - { start: 0x7cc0, end: 0x7cc0, idx: -27336 }, - { start: 0x7cc2, end: 0x7cc2, idx: -27337 }, - { start: 0x7cc5, end: 0x7cc5, idx: -27339 }, - { start: 0x7cca, end: 0x7cca, idx: -27343 }, - { start: 0x7cce, end: 0x7cce, idx: -27346 }, - { start: 0x7cd2, end: 0x7cd2, idx: -27349 }, - { start: 0x7cd6, end: 0x7cd6, idx: -27352 }, - { start: 0x7cd8, end: 0x7cd8, idx: -27353 }, - { start: 0x7cdc, end: 0x7cdc, idx: -27356 }, - { start: 0x7cde, end: 0x7ce0, idx: -27357 }, - { start: 0x7ce2, end: 0x7ce2, idx: -27358 }, - { start: 0x7ce7, end: 0x7ce7, idx: -27362 }, - { start: 0x7cef, end: 0x7cef, idx: -27369 }, - { start: 0x7cf2, end: 0x7cf2, idx: -27371 }, - { start: 0x7cf4, end: 0x7cf4, idx: -27372 }, - { start: 0x7cf6, end: 0x7cf6, idx: -27373 }, - { start: 0x7cf8, end: 0x7cf8, idx: -27374 }, - { start: 0x7cfa, end: 0x7cfb, idx: -27375 }, - { start: 0x7cfe, end: 0x7cfe, idx: -27377 }, - { start: 0x7d00, end: 0x7d00, idx: -27378 }, - { start: 0x7d02, end: 0x7d02, idx: -27379 }, - { start: 0x7d04, end: 0x7d06, idx: -27380 }, - { start: 0x7d0a, end: 0x7d0b, idx: -27383 }, - { start: 0x7d0d, end: 0x7d0d, idx: -27384 }, - { start: 0x7d10, end: 0x7d10, idx: -27386 }, - { start: 0x7d14, end: 0x7d15, idx: -27389 }, - { start: 0x7d17, end: 0x7d1c, idx: -27390 }, - { start: 0x7d20, end: 0x7d22, idx: -27393 }, - { start: 0x7d2b, end: 0x7d2c, idx: -27401 }, - { start: 0x7d2e, end: 0x7d30, idx: -27402 }, - { start: 0x7d32, end: 0x7d33, idx: -27403 }, - { start: 0x7d35, end: 0x7d35, idx: -27404 }, - { start: 0x7d39, end: 0x7d3a, idx: -27407 }, - { start: 0x7d3f, end: 0x7d3f, idx: -27411 }, - { start: 0x7d42, end: 0x7d46, idx: -27413 }, - { start: 0x7d48, end: 0x7d48, idx: -27414 }, - { start: 0x7d4b, end: 0x7d4c, idx: -27416 }, - { start: 0x7d4e, end: 0x7d50, idx: -27417 }, - { start: 0x7d56, end: 0x7d56, idx: -27422 }, - { start: 0x7d5b, end: 0x7d5c, idx: -27426 }, - { start: 0x7d5e, end: 0x7d5e, idx: -27427 }, - { start: 0x7d61, end: 0x7d63, idx: -27429 }, - { start: 0x7d66, end: 0x7d66, idx: -27431 }, - { start: 0x7d68, end: 0x7d68, idx: -27432 }, - { start: 0x7d6e, end: 0x7d6e, idx: -27437 }, - { start: 0x7d71, end: 0x7d73, idx: -27439 }, - { start: 0x7d75, end: 0x7d76, idx: -27440 }, - { start: 0x7d79, end: 0x7d79, idx: -27442 }, - { start: 0x7d7d, end: 0x7d7d, idx: -27445 }, - { start: 0x7d89, end: 0x7d89, idx: -27456 }, - { start: 0x7d8f, end: 0x7d8f, idx: -27461 }, - { start: 0x7d93, end: 0x7d93, idx: -27464 }, - { start: 0x7d99, end: 0x7d9c, idx: -27469 }, - { start: 0x7d9f, end: 0x7da0, idx: -27471 }, - { start: 0x7da2, end: 0x7da3, idx: -27472 }, - { start: 0x7dab, end: 0x7db2, idx: -27479 }, - { start: 0x7db4, end: 0x7db5, idx: -27480 }, - { start: 0x7db7, end: 0x7db8, idx: -27481 }, - { start: 0x7dba, end: 0x7dbb, idx: -27482 }, - { start: 0x7dbd, end: 0x7dbf, idx: -27483 }, - { start: 0x7dc7, end: 0x7dc7, idx: -27490 }, - { start: 0x7dca, end: 0x7dcb, idx: -27492 }, - { start: 0x7dcf, end: 0x7dcf, idx: -27495 }, - { start: 0x7dd1, end: 0x7dd2, idx: -27496 }, - { start: 0x7dd5, end: 0x7dd6, idx: -27498 }, - { start: 0x7dd8, end: 0x7dd8, idx: -27499 }, - { start: 0x7dda, end: 0x7dda, idx: -27500 }, - { start: 0x7ddc, end: 0x7dde, idx: -27501 }, - { start: 0x7de0, end: 0x7de1, idx: -27502 }, - { start: 0x7de4, end: 0x7de4, idx: -27504 }, - { start: 0x7de8, end: 0x7de9, idx: -27507 }, - { start: 0x7dec, end: 0x7dec, idx: -27509 }, - { start: 0x7def, end: 0x7def, idx: -27511 }, - { start: 0x7df2, end: 0x7df2, idx: -27513 }, - { start: 0x7df4, end: 0x7df4, idx: -27514 }, - { start: 0x7dfb, end: 0x7dfb, idx: -27520 }, - { start: 0x7e01, end: 0x7e01, idx: -27525 }, - { start: 0x7e04, end: 0x7e05, idx: -27527 }, - { start: 0x7e09, end: 0x7e0b, idx: -27530 }, - { start: 0x7e12, end: 0x7e12, idx: -27536 }, - { start: 0x7e1b, end: 0x7e1b, idx: -27544 }, - { start: 0x7e1e, end: 0x7e1f, idx: -27546 }, - { start: 0x7e21, end: 0x7e23, idx: -27547 }, - { start: 0x7e26, end: 0x7e26, idx: -27549 }, - { start: 0x7e2b, end: 0x7e2b, idx: -27553 }, - { start: 0x7e2e, end: 0x7e2e, idx: -27555 }, - { start: 0x7e31, end: 0x7e32, idx: -27557 }, - { start: 0x7e35, end: 0x7e35, idx: -27559 }, - { start: 0x7e37, end: 0x7e37, idx: -27560 }, - { start: 0x7e39, end: 0x7e3b, idx: -27561 }, - { start: 0x7e3d, end: 0x7e3e, idx: -27562 }, - { start: 0x7e41, end: 0x7e41, idx: -27564 }, - { start: 0x7e43, end: 0x7e43, idx: -27565 }, - { start: 0x7e46, end: 0x7e46, idx: -27567 }, - { start: 0x7e48, end: 0x7e48, idx: -27568 }, - { start: 0x7e4a, end: 0x7e4b, idx: -27569 }, - { start: 0x7e4d, end: 0x7e4d, idx: -27570 }, - { start: 0x7e52, end: 0x7e52, idx: -27574 }, - { start: 0x7e54, end: 0x7e56, idx: -27575 }, - { start: 0x7e59, end: 0x7e5a, idx: -27577 }, - { start: 0x7e5d, end: 0x7e5e, idx: -27579 }, - { start: 0x7e61, end: 0x7e61, idx: -27581 }, - { start: 0x7e66, end: 0x7e67, idx: -27585 }, - { start: 0x7e69, end: 0x7e6b, idx: -27586 }, - { start: 0x7e6d, end: 0x7e6d, idx: -27587 }, - { start: 0x7e70, end: 0x7e70, idx: -27589 }, - { start: 0x7e79, end: 0x7e79, idx: -27597 }, - { start: 0x7e7b, end: 0x7e7d, idx: -27598 }, - { start: 0x7e7f, end: 0x7e7f, idx: -27599 }, - { start: 0x7e82, end: 0x7e83, idx: -27601 }, - { start: 0x7e88, end: 0x7e8a, idx: -27605 }, - { start: 0x7e8c, end: 0x7e8c, idx: -27606 }, - { start: 0x7e8e, end: 0x7e90, idx: -27607 }, - { start: 0x7e92, end: 0x7e94, idx: -27608 }, - { start: 0x7e96, end: 0x7e96, idx: -27609 }, - { start: 0x7e9b, end: 0x7e9c, idx: -27613 }, - { start: 0x7f36, end: 0x7f36, idx: -27766 }, - { start: 0x7f38, end: 0x7f38, idx: -27767 }, - { start: 0x7f3a, end: 0x7f3a, idx: -27768 }, - { start: 0x7f45, end: 0x7f45, idx: -27778 }, - { start: 0x7f47, end: 0x7f47, idx: -27779 }, - { start: 0x7f4c, end: 0x7f4e, idx: -27783 }, - { start: 0x7f50, end: 0x7f51, idx: -27784 }, - { start: 0x7f54, end: 0x7f55, idx: -27786 }, - { start: 0x7f58, end: 0x7f58, idx: -27788 }, - { start: 0x7f5f, end: 0x7f60, idx: -27794 }, - { start: 0x7f67, end: 0x7f6b, idx: -27800 }, - { start: 0x7f6e, end: 0x7f6e, idx: -27802 }, - { start: 0x7f70, end: 0x7f70, idx: -27803 }, - { start: 0x7f72, end: 0x7f72, idx: -27804 }, - { start: 0x7f75, end: 0x7f75, idx: -27806 }, - { start: 0x7f77, end: 0x7f79, idx: -27807 }, - { start: 0x7f82, end: 0x7f83, idx: -27815 }, - { start: 0x7f85, end: 0x7f88, idx: -27816 }, - { start: 0x7f8a, end: 0x7f8a, idx: -27817 }, - { start: 0x7f8c, end: 0x7f8c, idx: -27818 }, - { start: 0x7f8e, end: 0x7f8e, idx: -27819 }, - { start: 0x7f94, end: 0x7f94, idx: -27824 }, - { start: 0x7f9a, end: 0x7f9a, idx: -27829 }, - { start: 0x7f9d, end: 0x7f9e, idx: -27831 }, - { start: 0x7fa1, end: 0x7fa1, idx: -27833 }, - { start: 0x7fa3, end: 0x7fa4, idx: -27834 }, - { start: 0x7fa8, end: 0x7fa9, idx: -27837 }, - { start: 0x7fae, end: 0x7faf, idx: -27841 }, - { start: 0x7fb2, end: 0x7fb2, idx: -27843 }, - { start: 0x7fb6, end: 0x7fb6, idx: -27846 }, - { start: 0x7fb8, end: 0x7fb9, idx: -27847 }, - { start: 0x7fbd, end: 0x7fbd, idx: -27850 }, - { start: 0x7fc1, end: 0x7fc1, idx: -27853 }, - { start: 0x7fc5, end: 0x7fc6, idx: -27856 }, - { start: 0x7fca, end: 0x7fca, idx: -27859 }, - { start: 0x7fcc, end: 0x7fcc, idx: -27860 }, - { start: 0x7fd2, end: 0x7fd2, idx: -27865 }, - { start: 0x7fd4, end: 0x7fd5, idx: -27866 }, - { start: 0x7fe0, end: 0x7fe1, idx: -27876 }, - { start: 0x7fe6, end: 0x7fe6, idx: -27880 }, - { start: 0x7fe9, end: 0x7fe9, idx: -27882 }, - { start: 0x7feb, end: 0x7feb, idx: -27883 }, - { start: 0x7ff0, end: 0x7ff0, idx: -27887 }, - { start: 0x7ff3, end: 0x7ff3, idx: -27889 }, - { start: 0x7ff9, end: 0x7ff9, idx: -27894 }, - { start: 0x7ffb, end: 0x7ffc, idx: -27895 }, - { start: 0x8000, end: 0x8001, idx: -27898 }, - { start: 0x8003, end: 0x8006, idx: -27899 }, - { start: 0x800b, end: 0x800c, idx: -27903 }, - { start: 0x8010, end: 0x8010, idx: -27906 }, - { start: 0x8012, end: 0x8012, idx: -27907 }, - { start: 0x8015, end: 0x8015, idx: -27909 }, - { start: 0x8017, end: 0x8019, idx: -27910 }, - { start: 0x801c, end: 0x801c, idx: -27912 }, - { start: 0x8021, end: 0x8021, idx: -27916 }, - { start: 0x8028, end: 0x8028, idx: -27922 }, - { start: 0x8033, end: 0x8033, idx: -27932 }, - { start: 0x8036, end: 0x8036, idx: -27934 }, - { start: 0x803b, end: 0x803b, idx: -27938 }, - { start: 0x803d, end: 0x803d, idx: -27939 }, - { start: 0x803f, end: 0x803f, idx: -27940 }, - { start: 0x8046, end: 0x8046, idx: -27946 }, - { start: 0x804a, end: 0x804a, idx: -27949 }, - { start: 0x8052, end: 0x8052, idx: -27956 }, - { start: 0x8056, end: 0x8056, idx: -27959 }, - { start: 0x8058, end: 0x8058, idx: -27960 }, - { start: 0x805a, end: 0x805a, idx: -27961 }, - { start: 0x805e, end: 0x805f, idx: -27964 }, - { start: 0x8061, end: 0x8062, idx: -27965 }, - { start: 0x8068, end: 0x8068, idx: -27970 }, - { start: 0x806f, end: 0x8070, idx: -27976 }, - { start: 0x8072, end: 0x8074, idx: -27977 }, - { start: 0x8076, end: 0x8077, idx: -27978 }, - { start: 0x8079, end: 0x8079, idx: -27979 }, - { start: 0x807d, end: 0x807f, idx: -27982 }, - { start: 0x8084, end: 0x8087, idx: -27986 }, - { start: 0x8089, end: 0x8089, idx: -27987 }, - { start: 0x808b, end: 0x808c, idx: -27988 }, - { start: 0x8093, end: 0x8093, idx: -27994 }, - { start: 0x8096, end: 0x8096, idx: -27996 }, - { start: 0x8098, end: 0x8098, idx: -27997 }, - { start: 0x809a, end: 0x809b, idx: -27998 }, - { start: 0x809d, end: 0x809d, idx: -27999 }, - { start: 0x80a1, end: 0x80a2, idx: -28002 }, - { start: 0x80a5, end: 0x80a5, idx: -28004 }, - { start: 0x80a9, end: 0x80aa, idx: -28007 }, - { start: 0x80ac, end: 0x80ad, idx: -28008 }, - { start: 0x80af, end: 0x80af, idx: -28009 }, - { start: 0x80b1, end: 0x80b2, idx: -28010 }, - { start: 0x80b4, end: 0x80b4, idx: -28011 }, - { start: 0x80ba, end: 0x80ba, idx: -28016 }, - { start: 0x80c3, end: 0x80c4, idx: -28024 }, - { start: 0x80c6, end: 0x80c6, idx: -28025 }, - { start: 0x80cc, end: 0x80cc, idx: -28030 }, - { start: 0x80ce, end: 0x80ce, idx: -28031 }, - { start: 0x80d6, end: 0x80d6, idx: -28038 }, - { start: 0x80d9, end: 0x80db, idx: -28040 }, - { start: 0x80dd, end: 0x80de, idx: -28041 }, - { start: 0x80e1, end: 0x80e1, idx: -28043 }, - { start: 0x80e4, end: 0x80e5, idx: -28045 }, - { start: 0x80ef, end: 0x80ef, idx: -28054 }, - { start: 0x80f1, end: 0x80f1, idx: -28055 }, - { start: 0x80f4, end: 0x80f4, idx: -28057 }, - { start: 0x80f8, end: 0x80f8, idx: -28060 }, - { start: 0x80fc, end: 0x80fd, idx: -28063 }, - { start: 0x8102, end: 0x8102, idx: -28067 }, - { start: 0x8105, end: 0x810a, idx: -28069 }, - { start: 0x811a, end: 0x811b, idx: -28084 }, - { start: 0x8123, end: 0x8123, idx: -28091 }, - { start: 0x8129, end: 0x8129, idx: -28096 }, - { start: 0x812f, end: 0x812f, idx: -28101 }, - { start: 0x8131, end: 0x8131, idx: -28102 }, - { start: 0x8133, end: 0x8133, idx: -28103 }, - { start: 0x8139, end: 0x8139, idx: -28108 }, - { start: 0x813e, end: 0x813e, idx: -28112 }, - { start: 0x8141, end: 0x8141, idx: -28114 }, - { start: 0x8146, end: 0x8146, idx: -28118 }, - { start: 0x814b, end: 0x814b, idx: -28122 }, - { start: 0x814e, end: 0x814e, idx: -28124 }, - { start: 0x8150, end: 0x8151, idx: -28125 }, - { start: 0x8153, end: 0x8155, idx: -28126 }, - { start: 0x815f, end: 0x815f, idx: -28135 }, - { start: 0x8165, end: 0x8166, idx: -28140 }, - { start: 0x816b, end: 0x816b, idx: -28144 }, - { start: 0x816e, end: 0x816e, idx: -28146 }, - { start: 0x8170, end: 0x8171, idx: -28147 }, - { start: 0x8174, end: 0x8174, idx: -28149 }, - { start: 0x8178, end: 0x817a, idx: -28152 }, - { start: 0x817f, end: 0x8180, idx: -28156 }, - { start: 0x8182, end: 0x8183, idx: -28157 }, - { start: 0x8188, end: 0x8188, idx: -28161 }, - { start: 0x818a, end: 0x818a, idx: -28162 }, - { start: 0x818f, end: 0x818f, idx: -28166 }, - { start: 0x8193, end: 0x8193, idx: -28169 }, - { start: 0x8195, end: 0x8195, idx: -28170 }, - { start: 0x819a, end: 0x819a, idx: -28174 }, - { start: 0x819c, end: 0x819d, idx: -28175 }, - { start: 0x81a0, end: 0x81a0, idx: -28177 }, - { start: 0x81a3, end: 0x81a4, idx: -28179 }, - { start: 0x81a8, end: 0x81a9, idx: -28182 }, - { start: 0x81b0, end: 0x81b0, idx: -28188 }, - { start: 0x81b3, end: 0x81b3, idx: -28190 }, - { start: 0x81b5, end: 0x81b5, idx: -28191 }, - { start: 0x81b8, end: 0x81b8, idx: -28193 }, - { start: 0x81ba, end: 0x81ba, idx: -28194 }, - { start: 0x81bd, end: 0x81c0, idx: -28196 }, - { start: 0x81c2, end: 0x81c2, idx: -28197 }, - { start: 0x81c6, end: 0x81c6, idx: -28200 }, - { start: 0x81c8, end: 0x81c9, idx: -28201 }, - { start: 0x81cd, end: 0x81cd, idx: -28204 }, - { start: 0x81d1, end: 0x81d1, idx: -28207 }, - { start: 0x81d3, end: 0x81d3, idx: -28208 }, - { start: 0x81d8, end: 0x81da, idx: -28212 }, - { start: 0x81df, end: 0x81e0, idx: -28216 }, - { start: 0x81e3, end: 0x81e3, idx: -28218 }, - { start: 0x81e5, end: 0x81e5, idx: -28219 }, - { start: 0x81e7, end: 0x81e8, idx: -28220 }, - { start: 0x81ea, end: 0x81ea, idx: -28221 }, - { start: 0x81ed, end: 0x81ed, idx: -28223 }, - { start: 0x81f3, end: 0x81f4, idx: -28228 }, - { start: 0x81fa, end: 0x81fc, idx: -28233 }, - { start: 0x81fe, end: 0x81fe, idx: -28234 }, - { start: 0x8201, end: 0x8202, idx: -28236 }, - { start: 0x8205, end: 0x8205, idx: -28238 }, - { start: 0x8207, end: 0x820a, idx: -28239 }, - { start: 0x820c, end: 0x820e, idx: -28240 }, - { start: 0x8210, end: 0x8210, idx: -28241 }, - { start: 0x8212, end: 0x8212, idx: -28242 }, - { start: 0x8216, end: 0x8218, idx: -28245 }, - { start: 0x821b, end: 0x821c, idx: -28247 }, - { start: 0x821e, end: 0x821f, idx: -28248 }, - { start: 0x8229, end: 0x822c, idx: -28257 }, - { start: 0x822e, end: 0x822e, idx: -28258 }, - { start: 0x8233, end: 0x8233, idx: -28262 }, - { start: 0x8235, end: 0x8239, idx: -28263 }, - { start: 0x8240, end: 0x8240, idx: -28269 }, - { start: 0x8247, end: 0x8247, idx: -28275 }, - { start: 0x8258, end: 0x825a, idx: -28291 }, - { start: 0x825d, end: 0x825d, idx: -28293 }, - { start: 0x825f, end: 0x825f, idx: -28294 }, - { start: 0x8262, end: 0x8262, idx: -28296 }, - { start: 0x8264, end: 0x8264, idx: -28297 }, - { start: 0x8266, end: 0x8266, idx: -28298 }, - { start: 0x8268, end: 0x8268, idx: -28299 }, - { start: 0x826a, end: 0x826b, idx: -28300 }, - { start: 0x826e, end: 0x826f, idx: -28302 }, - { start: 0x8271, end: 0x8272, idx: -28303 }, - { start: 0x8276, end: 0x8278, idx: -28306 }, - { start: 0x827e, end: 0x827e, idx: -28311 }, - { start: 0x828b, end: 0x828b, idx: -28323 }, - { start: 0x828d, end: 0x828d, idx: -28324 }, - { start: 0x8292, end: 0x8292, idx: -28328 }, - { start: 0x8299, end: 0x8299, idx: -28334 }, - { start: 0x829d, end: 0x829d, idx: -28337 }, - { start: 0x829f, end: 0x829f, idx: -28338 }, - { start: 0x82a5, end: 0x82a6, idx: -28343 }, - { start: 0x82ab, end: 0x82ad, idx: -28347 }, - { start: 0x82af, end: 0x82af, idx: -28348 }, - { start: 0x82b1, end: 0x82b1, idx: -28349 }, - { start: 0x82b3, end: 0x82b3, idx: -28350 }, - { start: 0x82b8, end: 0x82b9, idx: -28354 }, - { start: 0x82bb, end: 0x82bb, idx: -28355 }, - { start: 0x82bd, end: 0x82bd, idx: -28356 }, - { start: 0x82c5, end: 0x82c5, idx: -28363 }, - { start: 0x82d1, end: 0x82d4, idx: -28374 }, - { start: 0x82d7, end: 0x82d7, idx: -28376 }, - { start: 0x82d9, end: 0x82d9, idx: -28377 }, - { start: 0x82db, end: 0x82dc, idx: -28378 }, - { start: 0x82de, end: 0x82df, idx: -28379 }, - { start: 0x82e1, end: 0x82e1, idx: -28380 }, - { start: 0x82e3, end: 0x82e3, idx: -28381 }, - { start: 0x82e5, end: 0x82e7, idx: -28382 }, - { start: 0x82eb, end: 0x82eb, idx: -28385 }, - { start: 0x82f1, end: 0x82f1, idx: -28390 }, - { start: 0x82f3, end: 0x82f4, idx: -28391 }, - { start: 0x82f9, end: 0x82fb, idx: -28395 }, - { start: 0x8301, end: 0x8306, idx: -28400 }, - { start: 0x8309, end: 0x8309, idx: -28402 }, - { start: 0x830e, end: 0x830e, idx: -28406 }, - { start: 0x8316, end: 0x8318, idx: -28413 }, - { start: 0x831c, end: 0x831c, idx: -28416 }, - { start: 0x8323, end: 0x8323, idx: -28422 }, - { start: 0x8328, end: 0x8328, idx: -28426 }, - { start: 0x832b, end: 0x832b, idx: -28428 }, - { start: 0x832f, end: 0x832f, idx: -28431 }, - { start: 0x8331, end: 0x8332, idx: -28432 }, - { start: 0x8334, end: 0x8336, idx: -28433 }, - { start: 0x8338, end: 0x8339, idx: -28434 }, - { start: 0x8340, end: 0x8340, idx: -28440 }, - { start: 0x8345, end: 0x8346, idx: -28444 }, - { start: 0x8349, end: 0x834a, idx: -28446 }, - { start: 0x834f, end: 0x8350, idx: -28450 }, - { start: 0x8352, end: 0x8352, idx: -28451 }, - { start: 0x8358, end: 0x8358, idx: -28456 }, - { start: 0x8362, end: 0x8362, idx: -28465 }, - { start: 0x8373, end: 0x8373, idx: -28481 }, - { start: 0x8375, end: 0x8375, idx: -28482 }, - { start: 0x8377, end: 0x8377, idx: -28483 }, - { start: 0x837b, end: 0x837c, idx: -28486 }, - { start: 0x837f, end: 0x837f, idx: -28488 }, - { start: 0x8385, end: 0x8385, idx: -28493 }, - { start: 0x8387, end: 0x8387, idx: -28494 }, - { start: 0x8389, end: 0x838a, idx: -28495 }, - { start: 0x838e, end: 0x838e, idx: -28498 }, - { start: 0x8393, end: 0x8393, idx: -28502 }, - { start: 0x8396, end: 0x8396, idx: -28504 }, - { start: 0x839a, end: 0x839a, idx: -28507 }, - { start: 0x839e, end: 0x83a0, idx: -28510 }, - { start: 0x83a2, end: 0x83a2, idx: -28511 }, - { start: 0x83a8, end: 0x83a8, idx: -28516 }, - { start: 0x83aa, end: 0x83ab, idx: -28517 }, - { start: 0x83b1, end: 0x83b1, idx: -28522 }, - { start: 0x83b5, end: 0x83b5, idx: -28525 }, - { start: 0x83bd, end: 0x83bd, idx: -28532 }, - { start: 0x83c1, end: 0x83c1, idx: -28535 }, - { start: 0x83c5, end: 0x83c5, idx: -28538 }, - { start: 0x83c7, end: 0x83c7, idx: -28539 }, - { start: 0x83ca, end: 0x83ca, idx: -28541 }, - { start: 0x83cc, end: 0x83cc, idx: -28542 }, - { start: 0x83ce, end: 0x83ce, idx: -28543 }, - { start: 0x83d3, end: 0x83d3, idx: -28547 }, - { start: 0x83d6, end: 0x83d6, idx: -28549 }, - { start: 0x83d8, end: 0x83d8, idx: -28550 }, - { start: 0x83dc, end: 0x83dc, idx: -28553 }, - { start: 0x83df, end: 0x83e0, idx: -28555 }, - { start: 0x83e9, end: 0x83e9, idx: -28563 }, - { start: 0x83eb, end: 0x83eb, idx: -28564 }, - { start: 0x83ef, end: 0x83f2, idx: -28567 }, - { start: 0x83f4, end: 0x83f4, idx: -28568 }, - { start: 0x83f6, end: 0x83f7, idx: -28569 }, - { start: 0x83fb, end: 0x83fb, idx: -28572 }, - { start: 0x83fd, end: 0x83fd, idx: -28573 }, - { start: 0x8403, end: 0x8404, idx: -28578 }, - { start: 0x8407, end: 0x8407, idx: -28580 }, - { start: 0x840a, end: 0x840e, idx: -28582 }, - { start: 0x8413, end: 0x8413, idx: -28586 }, - { start: 0x8420, end: 0x8420, idx: -28598 }, - { start: 0x8422, end: 0x8422, idx: -28599 }, - { start: 0x8429, end: 0x842a, idx: -28605 }, - { start: 0x842c, end: 0x842c, idx: -28606 }, - { start: 0x8431, end: 0x8431, idx: -28610 }, - { start: 0x8435, end: 0x8435, idx: -28613 }, - { start: 0x8438, end: 0x8438, idx: -28615 }, - { start: 0x843c, end: 0x843d, idx: -28618 }, - { start: 0x8446, end: 0x8446, idx: -28626 }, - { start: 0x8448, end: 0x8449, idx: -28627 }, - { start: 0x844e, end: 0x844e, idx: -28631 }, - { start: 0x8457, end: 0x8457, idx: -28639 }, - { start: 0x845b, end: 0x845b, idx: -28642 }, - { start: 0x8461, end: 0x8463, idx: -28647 }, - { start: 0x8466, end: 0x8466, idx: -28649 }, - { start: 0x8469, end: 0x8469, idx: -28651 }, - { start: 0x846b, end: 0x846f, idx: -28652 }, - { start: 0x8471, end: 0x8471, idx: -28653 }, - { start: 0x8475, end: 0x8475, idx: -28656 }, - { start: 0x8477, end: 0x8477, idx: -28657 }, - { start: 0x8479, end: 0x847a, idx: -28658 }, - { start: 0x8482, end: 0x8482, idx: -28665 }, - { start: 0x8484, end: 0x8484, idx: -28666 }, - { start: 0x848b, end: 0x848b, idx: -28672 }, - { start: 0x8490, end: 0x8490, idx: -28676 }, - { start: 0x8494, end: 0x8494, idx: -28679 }, - { start: 0x8499, end: 0x8499, idx: -28683 }, - { start: 0x849c, end: 0x849c, idx: -28685 }, - { start: 0x849f, end: 0x849f, idx: -28687 }, - { start: 0x84a1, end: 0x84a1, idx: -28688 }, - { start: 0x84ad, end: 0x84ad, idx: -28699 }, - { start: 0x84b2, end: 0x84b2, idx: -28703 }, - { start: 0x84b4, end: 0x84b4, idx: -28704 }, - { start: 0x84b8, end: 0x84b9, idx: -28707 }, - { start: 0x84bb, end: 0x84bc, idx: -28708 }, - { start: 0x84bf, end: 0x84bf, idx: -28710 }, - { start: 0x84c1, end: 0x84c1, idx: -28711 }, - { start: 0x84c4, end: 0x84c4, idx: -28713 }, - { start: 0x84c6, end: 0x84c6, idx: -28714 }, - { start: 0x84c9, end: 0x84cb, idx: -28716 }, - { start: 0x84cd, end: 0x84cd, idx: -28717 }, - { start: 0x84d0, end: 0x84d1, idx: -28719 }, - { start: 0x84d6, end: 0x84d6, idx: -28723 }, - { start: 0x84d9, end: 0x84da, idx: -28725 }, - { start: 0x84dc, end: 0x84dc, idx: -28726 }, - { start: 0x84ec, end: 0x84ec, idx: -28741 }, - { start: 0x84ee, end: 0x84ee, idx: -28742 }, - { start: 0x84f4, end: 0x84f4, idx: -28747 }, - { start: 0x84fc, end: 0x84fc, idx: -28754 }, - { start: 0x84ff, end: 0x8500, idx: -28756 }, - { start: 0x8506, end: 0x8506, idx: -28761 }, - { start: 0x8511, end: 0x8511, idx: -28771 }, - { start: 0x8513, end: 0x8515, idx: -28772 }, - { start: 0x8517, end: 0x8518, idx: -28773 }, - { start: 0x851a, end: 0x851a, idx: -28774 }, - { start: 0x851f, end: 0x851f, idx: -28778 }, - { start: 0x8521, end: 0x8521, idx: -28779 }, - { start: 0x8523, end: 0x8523, idx: -28780 }, - { start: 0x8526, end: 0x8526, idx: -28782 }, - { start: 0x852c, end: 0x852d, idx: -28787 }, - { start: 0x8535, end: 0x8535, idx: -28794 }, - { start: 0x853d, end: 0x853d, idx: -28801 }, - { start: 0x8540, end: 0x8541, idx: -28803 }, - { start: 0x8543, end: 0x8543, idx: -28804 }, - { start: 0x8548, end: 0x854b, idx: -28808 }, - { start: 0x854e, end: 0x854e, idx: -28810 }, - { start: 0x8553, end: 0x8553, idx: -28814 }, - { start: 0x8555, end: 0x8555, idx: -28815 }, - { start: 0x8557, end: 0x855a, idx: -28816 }, - { start: 0x8563, end: 0x8563, idx: -28824 }, - { start: 0x8568, end: 0x856b, idx: -28828 }, - { start: 0x856d, end: 0x856d, idx: -28829 }, - { start: 0x8577, end: 0x8577, idx: -28838 }, - { start: 0x857e, end: 0x857e, idx: -28844 }, - { start: 0x8580, end: 0x8580, idx: -28845 }, - { start: 0x8584, end: 0x8584, idx: -28848 }, - { start: 0x8587, end: 0x8588, idx: -28850 }, - { start: 0x858a, end: 0x858a, idx: -28851 }, - { start: 0x8590, end: 0x8591, idx: -28856 }, - { start: 0x8594, end: 0x8594, idx: -28858 }, - { start: 0x8597, end: 0x8597, idx: -28860 }, - { start: 0x8599, end: 0x8599, idx: -28861 }, - { start: 0x859b, end: 0x859c, idx: -28862 }, - { start: 0x85a4, end: 0x85a4, idx: -28869 }, - { start: 0x85a6, end: 0x85a6, idx: -28870 }, - { start: 0x85a8, end: 0x85ac, idx: -28871 }, - { start: 0x85ae, end: 0x85b0, idx: -28872 }, - { start: 0x85b9, end: 0x85ba, idx: -28880 }, - { start: 0x85c1, end: 0x85c1, idx: -28886 }, - { start: 0x85c9, end: 0x85c9, idx: -28893 }, - { start: 0x85cd, end: 0x85cd, idx: -28896 }, - { start: 0x85cf, end: 0x85d0, idx: -28897 }, - { start: 0x85d5, end: 0x85d5, idx: -28901 }, - { start: 0x85dc, end: 0x85dd, idx: -28907 }, - { start: 0x85e4, end: 0x85e5, idx: -28913 }, - { start: 0x85e9, end: 0x85ea, idx: -28916 }, - { start: 0x85f7, end: 0x85f7, idx: -28928 }, - { start: 0x85f9, end: 0x85fb, idx: -28929 }, - { start: 0x85fe, end: 0x85fe, idx: -28931 }, - { start: 0x8602, end: 0x8602, idx: -28934 }, - { start: 0x8606, end: 0x8607, idx: -28937 }, - { start: 0x860a, end: 0x860b, idx: -28939 }, - { start: 0x8613, end: 0x8613, idx: -28946 }, - { start: 0x8616, end: 0x8617, idx: -28948 }, - { start: 0x861a, end: 0x861a, idx: -28950 }, - { start: 0x8622, end: 0x8622, idx: -28957 }, - { start: 0x862d, end: 0x862d, idx: -28967 }, - { start: 0x862f, end: 0x8630, idx: -28968 }, - { start: 0x863f, end: 0x863f, idx: -28982 }, - { start: 0x864d, end: 0x864e, idx: -28995 }, - { start: 0x8650, end: 0x8650, idx: -28996 }, - { start: 0x8654, end: 0x8655, idx: -28999 }, - { start: 0x865a, end: 0x865a, idx: -29003 }, - { start: 0x865c, end: 0x865c, idx: -29004 }, - { start: 0x865e, end: 0x865f, idx: -29005 }, - { start: 0x8667, end: 0x8667, idx: -29012 }, - { start: 0x866b, end: 0x866b, idx: -29015 }, - { start: 0x8671, end: 0x8671, idx: -29020 }, - { start: 0x8679, end: 0x8679, idx: -29027 }, - { start: 0x867b, end: 0x867b, idx: -29028 }, - { start: 0x868a, end: 0x868c, idx: -29042 }, - { start: 0x8693, end: 0x8693, idx: -29048 }, - { start: 0x8695, end: 0x8695, idx: -29049 }, - { start: 0x86a3, end: 0x86a4, idx: -29062 }, - { start: 0x86a9, end: 0x86ab, idx: -29066 }, - { start: 0x86af, end: 0x86b0, idx: -29069 }, - { start: 0x86b6, end: 0x86b6, idx: -29074 }, - { start: 0x86c4, end: 0x86c4, idx: -29087 }, - { start: 0x86c6, end: 0x86c7, idx: -29088 }, - { start: 0x86c9, end: 0x86c9, idx: -29089 }, - { start: 0x86cb, end: 0x86cb, idx: -29090 }, - { start: 0x86cd, end: 0x86ce, idx: -29091 }, - { start: 0x86d4, end: 0x86d4, idx: -29096 }, - { start: 0x86d9, end: 0x86d9, idx: -29100 }, - { start: 0x86db, end: 0x86db, idx: -29101 }, - { start: 0x86de, end: 0x86df, idx: -29103 }, - { start: 0x86e4, end: 0x86e4, idx: -29107 }, - { start: 0x86e9, end: 0x86e9, idx: -29111 }, - { start: 0x86ec, end: 0x86ef, idx: -29113 }, - { start: 0x86f8, end: 0x86f9, idx: -29121 }, - { start: 0x86fb, end: 0x86fb, idx: -29122 }, - { start: 0x86fe, end: 0x86fe, idx: -29124 }, - { start: 0x8700, end: 0x8700, idx: -29125 }, - { start: 0x8702, end: 0x8703, idx: -29126 }, - { start: 0x8706, end: 0x8706, idx: -29128 }, - { start: 0x8708, end: 0x870a, idx: -29129 }, - { start: 0x870d, end: 0x870d, idx: -29131 }, - { start: 0x8711, end: 0x8712, idx: -29134 }, - { start: 0x8718, end: 0x8718, idx: -29139 }, - { start: 0x871a, end: 0x871a, idx: -29140 }, - { start: 0x871c, end: 0x871c, idx: -29141 }, - { start: 0x8725, end: 0x8725, idx: -29149 }, - { start: 0x8729, end: 0x8729, idx: -29152 }, - { start: 0x8734, end: 0x8734, idx: -29162 }, - { start: 0x8737, end: 0x8737, idx: -29164 }, - { start: 0x873b, end: 0x873b, idx: -29167 }, - { start: 0x873f, end: 0x873f, idx: -29170 }, - { start: 0x8749, end: 0x8749, idx: -29179 }, - { start: 0x874b, end: 0x874c, idx: -29180 }, - { start: 0x874e, end: 0x874e, idx: -29181 }, - { start: 0x8753, end: 0x8753, idx: -29185 }, - { start: 0x8755, end: 0x8755, idx: -29186 }, - { start: 0x8757, end: 0x8757, idx: -29187 }, - { start: 0x8759, end: 0x8759, idx: -29188 }, - { start: 0x875f, end: 0x8760, idx: -29193 }, - { start: 0x8763, end: 0x8763, idx: -29195 }, - { start: 0x8766, end: 0x8766, idx: -29197 }, - { start: 0x8768, end: 0x8768, idx: -29198 }, - { start: 0x876a, end: 0x876a, idx: -29199 }, - { start: 0x876e, end: 0x876e, idx: -29202 }, - { start: 0x8774, end: 0x8774, idx: -29207 }, - { start: 0x8776, end: 0x8776, idx: -29208 }, - { start: 0x8778, end: 0x8778, idx: -29209 }, - { start: 0x877f, end: 0x877f, idx: -29215 }, - { start: 0x8782, end: 0x8782, idx: -29217 }, - { start: 0x878d, end: 0x878d, idx: -29227 }, - { start: 0x879f, end: 0x879f, idx: -29244 }, - { start: 0x87a2, end: 0x87a2, idx: -29246 }, - { start: 0x87ab, end: 0x87ab, idx: -29254 }, - { start: 0x87af, end: 0x87af, idx: -29257 }, - { start: 0x87b3, end: 0x87b3, idx: -29260 }, - { start: 0x87ba, end: 0x87bb, idx: -29266 }, - { start: 0x87bd, end: 0x87bd, idx: -29267 }, - { start: 0x87c0, end: 0x87c0, idx: -29269 }, - { start: 0x87c4, end: 0x87c4, idx: -29272 }, - { start: 0x87c6, end: 0x87c7, idx: -29273 }, - { start: 0x87cb, end: 0x87cb, idx: -29276 }, - { start: 0x87d0, end: 0x87d0, idx: -29280 }, - { start: 0x87d2, end: 0x87d2, idx: -29281 }, - { start: 0x87e0, end: 0x87e0, idx: -29294 }, - { start: 0x87ec, end: 0x87ec, idx: -29305 }, - { start: 0x87ef, end: 0x87ef, idx: -29307 }, - { start: 0x87f2, end: 0x87f2, idx: -29309 }, - { start: 0x87f6, end: 0x87f7, idx: -29312 }, - { start: 0x87f9, end: 0x87f9, idx: -29313 }, - { start: 0x87fb, end: 0x87fb, idx: -29314 }, - { start: 0x87fe, end: 0x87fe, idx: -29316 }, - { start: 0x8805, end: 0x8805, idx: -29322 }, - { start: 0x8807, end: 0x8807, idx: -29323 }, - { start: 0x880d, end: 0x880f, idx: -29328 }, - { start: 0x8811, end: 0x8811, idx: -29329 }, - { start: 0x8815, end: 0x8816, idx: -29332 }, - { start: 0x881f, end: 0x881f, idx: -29340 }, - { start: 0x8821, end: 0x8823, idx: -29341 }, - { start: 0x8827, end: 0x8827, idx: -29344 }, - { start: 0x8831, end: 0x8831, idx: -29353 }, - { start: 0x8836, end: 0x8836, idx: -29357 }, - { start: 0x8839, end: 0x8839, idx: -29359 }, - { start: 0x883b, end: 0x883b, idx: -29360 }, - { start: 0x8840, end: 0x8840, idx: -29364 }, - { start: 0x8842, end: 0x8842, idx: -29365 }, - { start: 0x8844, end: 0x8844, idx: -29366 }, - { start: 0x8846, end: 0x8846, idx: -29367 }, - { start: 0x884c, end: 0x884d, idx: -29372 }, - { start: 0x8852, end: 0x8853, idx: -29376 }, - { start: 0x8857, end: 0x8857, idx: -29379 }, - { start: 0x8859, end: 0x8859, idx: -29380 }, - { start: 0x885b, end: 0x885b, idx: -29381 }, - { start: 0x885d, end: 0x885e, idx: -29382 }, - { start: 0x8861, end: 0x8863, idx: -29384 }, - { start: 0x8868, end: 0x8868, idx: -29388 }, - { start: 0x886b, end: 0x886b, idx: -29390 }, - { start: 0x8870, end: 0x8870, idx: -29394 }, - { start: 0x8872, end: 0x8872, idx: -29395 }, - { start: 0x8875, end: 0x8875, idx: -29397 }, - { start: 0x8877, end: 0x8877, idx: -29398 }, - { start: 0x887d, end: 0x887f, idx: -29403 }, - { start: 0x8881, end: 0x8882, idx: -29404 }, - { start: 0x8888, end: 0x8888, idx: -29409 }, - { start: 0x888b, end: 0x888b, idx: -29411 }, - { start: 0x888d, end: 0x888d, idx: -29412 }, - { start: 0x8892, end: 0x8892, idx: -29416 }, - { start: 0x8896, end: 0x8897, idx: -29419 }, - { start: 0x8899, end: 0x8899, idx: -29420 }, - { start: 0x889e, end: 0x889e, idx: -29424 }, - { start: 0x88a2, end: 0x88a2, idx: -29427 }, - { start: 0x88a4, end: 0x88a4, idx: -29428 }, - { start: 0x88ab, end: 0x88ab, idx: -29434 }, - { start: 0x88ae, end: 0x88ae, idx: -29436 }, - { start: 0x88b0, end: 0x88b1, idx: -29437 }, - { start: 0x88b4, end: 0x88b5, idx: -29439 }, - { start: 0x88b7, end: 0x88b7, idx: -29440 }, - { start: 0x88bf, end: 0x88bf, idx: -29447 }, - { start: 0x88c1, end: 0x88c5, idx: -29448 }, - { start: 0x88cf, end: 0x88cf, idx: -29457 }, - { start: 0x88d4, end: 0x88d5, idx: -29461 }, - { start: 0x88d8, end: 0x88d9, idx: -29463 }, - { start: 0x88dc, end: 0x88dd, idx: -29465 }, - { start: 0x88df, end: 0x88df, idx: -29466 }, - { start: 0x88e1, end: 0x88e1, idx: -29467 }, - { start: 0x88e8, end: 0x88e8, idx: -29473 }, - { start: 0x88f2, end: 0x88f5, idx: -29482 }, - { start: 0x88f8, end: 0x88f9, idx: -29484 }, - { start: 0x88fc, end: 0x88fe, idx: -29486 }, - { start: 0x8902, end: 0x8902, idx: -29489 }, - { start: 0x8904, end: 0x8904, idx: -29490 }, - { start: 0x8907, end: 0x8907, idx: -29492 }, - { start: 0x890a, end: 0x890a, idx: -29494 }, - { start: 0x890c, end: 0x890c, idx: -29495 }, - { start: 0x8910, end: 0x8910, idx: -29498 }, - { start: 0x8912, end: 0x8913, idx: -29499 }, - { start: 0x891c, end: 0x891e, idx: -29507 }, - { start: 0x8925, end: 0x8925, idx: -29513 }, - { start: 0x892a, end: 0x892b, idx: -29517 }, - { start: 0x8936, end: 0x8936, idx: -29527 }, - { start: 0x8938, end: 0x8938, idx: -29528 }, - { start: 0x893b, end: 0x893b, idx: -29530 }, - { start: 0x8941, end: 0x8941, idx: -29535 }, - { start: 0x8943, end: 0x8944, idx: -29536 }, - { start: 0x894c, end: 0x894d, idx: -29543 }, - { start: 0x8956, end: 0x8956, idx: -29551 }, - { start: 0x895e, end: 0x8960, idx: -29558 }, - { start: 0x8964, end: 0x8964, idx: -29561 }, - { start: 0x8966, end: 0x8966, idx: -29562 }, - { start: 0x896a, end: 0x896a, idx: -29565 }, - { start: 0x896d, end: 0x896d, idx: -29567 }, - { start: 0x896f, end: 0x896f, idx: -29568 }, - { start: 0x8972, end: 0x8972, idx: -29570 }, - { start: 0x8974, end: 0x8974, idx: -29571 }, - { start: 0x8977, end: 0x8977, idx: -29573 }, - { start: 0x897e, end: 0x897f, idx: -29579 }, - { start: 0x8981, end: 0x8981, idx: -29580 }, - { start: 0x8983, end: 0x8983, idx: -29581 }, - { start: 0x8986, end: 0x8988, idx: -29583 }, - { start: 0x898a, end: 0x898b, idx: -29584 }, - { start: 0x898f, end: 0x898f, idx: -29587 }, - { start: 0x8993, end: 0x8993, idx: -29590 }, - { start: 0x8996, end: 0x8998, idx: -29592 }, - { start: 0x899a, end: 0x899a, idx: -29593 }, - { start: 0x89a1, end: 0x89a1, idx: -29599 }, - { start: 0x89a6, end: 0x89a7, idx: -29603 }, - { start: 0x89a9, end: 0x89aa, idx: -29604 }, - { start: 0x89ac, end: 0x89ac, idx: -29605 }, - { start: 0x89af, end: 0x89af, idx: -29607 }, - { start: 0x89b2, end: 0x89b3, idx: -29609 }, - { start: 0x89ba, end: 0x89ba, idx: -29615 }, - { start: 0x89bd, end: 0x89bd, idx: -29617 }, - { start: 0x89bf, end: 0x89c0, idx: -29618 }, - { start: 0x89d2, end: 0x89d2, idx: -29635 }, - { start: 0x89da, end: 0x89da, idx: -29642 }, - { start: 0x89dc, end: 0x89dd, idx: -29643 }, - { start: 0x89e3, end: 0x89e3, idx: -29648 }, - { start: 0x89e6, end: 0x89e7, idx: -29650 }, - { start: 0x89f4, end: 0x89f4, idx: -29662 }, - { start: 0x89f8, end: 0x89f8, idx: -29665 }, - { start: 0x8a00, end: 0x8a00, idx: -29672 }, - { start: 0x8a02, end: 0x8a03, idx: -29673 }, - { start: 0x8a08, end: 0x8a08, idx: -29677 }, - { start: 0x8a0a, end: 0x8a0a, idx: -29678 }, - { start: 0x8a0c, end: 0x8a0c, idx: -29679 }, - { start: 0x8a0e, end: 0x8a0e, idx: -29680 }, - { start: 0x8a10, end: 0x8a10, idx: -29681 }, - { start: 0x8a12, end: 0x8a13, idx: -29682 }, - { start: 0x8a16, end: 0x8a18, idx: -29684 }, - { start: 0x8a1b, end: 0x8a1b, idx: -29686 }, - { start: 0x8a1d, end: 0x8a1d, idx: -29687 }, - { start: 0x8a1f, end: 0x8a1f, idx: -29688 }, - { start: 0x8a23, end: 0x8a23, idx: -29691 }, - { start: 0x8a25, end: 0x8a25, idx: -29692 }, - { start: 0x8a2a, end: 0x8a2a, idx: -29696 }, - { start: 0x8a2d, end: 0x8a2d, idx: -29698 }, - { start: 0x8a31, end: 0x8a31, idx: -29701 }, - { start: 0x8a33, end: 0x8a34, idx: -29702 }, - { start: 0x8a36, end: 0x8a37, idx: -29703 }, - { start: 0x8a3a, end: 0x8a3c, idx: -29705 }, - { start: 0x8a41, end: 0x8a41, idx: -29709 }, - { start: 0x8a46, end: 0x8a46, idx: -29713 }, - { start: 0x8a48, end: 0x8a48, idx: -29714 }, - { start: 0x8a50, end: 0x8a52, idx: -29721 }, - { start: 0x8a54, end: 0x8a55, idx: -29722 }, - { start: 0x8a5b, end: 0x8a5b, idx: -29727 }, - { start: 0x8a5e, end: 0x8a5e, idx: -29729 }, - { start: 0x8a60, end: 0x8a60, idx: -29730 }, - { start: 0x8a62, end: 0x8a63, idx: -29731 }, - { start: 0x8a66, end: 0x8a66, idx: -29733 }, - { start: 0x8a69, end: 0x8a69, idx: -29735 }, - { start: 0x8a6b, end: 0x8a6e, idx: -29736 }, - { start: 0x8a70, end: 0x8a73, idx: -29737 }, - { start: 0x8a79, end: 0x8a79, idx: -29742 }, - { start: 0x8a7c, end: 0x8a7c, idx: -29744 }, - { start: 0x8a82, end: 0x8a82, idx: -29749 }, - { start: 0x8a84, end: 0x8a85, idx: -29750 }, - { start: 0x8a87, end: 0x8a87, idx: -29751 }, - { start: 0x8a89, end: 0x8a89, idx: -29752 }, - { start: 0x8a8c, end: 0x8a8d, idx: -29754 }, - { start: 0x8a91, end: 0x8a91, idx: -29757 }, - { start: 0x8a93, end: 0x8a93, idx: -29758 }, - { start: 0x8a95, end: 0x8a95, idx: -29759 }, - { start: 0x8a98, end: 0x8a98, idx: -29761 }, - { start: 0x8a9a, end: 0x8a9a, idx: -29762 }, - { start: 0x8a9e, end: 0x8a9e, idx: -29765 }, - { start: 0x8aa0, end: 0x8aa1, idx: -29766 }, - { start: 0x8aa3, end: 0x8aa8, idx: -29767 }, - { start: 0x8aac, end: 0x8aad, idx: -29770 }, - { start: 0x8ab0, end: 0x8ab0, idx: -29772 }, - { start: 0x8ab2, end: 0x8ab2, idx: -29773 }, - { start: 0x8ab9, end: 0x8ab9, idx: -29779 }, - { start: 0x8abc, end: 0x8abc, idx: -29781 }, - { start: 0x8abe, end: 0x8abf, idx: -29782 }, - { start: 0x8ac2, end: 0x8ac2, idx: -29784 }, - { start: 0x8ac4, end: 0x8ac4, idx: -29785 }, - { start: 0x8ac7, end: 0x8ac7, idx: -29787 }, - { start: 0x8acb, end: 0x8acd, idx: -29790 }, - { start: 0x8acf, end: 0x8acf, idx: -29791 }, - { start: 0x8ad2, end: 0x8ad2, idx: -29793 }, - { start: 0x8ad6, end: 0x8ad6, idx: -29796 }, - { start: 0x8ada, end: 0x8adc, idx: -29799 }, - { start: 0x8ade, end: 0x8ae2, idx: -29800 }, - { start: 0x8ae4, end: 0x8ae4, idx: -29801 }, - { start: 0x8ae6, end: 0x8ae7, idx: -29802 }, - { start: 0x8aeb, end: 0x8aeb, idx: -29805 }, - { start: 0x8aed, end: 0x8aee, idx: -29806 }, - { start: 0x8af1, end: 0x8af1, idx: -29808 }, - { start: 0x8af3, end: 0x8af3, idx: -29809 }, - { start: 0x8af6, end: 0x8af8, idx: -29811 }, - { start: 0x8afa, end: 0x8afa, idx: -29812 }, - { start: 0x8afe, end: 0x8afe, idx: -29815 }, - { start: 0x8b00, end: 0x8b02, idx: -29816 }, - { start: 0x8b04, end: 0x8b04, idx: -29817 }, - { start: 0x8b07, end: 0x8b07, idx: -29819 }, - { start: 0x8b0c, end: 0x8b0c, idx: -29823 }, - { start: 0x8b0e, end: 0x8b0e, idx: -29824 }, - { start: 0x8b10, end: 0x8b10, idx: -29825 }, - { start: 0x8b14, end: 0x8b14, idx: -29828 }, - { start: 0x8b16, end: 0x8b17, idx: -29829 }, - { start: 0x8b19, end: 0x8b1b, idx: -29830 }, - { start: 0x8b1d, end: 0x8b1d, idx: -29831 }, - { start: 0x8b20, end: 0x8b21, idx: -29833 }, - { start: 0x8b26, end: 0x8b26, idx: -29837 }, - { start: 0x8b28, end: 0x8b28, idx: -29838 }, - { start: 0x8b2b, end: 0x8b2c, idx: -29840 }, - { start: 0x8b33, end: 0x8b33, idx: -29846 }, - { start: 0x8b39, end: 0x8b39, idx: -29851 }, - { start: 0x8b3e, end: 0x8b3e, idx: -29855 }, - { start: 0x8b41, end: 0x8b41, idx: -29857 }, - { start: 0x8b49, end: 0x8b49, idx: -29864 }, - { start: 0x8b4c, end: 0x8b4c, idx: -29866 }, - { start: 0x8b4e, end: 0x8b4f, idx: -29867 }, - { start: 0x8b53, end: 0x8b53, idx: -29870 }, - { start: 0x8b56, end: 0x8b56, idx: -29872 }, - { start: 0x8b58, end: 0x8b58, idx: -29873 }, - { start: 0x8b5a, end: 0x8b5c, idx: -29874 }, - { start: 0x8b5f, end: 0x8b5f, idx: -29876 }, - { start: 0x8b66, end: 0x8b66, idx: -29882 }, - { start: 0x8b6b, end: 0x8b6c, idx: -29886 }, - { start: 0x8b6f, end: 0x8b72, idx: -29888 }, - { start: 0x8b74, end: 0x8b74, idx: -29889 }, - { start: 0x8b77, end: 0x8b77, idx: -29891 }, - { start: 0x8b7d, end: 0x8b7d, idx: -29896 }, - { start: 0x8b7f, end: 0x8b80, idx: -29897 }, - { start: 0x8b83, end: 0x8b83, idx: -29899 }, - { start: 0x8b8a, end: 0x8b8a, idx: -29905 }, - { start: 0x8b8c, end: 0x8b8c, idx: -29906 }, - { start: 0x8b8e, end: 0x8b8e, idx: -29907 }, - { start: 0x8b90, end: 0x8b90, idx: -29908 }, - { start: 0x8b92, end: 0x8b93, idx: -29909 }, - { start: 0x8b96, end: 0x8b96, idx: -29911 }, - { start: 0x8b99, end: 0x8b9a, idx: -29913 }, - { start: 0x8c37, end: 0x8c37, idx: -30069 }, - { start: 0x8c3a, end: 0x8c3a, idx: -30071 }, - { start: 0x8c3f, end: 0x8c3f, idx: -30075 }, - { start: 0x8c41, end: 0x8c41, idx: -30076 }, - { start: 0x8c46, end: 0x8c46, idx: -30080 }, - { start: 0x8c48, end: 0x8c48, idx: -30081 }, - { start: 0x8c4a, end: 0x8c4a, idx: -30082 }, - { start: 0x8c4c, end: 0x8c4c, idx: -30083 }, - { start: 0x8c4e, end: 0x8c4e, idx: -30084 }, - { start: 0x8c50, end: 0x8c50, idx: -30085 }, - { start: 0x8c55, end: 0x8c55, idx: -30089 }, - { start: 0x8c5a, end: 0x8c5a, idx: -30093 }, - { start: 0x8c61, end: 0x8c62, idx: -30099 }, - { start: 0x8c6a, end: 0x8c6c, idx: -30106 }, - { start: 0x8c78, end: 0x8c7a, idx: -30117 }, - { start: 0x8c7c, end: 0x8c7c, idx: -30118 }, - { start: 0x8c82, end: 0x8c82, idx: -30123 }, - { start: 0x8c85, end: 0x8c85, idx: -30125 }, - { start: 0x8c89, end: 0x8c8a, idx: -30128 }, - { start: 0x8c8c, end: 0x8c8e, idx: -30129 }, - { start: 0x8c94, end: 0x8c94, idx: -30134 }, - { start: 0x8c98, end: 0x8c98, idx: -30137 }, - { start: 0x8c9d, end: 0x8c9e, idx: -30141 }, - { start: 0x8ca0, end: 0x8ca2, idx: -30142 }, - { start: 0x8ca7, end: 0x8cb0, idx: -30146 }, - { start: 0x8cb2, end: 0x8cb4, idx: -30147 }, - { start: 0x8cb6, end: 0x8cb8, idx: -30148 }, - { start: 0x8cbb, end: 0x8cbd, idx: -30150 }, - { start: 0x8cbf, end: 0x8cc4, idx: -30151 }, - { start: 0x8cc7, end: 0x8cc8, idx: -30153 }, - { start: 0x8cca, end: 0x8cca, idx: -30154 }, - { start: 0x8ccd, end: 0x8cce, idx: -30156 }, - { start: 0x8cd1, end: 0x8cd1, idx: -30158 }, - { start: 0x8cd3, end: 0x8cd3, idx: -30159 }, - { start: 0x8cda, end: 0x8cdc, idx: -30165 }, - { start: 0x8cde, end: 0x8cde, idx: -30166 }, - { start: 0x8ce0, end: 0x8ce0, idx: -30167 }, - { start: 0x8ce2, end: 0x8ce4, idx: -30168 }, - { start: 0x8ce6, end: 0x8ce6, idx: -30169 }, - { start: 0x8cea, end: 0x8cea, idx: -30172 }, - { start: 0x8ced, end: 0x8ced, idx: -30174 }, - { start: 0x8cf0, end: 0x8cf0, idx: -30176 }, - { start: 0x8cf4, end: 0x8cf4, idx: -30179 }, - { start: 0x8cfa, end: 0x8cfd, idx: -30184 }, - { start: 0x8d04, end: 0x8d05, idx: -30190 }, - { start: 0x8d07, end: 0x8d08, idx: -30191 }, - { start: 0x8d0a, end: 0x8d0b, idx: -30192 }, - { start: 0x8d0d, end: 0x8d0d, idx: -30193 }, - { start: 0x8d0f, end: 0x8d10, idx: -30194 }, - { start: 0x8d12, end: 0x8d14, idx: -30195 }, - { start: 0x8d16, end: 0x8d16, idx: -30196 }, - { start: 0x8d64, end: 0x8d64, idx: -30273 }, - { start: 0x8d66, end: 0x8d67, idx: -30274 }, - { start: 0x8d6b, end: 0x8d6b, idx: -30277 }, - { start: 0x8d6d, end: 0x8d6d, idx: -30278 }, - { start: 0x8d70, end: 0x8d71, idx: -30280 }, - { start: 0x8d73, end: 0x8d74, idx: -30281 }, - { start: 0x8d76, end: 0x8d77, idx: -30282 }, - { start: 0x8d81, end: 0x8d81, idx: -30291 }, - { start: 0x8d85, end: 0x8d85, idx: -30294 }, - { start: 0x8d8a, end: 0x8d8a, idx: -30298 }, - { start: 0x8d99, end: 0x8d99, idx: -30312 }, - { start: 0x8da3, end: 0x8da3, idx: -30321 }, - { start: 0x8da8, end: 0x8da8, idx: -30325 }, - { start: 0x8db3, end: 0x8db3, idx: -30335 }, - { start: 0x8dba, end: 0x8dba, idx: -30341 }, - { start: 0x8dbe, end: 0x8dbe, idx: -30344 }, - { start: 0x8dc2, end: 0x8dc2, idx: -30347 }, - { start: 0x8dcb, end: 0x8dcc, idx: -30355 }, - { start: 0x8dcf, end: 0x8dcf, idx: -30357 }, - { start: 0x8dd6, end: 0x8dd6, idx: -30363 }, - { start: 0x8dda, end: 0x8ddb, idx: -30366 }, - { start: 0x8ddd, end: 0x8ddd, idx: -30367 }, - { start: 0x8ddf, end: 0x8ddf, idx: -30368 }, - { start: 0x8de1, end: 0x8de1, idx: -30369 }, - { start: 0x8de3, end: 0x8de3, idx: -30370 }, - { start: 0x8de8, end: 0x8de8, idx: -30374 }, - { start: 0x8dea, end: 0x8deb, idx: -30375 }, - { start: 0x8def, end: 0x8def, idx: -30378 }, - { start: 0x8df3, end: 0x8df3, idx: -30381 }, - { start: 0x8df5, end: 0x8df5, idx: -30382 }, - { start: 0x8dfc, end: 0x8dfc, idx: -30388 }, - { start: 0x8dff, end: 0x8dff, idx: -30390 }, - { start: 0x8e08, end: 0x8e0a, idx: -30398 }, - { start: 0x8e0f, end: 0x8e10, idx: -30402 }, - { start: 0x8e1d, end: 0x8e1f, idx: -30414 }, - { start: 0x8e2a, end: 0x8e2a, idx: -30424 }, - { start: 0x8e30, end: 0x8e30, idx: -30429 }, - { start: 0x8e34, end: 0x8e35, idx: -30432 }, - { start: 0x8e42, end: 0x8e42, idx: -30444 }, - { start: 0x8e44, end: 0x8e44, idx: -30445 }, - { start: 0x8e47, end: 0x8e4a, idx: -30447 }, - { start: 0x8e4c, end: 0x8e4c, idx: -30448 }, - { start: 0x8e50, end: 0x8e50, idx: -30451 }, - { start: 0x8e55, end: 0x8e55, idx: -30455 }, - { start: 0x8e59, end: 0x8e59, idx: -30458 }, - { start: 0x8e5f, end: 0x8e60, idx: -30463 }, - { start: 0x8e63, end: 0x8e64, idx: -30465 }, - { start: 0x8e72, end: 0x8e72, idx: -30478 }, - { start: 0x8e74, end: 0x8e74, idx: -30479 }, - { start: 0x8e76, end: 0x8e76, idx: -30480 }, - { start: 0x8e7c, end: 0x8e7c, idx: -30485 }, - { start: 0x8e81, end: 0x8e81, idx: -30489 }, - { start: 0x8e84, end: 0x8e85, idx: -30491 }, - { start: 0x8e87, end: 0x8e87, idx: -30492 }, - { start: 0x8e8a, end: 0x8e8b, idx: -30494 }, - { start: 0x8e8d, end: 0x8e8d, idx: -30495 }, - { start: 0x8e91, end: 0x8e91, idx: -30498 }, - { start: 0x8e93, end: 0x8e94, idx: -30499 }, - { start: 0x8e99, end: 0x8e99, idx: -30503 }, - { start: 0x8ea1, end: 0x8ea1, idx: -30510 }, - { start: 0x8eaa, end: 0x8eac, idx: -30518 }, - { start: 0x8eaf, end: 0x8eb1, idx: -30520 }, - { start: 0x8ebe, end: 0x8ebe, idx: -30532 }, - { start: 0x8ec0, end: 0x8ec0, idx: -30533 }, - { start: 0x8ec5, end: 0x8ec6, idx: -30537 }, - { start: 0x8ec8, end: 0x8ec8, idx: -30538 }, - { start: 0x8eca, end: 0x8ecd, idx: -30539 }, - { start: 0x8ecf, end: 0x8ecf, idx: -30540 }, - { start: 0x8ed2, end: 0x8ed2, idx: -30542 }, - { start: 0x8edb, end: 0x8edb, idx: -30550 }, - { start: 0x8edf, end: 0x8edf, idx: -30553 }, - { start: 0x8ee2, end: 0x8ee3, idx: -30555 }, - { start: 0x8eeb, end: 0x8eeb, idx: -30562 }, - { start: 0x8ef8, end: 0x8ef8, idx: -30574 }, - { start: 0x8efb, end: 0x8efe, idx: -30576 }, - { start: 0x8f03, end: 0x8f03, idx: -30580 }, - { start: 0x8f05, end: 0x8f05, idx: -30581 }, - { start: 0x8f09, end: 0x8f0a, idx: -30584 }, - { start: 0x8f0c, end: 0x8f0c, idx: -30585 }, - { start: 0x8f12, end: 0x8f15, idx: -30590 }, - { start: 0x8f19, end: 0x8f19, idx: -30593 }, - { start: 0x8f1b, end: 0x8f1d, idx: -30594 }, - { start: 0x8f1f, end: 0x8f1f, idx: -30595 }, - { start: 0x8f26, end: 0x8f26, idx: -30601 }, - { start: 0x8f29, end: 0x8f2a, idx: -30603 }, - { start: 0x8f2f, end: 0x8f2f, idx: -30607 }, - { start: 0x8f33, end: 0x8f33, idx: -30610 }, - { start: 0x8f38, end: 0x8f39, idx: -30614 }, - { start: 0x8f3b, end: 0x8f3b, idx: -30615 }, - { start: 0x8f3e, end: 0x8f3f, idx: -30617 }, - { start: 0x8f42, end: 0x8f42, idx: -30619 }, - { start: 0x8f44, end: 0x8f46, idx: -30620 }, - { start: 0x8f49, end: 0x8f49, idx: -30622 }, - { start: 0x8f4c, end: 0x8f4e, idx: -30624 }, - { start: 0x8f57, end: 0x8f57, idx: -30632 }, - { start: 0x8f5c, end: 0x8f5c, idx: -30636 }, - { start: 0x8f5f, end: 0x8f5f, idx: -30638 }, - { start: 0x8f61, end: 0x8f64, idx: -30639 }, - { start: 0x8f9b, end: 0x8f9c, idx: -30693 }, - { start: 0x8f9e, end: 0x8f9f, idx: -30694 }, - { start: 0x8fa3, end: 0x8fa3, idx: -30697 }, - { start: 0x8fa7, end: 0x8fa8, idx: -30700 }, - { start: 0x8fad, end: 0x8fb2, idx: -30704 }, - { start: 0x8fb7, end: 0x8fb7, idx: -30708 }, - { start: 0x8fba, end: 0x8fbc, idx: -30710 }, - { start: 0x8fbf, end: 0x8fbf, idx: -30712 }, - { start: 0x8fc2, end: 0x8fc2, idx: -30714 }, - { start: 0x8fc4, end: 0x8fc5, idx: -30715 }, - { start: 0x8fce, end: 0x8fce, idx: -30723 }, - { start: 0x8fd1, end: 0x8fd1, idx: -30725 }, - { start: 0x8fd4, end: 0x8fd4, idx: -30727 }, - { start: 0x8fda, end: 0x8fda, idx: -30732 }, - { start: 0x8fe2, end: 0x8fe2, idx: -30739 }, - { start: 0x8fe5, end: 0x8fe6, idx: -30741 }, - { start: 0x8fe9, end: 0x8feb, idx: -30743 }, - { start: 0x8fed, end: 0x8fed, idx: -30744 }, - { start: 0x8fef, end: 0x8ff0, idx: -30745 }, - { start: 0x8ff4, end: 0x8ff4, idx: -30748 }, - { start: 0x8ff7, end: 0x8ffa, idx: -30750 }, - { start: 0x8ffd, end: 0x8ffd, idx: -30752 }, - { start: 0x9000, end: 0x9001, idx: -30754 }, - { start: 0x9003, end: 0x9003, idx: -30755 }, - { start: 0x9005, end: 0x9006, idx: -30756 }, - { start: 0x900b, end: 0x900b, idx: -30760 }, - { start: 0x900d, end: 0x9011, idx: -30761 }, - { start: 0x9013, end: 0x9017, idx: -30762 }, - { start: 0x9019, end: 0x901a, idx: -30763 }, - { start: 0x901d, end: 0x9023, idx: -30765 }, - { start: 0x9027, end: 0x9027, idx: -30768 }, - { start: 0x902e, end: 0x902e, idx: -30774 }, - { start: 0x9031, end: 0x9032, idx: -30776 }, - { start: 0x9035, end: 0x9036, idx: -30778 }, - { start: 0x9038, end: 0x9039, idx: -30779 }, - { start: 0x903c, end: 0x903c, idx: -30781 }, - { start: 0x903e, end: 0x903e, idx: -30782 }, - { start: 0x9041, end: 0x9042, idx: -30784 }, - { start: 0x9045, end: 0x9045, idx: -30786 }, - { start: 0x9047, end: 0x9047, idx: -30787 }, - { start: 0x9049, end: 0x904b, idx: -30788 }, - { start: 0x904d, end: 0x9056, idx: -30789 }, - { start: 0x9058, end: 0x9059, idx: -30790 }, - { start: 0x905c, end: 0x905c, idx: -30792 }, - { start: 0x905e, end: 0x905e, idx: -30793 }, - { start: 0x9060, end: 0x9061, idx: -30794 }, - { start: 0x9063, end: 0x9063, idx: -30795 }, - { start: 0x9065, end: 0x9065, idx: -30796 }, - { start: 0x9067, end: 0x9069, idx: -30797 }, - { start: 0x906d, end: 0x906f, idx: -30800 }, - { start: 0x9072, end: 0x9072, idx: -30802 }, - { start: 0x9075, end: 0x9078, idx: -30804 }, - { start: 0x907a, end: 0x907a, idx: -30805 }, - { start: 0x907c, end: 0x907d, idx: -30806 }, - { start: 0x907f, end: 0x9084, idx: -30807 }, - { start: 0x9087, end: 0x9087, idx: -30809 }, - { start: 0x9089, end: 0x908a, idx: -30810 }, - { start: 0x908f, end: 0x908f, idx: -30814 }, - { start: 0x9091, end: 0x9091, idx: -30815 }, - { start: 0x90a3, end: 0x90a3, idx: -30832 }, - { start: 0x90a6, end: 0x90a6, idx: -30834 }, - { start: 0x90a8, end: 0x90a8, idx: -30835 }, - { start: 0x90aa, end: 0x90aa, idx: -30836 }, - { start: 0x90af, end: 0x90af, idx: -30840 }, - { start: 0x90b1, end: 0x90b1, idx: -30841 }, - { start: 0x90b5, end: 0x90b5, idx: -30844 }, - { start: 0x90b8, end: 0x90b8, idx: -30846 }, - { start: 0x90c1, end: 0x90c1, idx: -30854 }, - { start: 0x90ca, end: 0x90ca, idx: -30862 }, - { start: 0x90ce, end: 0x90ce, idx: -30865 }, - { start: 0x90db, end: 0x90db, idx: -30877 }, - { start: 0x90de, end: 0x90de, idx: -30879 }, - { start: 0x90e1, end: 0x90e2, idx: -30881 }, - { start: 0x90e4, end: 0x90e4, idx: -30882 }, - { start: 0x90e8, end: 0x90e8, idx: -30885 }, - { start: 0x90ed, end: 0x90ed, idx: -30889 }, - { start: 0x90f5, end: 0x90f5, idx: -30896 }, - { start: 0x90f7, end: 0x90f7, idx: -30897 }, - { start: 0x90fd, end: 0x90fd, idx: -30902 }, - { start: 0x9102, end: 0x9102, idx: -30906 }, - { start: 0x9112, end: 0x9112, idx: -30921 }, - { start: 0x9115, end: 0x9115, idx: -30923 }, - { start: 0x9119, end: 0x9119, idx: -30926 }, - { start: 0x9127, end: 0x9127, idx: -30939 }, - { start: 0x912d, end: 0x912d, idx: -30944 }, - { start: 0x9130, end: 0x9130, idx: -30946 }, - { start: 0x9132, end: 0x9132, idx: -30947 }, - { start: 0x9149, end: 0x914e, idx: -30969 }, - { start: 0x9152, end: 0x9152, idx: -30972 }, - { start: 0x9154, end: 0x9154, idx: -30973 }, - { start: 0x9156, end: 0x9156, idx: -30974 }, - { start: 0x9158, end: 0x9158, idx: -30975 }, - { start: 0x9162, end: 0x9163, idx: -30984 }, - { start: 0x9165, end: 0x9165, idx: -30985 }, - { start: 0x9169, end: 0x916a, idx: -30988 }, - { start: 0x916c, end: 0x916c, idx: -30989 }, - { start: 0x9172, end: 0x9173, idx: -30994 }, - { start: 0x9175, end: 0x9175, idx: -30995 }, - { start: 0x9177, end: 0x9178, idx: -30996 }, - { start: 0x9182, end: 0x9182, idx: -31005 }, - { start: 0x9187, end: 0x9187, idx: -31009 }, - { start: 0x9189, end: 0x9189, idx: -31010 }, - { start: 0x918b, end: 0x918b, idx: -31011 }, - { start: 0x918d, end: 0x918d, idx: -31012 }, - { start: 0x9190, end: 0x9190, idx: -31014 }, - { start: 0x9192, end: 0x9192, idx: -31015 }, - { start: 0x9197, end: 0x9197, idx: -31019 }, - { start: 0x919c, end: 0x919c, idx: -31023 }, - { start: 0x91a2, end: 0x91a2, idx: -31028 }, - { start: 0x91a4, end: 0x91a4, idx: -31029 }, - { start: 0x91aa, end: 0x91ac, idx: -31034 }, - { start: 0x91af, end: 0x91af, idx: -31036 }, - { start: 0x91b1, end: 0x91b1, idx: -31037 }, - { start: 0x91b4, end: 0x91b5, idx: -31039 }, - { start: 0x91b8, end: 0x91b8, idx: -31041 }, - { start: 0x91ba, end: 0x91ba, idx: -31042 }, - { start: 0x91c0, end: 0x91c1, idx: -31047 }, - { start: 0x91c6, end: 0x91c9, idx: -31051 }, - { start: 0x91cb, end: 0x91d1, idx: -31052 }, - { start: 0x91d6, end: 0x91d8, idx: -31056 }, - { start: 0x91da, end: 0x91df, idx: -31057 }, - { start: 0x91e1, end: 0x91e1, idx: -31058 }, - { start: 0x91e3, end: 0x91e7, idx: -31059 }, - { start: 0x91ed, end: 0x91ee, idx: -31064 }, - { start: 0x91f5, end: 0x91f6, idx: -31070 }, - { start: 0x91fc, end: 0x91fc, idx: -31075 }, - { start: 0x91ff, end: 0x91ff, idx: -31077 }, - { start: 0x9206, end: 0x9206, idx: -31083 }, - { start: 0x920a, end: 0x920a, idx: -31086 }, - { start: 0x920d, end: 0x920e, idx: -31088 }, - { start: 0x9210, end: 0x9211, idx: -31089 }, - { start: 0x9214, end: 0x9215, idx: -31091 }, - { start: 0x921e, end: 0x921e, idx: -31099 }, - { start: 0x9229, end: 0x9229, idx: -31109 }, - { start: 0x922c, end: 0x922c, idx: -31111 }, - { start: 0x9234, end: 0x9234, idx: -31118 }, - { start: 0x9237, end: 0x9237, idx: -31120 }, - { start: 0x9239, end: 0x923a, idx: -31121 }, - { start: 0x923c, end: 0x923c, idx: -31122 }, - { start: 0x923f, end: 0x9240, idx: -31124 }, - { start: 0x9244, end: 0x9245, idx: -31127 }, - { start: 0x9248, end: 0x9249, idx: -31129 }, - { start: 0x924b, end: 0x924b, idx: -31130 }, - { start: 0x924e, end: 0x924e, idx: -31132 }, - { start: 0x9250, end: 0x9251, idx: -31133 }, - { start: 0x9257, end: 0x9257, idx: -31138 }, - { start: 0x9259, end: 0x925b, idx: -31139 }, - { start: 0x925e, end: 0x925e, idx: -31141 }, - { start: 0x9262, end: 0x9262, idx: -31144 }, - { start: 0x9264, end: 0x9264, idx: -31145 }, - { start: 0x9266, end: 0x9267, idx: -31146 }, - { start: 0x9271, end: 0x9271, idx: -31155 }, - { start: 0x9277, end: 0x9278, idx: -31160 }, - { start: 0x927e, end: 0x927e, idx: -31165 }, - { start: 0x9280, end: 0x9280, idx: -31166 }, - { start: 0x9283, end: 0x9283, idx: -31168 }, - { start: 0x9285, end: 0x9285, idx: -31169 }, - { start: 0x9288, end: 0x9288, idx: -31171 }, - { start: 0x9291, end: 0x9291, idx: -31179 }, - { start: 0x9293, end: 0x9293, idx: -31180 }, - { start: 0x9295, end: 0x9296, idx: -31181 }, - { start: 0x9298, end: 0x9298, idx: -31182 }, - { start: 0x929a, end: 0x929c, idx: -31183 }, - { start: 0x92a7, end: 0x92a7, idx: -31193 }, - { start: 0x92ad, end: 0x92ad, idx: -31198 }, - { start: 0x92b7, end: 0x92b7, idx: -31207 }, - { start: 0x92b9, end: 0x92b9, idx: -31208 }, - { start: 0x92cf, end: 0x92d0, idx: -31229 }, - { start: 0x92d2, end: 0x92d3, idx: -31230 }, - { start: 0x92d5, end: 0x92d5, idx: -31231 }, - { start: 0x92d7, end: 0x92d7, idx: -31232 }, - { start: 0x92d9, end: 0x92d9, idx: -31233 }, - { start: 0x92e0, end: 0x92e0, idx: -31239 }, - { start: 0x92e4, end: 0x92e4, idx: -31242 }, - { start: 0x92e7, end: 0x92e7, idx: -31244 }, - { start: 0x92e9, end: 0x92ea, idx: -31245 }, - { start: 0x92ed, end: 0x92ed, idx: -31247 }, - { start: 0x92f2, end: 0x92f3, idx: -31251 }, - { start: 0x92f8, end: 0x92fc, idx: -31255 }, - { start: 0x92ff, end: 0x92ff, idx: -31257 }, - { start: 0x9302, end: 0x9302, idx: -31259 }, - { start: 0x9306, end: 0x9306, idx: -31262 }, - { start: 0x930f, end: 0x9310, idx: -31270 }, - { start: 0x9318, end: 0x931a, idx: -31277 }, - { start: 0x931d, end: 0x931e, idx: -31279 }, - { start: 0x9320, end: 0x9323, idx: -31280 }, - { start: 0x9325, end: 0x9326, idx: -31281 }, - { start: 0x9328, end: 0x9328, idx: -31282 }, - { start: 0x932b, end: 0x932c, idx: -31284 }, - { start: 0x932e, end: 0x932f, idx: -31285 }, - { start: 0x9332, end: 0x9332, idx: -31287 }, - { start: 0x9335, end: 0x9335, idx: -31289 }, - { start: 0x933a, end: 0x933b, idx: -31293 }, - { start: 0x9344, end: 0x9344, idx: -31301 }, - { start: 0x9348, end: 0x9348, idx: -31304 }, - { start: 0x934b, end: 0x934b, idx: -31306 }, - { start: 0x934d, end: 0x934d, idx: -31307 }, - { start: 0x9354, end: 0x9354, idx: -31313 }, - { start: 0x9356, end: 0x9357, idx: -31314 }, - { start: 0x935b, end: 0x935c, idx: -31317 }, - { start: 0x9360, end: 0x9360, idx: -31320 }, - { start: 0x936c, end: 0x936c, idx: -31331 }, - { start: 0x936e, end: 0x936e, idx: -31332 }, - { start: 0x9370, end: 0x9370, idx: -31333 }, - { start: 0x9375, end: 0x9375, idx: -31337 }, - { start: 0x937c, end: 0x937c, idx: -31343 }, - { start: 0x937e, end: 0x937e, idx: -31344 }, - { start: 0x938c, end: 0x938c, idx: -31357 }, - { start: 0x9394, end: 0x9394, idx: -31364 }, - { start: 0x9396, end: 0x9397, idx: -31365 }, - { start: 0x939a, end: 0x939a, idx: -31367 }, - { start: 0x93a4, end: 0x93a4, idx: -31376 }, - { start: 0x93a7, end: 0x93a7, idx: -31378 }, - { start: 0x93ac, end: 0x93ae, idx: -31382 }, - { start: 0x93b0, end: 0x93b0, idx: -31383 }, - { start: 0x93b9, end: 0x93b9, idx: -31391 }, - { start: 0x93c3, end: 0x93c3, idx: -31400 }, - { start: 0x93c6, end: 0x93c6, idx: -31402 }, - { start: 0x93c8, end: 0x93c8, idx: -31403 }, - { start: 0x93d0, end: 0x93d1, idx: -31410 }, - { start: 0x93d6, end: 0x93d8, idx: -31414 }, - { start: 0x93dd, end: 0x93de, idx: -31418 }, - { start: 0x93e1, end: 0x93e1, idx: -31420 }, - { start: 0x93e4, end: 0x93e5, idx: -31422 }, - { start: 0x93e8, end: 0x93e8, idx: -31424 }, - { start: 0x93f8, end: 0x93f8, idx: -31439 }, - { start: 0x9403, end: 0x9403, idx: -31449 }, - { start: 0x9407, end: 0x9407, idx: -31452 }, - { start: 0x9410, end: 0x9410, idx: -31460 }, - { start: 0x9413, end: 0x9414, idx: -31462 }, - { start: 0x9418, end: 0x941a, idx: -31465 }, - { start: 0x9421, end: 0x9421, idx: -31471 }, - { start: 0x942b, end: 0x942b, idx: -31480 }, - { start: 0x9431, end: 0x9431, idx: -31485 }, - { start: 0x9435, end: 0x9436, idx: -31488 }, - { start: 0x9438, end: 0x9438, idx: -31489 }, - { start: 0x943a, end: 0x943a, idx: -31490 }, - { start: 0x9441, end: 0x9441, idx: -31496 }, - { start: 0x9444, end: 0x9445, idx: -31498 }, - { start: 0x9448, end: 0x9448, idx: -31500 }, - { start: 0x9451, end: 0x9453, idx: -31508 }, - { start: 0x945a, end: 0x945b, idx: -31514 }, - { start: 0x945e, end: 0x945e, idx: -31516 }, - { start: 0x9460, end: 0x9460, idx: -31517 }, - { start: 0x9462, end: 0x9462, idx: -31518 }, - { start: 0x946a, end: 0x946a, idx: -31525 }, - { start: 0x9470, end: 0x9470, idx: -31530 }, - { start: 0x9475, end: 0x9475, idx: -31534 }, - { start: 0x9477, end: 0x9477, idx: -31535 }, - { start: 0x947c, end: 0x947f, idx: -31539 }, - { start: 0x9481, end: 0x9481, idx: -31540 }, - { start: 0x9577, end: 0x9577, idx: -31785 }, - { start: 0x9580, end: 0x9580, idx: -31793 }, - { start: 0x9582, end: 0x9583, idx: -31794 }, - { start: 0x9587, end: 0x9587, idx: -31797 }, - { start: 0x9589, end: 0x958b, idx: -31798 }, - { start: 0x958f, end: 0x958f, idx: -31801 }, - { start: 0x9591, end: 0x9594, idx: -31802 }, - { start: 0x9596, end: 0x9596, idx: -31803 }, - { start: 0x9598, end: 0x9599, idx: -31804 }, - { start: 0x95a0, end: 0x95a0, idx: -31810 }, - { start: 0x95a2, end: 0x95a5, idx: -31811 }, - { start: 0x95a7, end: 0x95a8, idx: -31812 }, - { start: 0x95ad, end: 0x95ad, idx: -31816 }, - { start: 0x95b2, end: 0x95b2, idx: -31820 }, - { start: 0x95b9, end: 0x95b9, idx: -31826 }, - { start: 0x95bb, end: 0x95bc, idx: -31827 }, - { start: 0x95be, end: 0x95be, idx: -31828 }, - { start: 0x95c3, end: 0x95c3, idx: -31832 }, - { start: 0x95c7, end: 0x95c7, idx: -31835 }, - { start: 0x95ca, end: 0x95ca, idx: -31837 }, - { start: 0x95cc, end: 0x95cd, idx: -31838 }, - { start: 0x95d4, end: 0x95d6, idx: -31844 }, - { start: 0x95d8, end: 0x95d8, idx: -31845 }, - { start: 0x95dc, end: 0x95dc, idx: -31848 }, - { start: 0x95e1, end: 0x95e2, idx: -31852 }, - { start: 0x95e5, end: 0x95e5, idx: -31854 }, - { start: 0x961c, end: 0x961c, idx: -31908 }, - { start: 0x9621, end: 0x9621, idx: -31912 }, - { start: 0x9628, end: 0x9628, idx: -31918 }, - { start: 0x962a, end: 0x962a, idx: -31919 }, - { start: 0x962e, end: 0x962f, idx: -31922 }, - { start: 0x9632, end: 0x9632, idx: -31924 }, - { start: 0x963b, end: 0x963b, idx: -31932 }, - { start: 0x963f, end: 0x9640, idx: -31935 }, - { start: 0x9642, end: 0x9642, idx: -31936 }, - { start: 0x9644, end: 0x9644, idx: -31937 }, - { start: 0x964b, end: 0x964d, idx: -31943 }, - { start: 0x964f, end: 0x9650, idx: -31944 }, - { start: 0x965b, end: 0x965f, idx: -31954 }, - { start: 0x9662, end: 0x9666, idx: -31956 }, - { start: 0x966a, end: 0x966a, idx: -31959 }, - { start: 0x966c, end: 0x966c, idx: -31960 }, - { start: 0x9670, end: 0x9670, idx: -31963 }, - { start: 0x9672, end: 0x9673, idx: -31964 }, - { start: 0x9675, end: 0x9678, idx: -31965 }, - { start: 0x967a, end: 0x967a, idx: -31966 }, - { start: 0x967d, end: 0x967d, idx: -31968 }, - { start: 0x9685, end: 0x9686, idx: -31975 }, - { start: 0x9688, end: 0x9688, idx: -31976 }, - { start: 0x968a, end: 0x968b, idx: -31977 }, - { start: 0x968d, end: 0x968f, idx: -31978 }, - { start: 0x9694, end: 0x9695, idx: -31982 }, - { start: 0x9697, end: 0x9699, idx: -31983 }, - { start: 0x969b, end: 0x969d, idx: -31984 }, - { start: 0x96a0, end: 0x96a0, idx: -31986 }, - { start: 0x96a3, end: 0x96a3, idx: -31988 }, - { start: 0x96a7, end: 0x96a8, idx: -31991 }, - { start: 0x96aa, end: 0x96aa, idx: -31992 }, - { start: 0x96af, end: 0x96b2, idx: -31996 }, - { start: 0x96b4, end: 0x96b4, idx: -31997 }, - { start: 0x96b6, end: 0x96b9, idx: -31998 }, - { start: 0x96bb, end: 0x96bc, idx: -31999 }, - { start: 0x96c0, end: 0x96c1, idx: -32002 }, - { start: 0x96c4, end: 0x96c7, idx: -32004 }, - { start: 0x96c9, end: 0x96c9, idx: -32005 }, - { start: 0x96cb, end: 0x96ce, idx: -32006 }, - { start: 0x96d1, end: 0x96d1, idx: -32008 }, - { start: 0x96d5, end: 0x96d6, idx: -32011 }, - { start: 0x96d9, end: 0x96d9, idx: -32013 }, - { start: 0x96db, end: 0x96dc, idx: -32014 }, - { start: 0x96e2, end: 0x96e3, idx: -32019 }, - { start: 0x96e8, end: 0x96e8, idx: -32023 }, - { start: 0x96ea, end: 0x96eb, idx: -32024 }, - { start: 0x96f0, end: 0x96f0, idx: -32028 }, - { start: 0x96f2, end: 0x96f2, idx: -32029 }, - { start: 0x96f6, end: 0x96f7, idx: -32032 }, - { start: 0x96f9, end: 0x96f9, idx: -32033 }, - { start: 0x96fb, end: 0x96fb, idx: -32034 }, - { start: 0x9700, end: 0x9700, idx: -32038 }, - { start: 0x9704, end: 0x9704, idx: -32041 }, - { start: 0x9706, end: 0x9708, idx: -32042 }, - { start: 0x970a, end: 0x970a, idx: -32043 }, - { start: 0x970d, end: 0x970f, idx: -32045 }, - { start: 0x9711, end: 0x9711, idx: -32046 }, - { start: 0x9713, end: 0x9713, idx: -32047 }, - { start: 0x9716, end: 0x9716, idx: -32049 }, - { start: 0x9719, end: 0x9719, idx: -32051 }, - { start: 0x971c, end: 0x971c, idx: -32053 }, - { start: 0x971e, end: 0x971e, idx: -32054 }, - { start: 0x9724, end: 0x9724, idx: -32059 }, - { start: 0x9727, end: 0x9727, idx: -32061 }, - { start: 0x972a, end: 0x972a, idx: -32063 }, - { start: 0x9730, end: 0x9730, idx: -32068 }, - { start: 0x9732, end: 0x9733, idx: -32069 }, - { start: 0x9738, end: 0x9739, idx: -32073 }, - { start: 0x973b, end: 0x973b, idx: -32074 }, - { start: 0x973d, end: 0x973e, idx: -32075 }, - { start: 0x9742, end: 0x9744, idx: -32078 }, - { start: 0x9746, end: 0x9746, idx: -32079 }, - { start: 0x9748, end: 0x9749, idx: -32080 }, - { start: 0x974d, end: 0x974d, idx: -32083 }, - { start: 0x974f, end: 0x974f, idx: -32084 }, - { start: 0x9751, end: 0x9752, idx: -32085 }, - { start: 0x9755, end: 0x9756, idx: -32087 }, - { start: 0x9759, end: 0x9759, idx: -32089 }, - { start: 0x975c, end: 0x975c, idx: -32091 }, - { start: 0x975e, end: 0x975e, idx: -32092 }, - { start: 0x9760, end: 0x9762, idx: -32093 }, - { start: 0x9764, end: 0x9764, idx: -32094 }, - { start: 0x9766, end: 0x9766, idx: -32095 }, - { start: 0x9768, end: 0x9769, idx: -32096 }, - { start: 0x976b, end: 0x976b, idx: -32097 }, - { start: 0x976d, end: 0x976d, idx: -32098 }, - { start: 0x9771, end: 0x9771, idx: -32101 }, - { start: 0x9774, end: 0x9774, idx: -32103 }, - { start: 0x9779, end: 0x977a, idx: -32107 }, - { start: 0x977c, end: 0x977c, idx: -32108 }, - { start: 0x9781, end: 0x9781, idx: -32112 }, - { start: 0x9784, end: 0x9786, idx: -32114 }, - { start: 0x978b, end: 0x978b, idx: -32118 }, - { start: 0x978d, end: 0x978d, idx: -32119 }, - { start: 0x978f, end: 0x9790, idx: -32120 }, - { start: 0x9798, end: 0x9798, idx: -32127 }, - { start: 0x979c, end: 0x979c, idx: -32130 }, - { start: 0x97a0, end: 0x97a0, idx: -32133 }, - { start: 0x97a3, end: 0x97a3, idx: -32135 }, - { start: 0x97a6, end: 0x97a6, idx: -32137 }, - { start: 0x97a8, end: 0x97a8, idx: -32138 }, - { start: 0x97ab, end: 0x97ab, idx: -32140 }, - { start: 0x97ad, end: 0x97ad, idx: -32141 }, - { start: 0x97b3, end: 0x97b4, idx: -32146 }, - { start: 0x97c3, end: 0x97c3, idx: -32160 }, - { start: 0x97c6, end: 0x97c6, idx: -32162 }, - { start: 0x97c8, end: 0x97c8, idx: -32163 }, - { start: 0x97cb, end: 0x97cb, idx: -32165 }, - { start: 0x97d3, end: 0x97d3, idx: -32172 }, - { start: 0x97dc, end: 0x97dc, idx: -32180 }, - { start: 0x97ed, end: 0x97ee, idx: -32196 }, - { start: 0x97f2, end: 0x97f3, idx: -32199 }, - { start: 0x97f5, end: 0x97f6, idx: -32200 }, - { start: 0x97fb, end: 0x97fb, idx: -32204 }, - { start: 0x97ff, end: 0x97ff, idx: -32207 }, - { start: 0x9801, end: 0x9803, idx: -32208 }, - { start: 0x9805, end: 0x9806, idx: -32209 }, - { start: 0x9808, end: 0x9808, idx: -32210 }, - { start: 0x980c, end: 0x980c, idx: -32213 }, - { start: 0x980f, end: 0x9813, idx: -32215 }, - { start: 0x9817, end: 0x9818, idx: -32218 }, - { start: 0x981a, end: 0x981a, idx: -32219 }, - { start: 0x9821, end: 0x9821, idx: -32225 }, - { start: 0x9824, end: 0x9824, idx: -32227 }, - { start: 0x982c, end: 0x982d, idx: -32234 }, - { start: 0x9830, end: 0x9830, idx: -32236 }, - { start: 0x9834, end: 0x9834, idx: -32239 }, - { start: 0x9837, end: 0x9839, idx: -32241 }, - { start: 0x983b, end: 0x983d, idx: -32242 }, - { start: 0x9846, end: 0x9846, idx: -32250 }, - { start: 0x984b, end: 0x984f, idx: -32254 }, - { start: 0x9854, end: 0x9855, idx: -32258 }, - { start: 0x9857, end: 0x9858, idx: -32259 }, - { start: 0x985a, end: 0x985b, idx: -32260 }, - { start: 0x985e, end: 0x985e, idx: -32262 }, - { start: 0x9865, end: 0x9865, idx: -32268 }, - { start: 0x9867, end: 0x9867, idx: -32269 }, - { start: 0x986b, end: 0x986b, idx: -32272 }, - { start: 0x986f, end: 0x9871, idx: -32275 }, - { start: 0x9873, end: 0x9874, idx: -32276 }, - { start: 0x98a8, end: 0x98a8, idx: -32327 }, - { start: 0x98aa, end: 0x98aa, idx: -32328 }, - { start: 0x98af, end: 0x98af, idx: -32332 }, - { start: 0x98b1, end: 0x98b1, idx: -32333 }, - { start: 0x98b6, end: 0x98b6, idx: -32337 }, - { start: 0x98c3, end: 0x98c4, idx: -32349 }, - { start: 0x98c6, end: 0x98c6, idx: -32350 }, - { start: 0x98db, end: 0x98dc, idx: -32370 }, - { start: 0x98df, end: 0x98df, idx: -32372 }, - { start: 0x98e2, end: 0x98e2, idx: -32374 }, - { start: 0x98e9, end: 0x98e9, idx: -32380 }, - { start: 0x98eb, end: 0x98eb, idx: -32381 }, - { start: 0x98ed, end: 0x98ef, idx: -32382 }, - { start: 0x98f2, end: 0x98f2, idx: -32384 }, - { start: 0x98f4, end: 0x98f4, idx: -32385 }, - { start: 0x98fc, end: 0x98fe, idx: -32392 }, - { start: 0x9903, end: 0x9903, idx: -32396 }, - { start: 0x9905, end: 0x9905, idx: -32397 }, - { start: 0x9909, end: 0x990a, idx: -32400 }, - { start: 0x990c, end: 0x990c, idx: -32401 }, - { start: 0x9910, end: 0x9910, idx: -32404 }, - { start: 0x9912, end: 0x9914, idx: -32405 }, - { start: 0x9918, end: 0x9918, idx: -32408 }, - { start: 0x991d, end: 0x991e, idx: -32412 }, - { start: 0x9920, end: 0x9921, idx: -32413 }, - { start: 0x9924, end: 0x9924, idx: -32415 }, - { start: 0x9927, end: 0x9928, idx: -32417 }, - { start: 0x992c, end: 0x992c, idx: -32420 }, - { start: 0x992e, end: 0x992e, idx: -32421 }, - { start: 0x993d, end: 0x993e, idx: -32435 }, - { start: 0x9942, end: 0x9942, idx: -32438 }, - { start: 0x9945, end: 0x9945, idx: -32440 }, - { start: 0x9949, end: 0x9949, idx: -32443 }, - { start: 0x994b, end: 0x994c, idx: -32444 }, - { start: 0x9950, end: 0x9952, idx: -32447 }, - { start: 0x9955, end: 0x9955, idx: -32449 }, - { start: 0x9957, end: 0x9957, idx: -32450 }, - { start: 0x9996, end: 0x9999, idx: -32512 }, - { start: 0x999e, end: 0x999e, idx: -32516 }, - { start: 0x99a5, end: 0x99a5, idx: -32522 }, - { start: 0x99a8, end: 0x99a8, idx: -32524 }, - { start: 0x99ac, end: 0x99ae, idx: -32527 }, - { start: 0x99b3, end: 0x99b4, idx: -32531 }, - { start: 0x99bc, end: 0x99bc, idx: -32538 }, - { start: 0x99c1, end: 0x99c1, idx: -32542 }, - { start: 0x99c4, end: 0x99c6, idx: -32544 }, - { start: 0x99c8, end: 0x99c8, idx: -32545 }, - { start: 0x99d0, end: 0x99d2, idx: -32552 }, - { start: 0x99d5, end: 0x99d5, idx: -32554 }, - { start: 0x99d8, end: 0x99d8, idx: -32556 }, - { start: 0x99db, end: 0x99db, idx: -32558 }, - { start: 0x99dd, end: 0x99dd, idx: -32559 }, - { start: 0x99df, end: 0x99df, idx: -32560 }, - { start: 0x99e2, end: 0x99e2, idx: -32562 }, - { start: 0x99ed, end: 0x99ee, idx: -32572 }, - { start: 0x99f1, end: 0x99f2, idx: -32574 }, - { start: 0x99f8, end: 0x99f8, idx: -32579 }, - { start: 0x99fb, end: 0x99fb, idx: -32581 }, - { start: 0x99ff, end: 0x99ff, idx: -32584 }, - { start: 0x9a01, end: 0x9a01, idx: -32585 }, - { start: 0x9a05, end: 0x9a05, idx: -32588 }, - { start: 0x9a0e, end: 0x9a0f, idx: -32596 }, - { start: 0x9a12, end: 0x9a13, idx: -32598 }, - { start: 0x9a19, end: 0x9a19, idx: -32603 }, - { start: 0x9a28, end: 0x9a28, idx: -32617 }, - { start: 0x9a2b, end: 0x9a2b, idx: -32619 }, - { start: 0x9a30, end: 0x9a30, idx: -32623 }, - { start: 0x9a37, end: 0x9a37, idx: -32629 }, - { start: 0x9a3e, end: 0x9a3e, idx: -32635 }, - { start: 0x9a40, end: 0x9a40, idx: -32636 }, - { start: 0x9a42, end: 0x9a43, idx: -32637 }, - { start: 0x9a45, end: 0x9a45, idx: -32638 }, - { start: 0x9a4d, end: 0x9a4e, idx: -32645 }, - { start: 0x9a52, end: 0x9a52, idx: -32648 }, - { start: 0x9a55, end: 0x9a55, idx: -32650 }, - { start: 0x9a57, end: 0x9a57, idx: -32651 }, - { start: 0x9a5a, end: 0x9a5b, idx: -32653 }, - { start: 0x9a5f, end: 0x9a5f, idx: -32656 }, - { start: 0x9a62, end: 0x9a62, idx: -32658 }, - { start: 0x9a64, end: 0x9a65, idx: -32659 }, - { start: 0x9a69, end: 0x9a6b, idx: -32662 }, - { start: 0x9aa8, end: 0x9aa8, idx: -32722 }, - { start: 0x9aad, end: 0x9aad, idx: -32726 }, - { start: 0x9ab0, end: 0x9ab0, idx: -32728 }, - { start: 0x9ab8, end: 0x9ab8, idx: -32735 }, - { start: 0x9abc, end: 0x9abc, idx: -32738 }, - { start: 0x9ac0, end: 0x9ac0, idx: -32741 }, - { start: 0x9ac4, end: 0x9ac4, idx: -32744 }, - { start: 0x9acf, end: 0x9acf, idx: -32754 }, - { start: 0x9ad1, end: 0x9ad1, idx: -32755 }, - { start: 0x9ad3, end: 0x9ad4, idx: -32756 }, - { start: 0x9ad8, end: 0x9ad9, idx: -32759 }, - { start: 0x9adc, end: 0x9adc, idx: -32761 }, - { start: 0x9ade, end: 0x9adf, idx: -32762 }, - { start: 0x9ae2, end: 0x9ae3, idx: -32764 }, - { start: 0x9ae6, end: 0x9ae6, idx: -32766 }, - { start: 0x9aea, end: 0x9aeb, idx: -32769 }, - { start: 0x9aed, end: 0x9aef, idx: -32770 }, - { start: 0x9af1, end: 0x9af1, idx: -32771 }, - { start: 0x9af4, end: 0x9af4, idx: -32773 }, - { start: 0x9af7, end: 0x9af7, idx: -32775 }, - { start: 0x9afb, end: 0x9afb, idx: -32778 }, - { start: 0x9b06, end: 0x9b06, idx: -32788 }, - { start: 0x9b18, end: 0x9b18, idx: -32805 }, - { start: 0x9b1a, end: 0x9b1a, idx: -32806 }, - { start: 0x9b1f, end: 0x9b1f, idx: -32810 }, - { start: 0x9b22, end: 0x9b23, idx: -32812 }, - { start: 0x9b25, end: 0x9b25, idx: -32813 }, - { start: 0x9b27, end: 0x9b2a, idx: -32814 }, - { start: 0x9b2e, end: 0x9b2f, idx: -32817 }, - { start: 0x9b31, end: 0x9b32, idx: -32818 }, - { start: 0x9b3b, end: 0x9b3c, idx: -32826 }, - { start: 0x9b41, end: 0x9b45, idx: -32830 }, - { start: 0x9b4d, end: 0x9b4f, idx: -32837 }, - { start: 0x9b51, end: 0x9b51, idx: -32838 }, - { start: 0x9b54, end: 0x9b54, idx: -32840 }, - { start: 0x9b58, end: 0x9b58, idx: -32843 }, - { start: 0x9b5a, end: 0x9b5a, idx: -32844 }, - { start: 0x9b6f, end: 0x9b6f, idx: -32864 }, - { start: 0x9b72, end: 0x9b72, idx: -32866 }, - { start: 0x9b74, end: 0x9b75, idx: -32867 }, - { start: 0x9b83, end: 0x9b83, idx: -32880 }, - { start: 0x9b8e, end: 0x9b8f, idx: -32890 }, - { start: 0x9b91, end: 0x9b93, idx: -32891 }, - { start: 0x9b96, end: 0x9b97, idx: -32893 }, - { start: 0x9b9f, end: 0x9ba0, idx: -32900 }, - { start: 0x9ba8, end: 0x9ba8, idx: -32907 }, - { start: 0x9baa, end: 0x9bab, idx: -32908 }, - { start: 0x9bad, end: 0x9bae, idx: -32909 }, - { start: 0x9bb1, end: 0x9bb1, idx: -32911 }, - { start: 0x9bb4, end: 0x9bb4, idx: -32913 }, - { start: 0x9bb9, end: 0x9bb9, idx: -32917 }, - { start: 0x9bbb, end: 0x9bbb, idx: -32918 }, - { start: 0x9bc0, end: 0x9bc0, idx: -32922 }, - { start: 0x9bc6, end: 0x9bc6, idx: -32927 }, - { start: 0x9bc9, end: 0x9bca, idx: -32929 }, - { start: 0x9bcf, end: 0x9bcf, idx: -32933 }, - { start: 0x9bd1, end: 0x9bd2, idx: -32934 }, - { start: 0x9bd4, end: 0x9bd4, idx: -32935 }, - { start: 0x9bd6, end: 0x9bd6, idx: -32936 }, - { start: 0x9bdb, end: 0x9bdb, idx: -32940 }, - { start: 0x9be1, end: 0x9be4, idx: -32945 }, - { start: 0x9be8, end: 0x9be8, idx: -32948 }, - { start: 0x9bf0, end: 0x9bf2, idx: -32955 }, - { start: 0x9bf5, end: 0x9bf5, idx: -32957 }, - { start: 0x9c00, end: 0x9c00, idx: -32967 }, - { start: 0x9c04, end: 0x9c04, idx: -32970 }, - { start: 0x9c06, end: 0x9c06, idx: -32971 }, - { start: 0x9c08, end: 0x9c0a, idx: -32972 }, - { start: 0x9c0c, end: 0x9c0d, idx: -32973 }, - { start: 0x9c10, end: 0x9c10, idx: -32975 }, - { start: 0x9c12, end: 0x9c15, idx: -32976 }, - { start: 0x9c1b, end: 0x9c1b, idx: -32981 }, - { start: 0x9c21, end: 0x9c21, idx: -32986 }, - { start: 0x9c24, end: 0x9c25, idx: -32988 }, - { start: 0x9c2d, end: 0x9c30, idx: -32995 }, - { start: 0x9c32, end: 0x9c32, idx: -32996 }, - { start: 0x9c39, end: 0x9c3b, idx: -33002 }, - { start: 0x9c3e, end: 0x9c3e, idx: -33004 }, - { start: 0x9c46, end: 0x9c48, idx: -33011 }, - { start: 0x9c52, end: 0x9c52, idx: -33020 }, - { start: 0x9c57, end: 0x9c57, idx: -33024 }, - { start: 0x9c5a, end: 0x9c5a, idx: -33026 }, - { start: 0x9c60, end: 0x9c60, idx: -33031 }, - { start: 0x9c67, end: 0x9c67, idx: -33037 }, - { start: 0x9c76, end: 0x9c76, idx: -33051 }, - { start: 0x9c78, end: 0x9c78, idx: -33052 }, - { start: 0x9ce5, end: 0x9ce5, idx: -33160 }, - { start: 0x9ce7, end: 0x9ce7, idx: -33161 }, - { start: 0x9ce9, end: 0x9ce9, idx: -33162 }, - { start: 0x9ceb, end: 0x9cec, idx: -33163 }, - { start: 0x9cf0, end: 0x9cf0, idx: -33166 }, - { start: 0x9cf3, end: 0x9cf4, idx: -33168 }, - { start: 0x9cf6, end: 0x9cf6, idx: -33169 }, - { start: 0x9d03, end: 0x9d03, idx: -33181 }, - { start: 0x9d06, end: 0x9d09, idx: -33183 }, - { start: 0x9d0e, end: 0x9d0e, idx: -33187 }, - { start: 0x9d12, end: 0x9d12, idx: -33190 }, - { start: 0x9d15, end: 0x9d15, idx: -33192 }, - { start: 0x9d1b, end: 0x9d1b, idx: -33197 }, - { start: 0x9d1f, end: 0x9d1f, idx: -33200 }, - { start: 0x9d23, end: 0x9d23, idx: -33203 }, - { start: 0x9d26, end: 0x9d26, idx: -33205 }, - { start: 0x9d28, end: 0x9d28, idx: -33206 }, - { start: 0x9d2a, end: 0x9d2c, idx: -33207 }, - { start: 0x9d3b, end: 0x9d3b, idx: -33221 }, - { start: 0x9d3e, end: 0x9d3f, idx: -33223 }, - { start: 0x9d41, end: 0x9d41, idx: -33224 }, - { start: 0x9d44, end: 0x9d44, idx: -33226 }, - { start: 0x9d46, end: 0x9d46, idx: -33227 }, - { start: 0x9d48, end: 0x9d48, idx: -33228 }, - { start: 0x9d50, end: 0x9d51, idx: -33235 }, - { start: 0x9d59, end: 0x9d59, idx: -33242 }, - { start: 0x9d5c, end: 0x9d5e, idx: -33244 }, - { start: 0x9d60, end: 0x9d61, idx: -33245 }, - { start: 0x9d64, end: 0x9d64, idx: -33247 }, - { start: 0x9d6b, end: 0x9d6c, idx: -33253 }, - { start: 0x9d6f, end: 0x9d70, idx: -33255 }, - { start: 0x9d72, end: 0x9d72, idx: -33256 }, - { start: 0x9d7a, end: 0x9d7a, idx: -33263 }, - { start: 0x9d87, end: 0x9d87, idx: -33275 }, - { start: 0x9d89, end: 0x9d89, idx: -33276 }, - { start: 0x9d8f, end: 0x9d8f, idx: -33281 }, - { start: 0x9d9a, end: 0x9d9a, idx: -33291 }, - { start: 0x9da4, end: 0x9da4, idx: -33300 }, - { start: 0x9da9, end: 0x9da9, idx: -33304 }, - { start: 0x9dab, end: 0x9dab, idx: -33305 }, - { start: 0x9daf, end: 0x9daf, idx: -33308 }, - { start: 0x9db2, end: 0x9db2, idx: -33310 }, - { start: 0x9db4, end: 0x9db4, idx: -33311 }, - { start: 0x9db8, end: 0x9db8, idx: -33314 }, - { start: 0x9dba, end: 0x9dbb, idx: -33315 }, - { start: 0x9dc1, end: 0x9dc2, idx: -33320 }, - { start: 0x9dc4, end: 0x9dc4, idx: -33321 }, - { start: 0x9dc6, end: 0x9dc6, idx: -33322 }, - { start: 0x9dcf, end: 0x9dcf, idx: -33330 }, - { start: 0x9dd3, end: 0x9dd3, idx: -33333 }, - { start: 0x9dd7, end: 0x9dd7, idx: -33336 }, - { start: 0x9dd9, end: 0x9dd9, idx: -33337 }, - { start: 0x9de6, end: 0x9de6, idx: -33349 }, - { start: 0x9ded, end: 0x9ded, idx: -33355 }, - { start: 0x9def, end: 0x9def, idx: -33356 }, - { start: 0x9df2, end: 0x9df2, idx: -33358 }, - { start: 0x9df8, end: 0x9dfa, idx: -33363 }, - { start: 0x9dfd, end: 0x9dfd, idx: -33365 }, - { start: 0x9e19, end: 0x9e1b, idx: -33392 }, - { start: 0x9e1e, end: 0x9e1e, idx: -33394 }, - { start: 0x9e75, end: 0x9e75, idx: -33480 }, - { start: 0x9e78, end: 0x9e79, idx: -33482 }, - { start: 0x9e7c, end: 0x9e7d, idx: -33484 }, - { start: 0x9e7f, end: 0x9e7f, idx: -33485 }, - { start: 0x9e81, end: 0x9e81, idx: -33486 }, - { start: 0x9e88, end: 0x9e88, idx: -33492 }, - { start: 0x9e8b, end: 0x9e8c, idx: -33494 }, - { start: 0x9e91, end: 0x9e93, idx: -33498 }, - { start: 0x9e95, end: 0x9e95, idx: -33499 }, - { start: 0x9e97, end: 0x9e97, idx: -33500 }, - { start: 0x9e9d, end: 0x9e9d, idx: -33505 }, - { start: 0x9e9f, end: 0x9e9f, idx: -33506 }, - { start: 0x9ea5, end: 0x9ea6, idx: -33511 }, - { start: 0x9ea9, end: 0x9eaa, idx: -33513 }, - { start: 0x9ead, end: 0x9ead, idx: -33515 }, - { start: 0x9eb4, end: 0x9eb5, idx: -33521 }, - { start: 0x9eb8, end: 0x9ebc, idx: -33523 }, - { start: 0x9ebe, end: 0x9ebf, idx: -33524 }, - { start: 0x9ec4, end: 0x9ec4, idx: -33528 }, - { start: 0x9ecc, end: 0x9ed2, idx: -33535 }, - { start: 0x9ed4, end: 0x9ed4, idx: -33536 }, - { start: 0x9ed8, end: 0x9ed9, idx: -33539 }, - { start: 0x9edb, end: 0x9ede, idx: -33540 }, - { start: 0x9ee0, end: 0x9ee0, idx: -33541 }, - { start: 0x9ee5, end: 0x9ee5, idx: -33545 }, - { start: 0x9ee8, end: 0x9ee8, idx: -33547 }, - { start: 0x9eef, end: 0x9eef, idx: -33553 }, - { start: 0x9ef4, end: 0x9ef4, idx: -33557 }, - { start: 0x9ef6, end: 0x9ef7, idx: -33558 }, - { start: 0x9ef9, end: 0x9ef9, idx: -33559 }, - { start: 0x9efb, end: 0x9efd, idx: -33560 }, - { start: 0x9f07, end: 0x9f08, idx: -33569 }, - { start: 0x9f0e, end: 0x9f0e, idx: -33574 }, - { start: 0x9f13, end: 0x9f13, idx: -33578 }, - { start: 0x9f15, end: 0x9f15, idx: -33579 }, - { start: 0x9f20, end: 0x9f21, idx: -33589 }, - { start: 0x9f2c, end: 0x9f2c, idx: -33599 }, - { start: 0x9f3b, end: 0x9f3b, idx: -33613 }, - { start: 0x9f3e, end: 0x9f3e, idx: -33615 }, - { start: 0x9f4a, end: 0x9f4b, idx: -33626 }, - { start: 0x9f4e, end: 0x9f4f, idx: -33628 }, - { start: 0x9f52, end: 0x9f52, idx: -33630 }, - { start: 0x9f54, end: 0x9f54, idx: -33631 }, - { start: 0x9f5f, end: 0x9f63, idx: -33641 }, - { start: 0x9f66, end: 0x9f67, idx: -33643 }, - { start: 0x9f6a, end: 0x9f6a, idx: -33645 }, - { start: 0x9f6c, end: 0x9f6c, idx: -33646 }, - { start: 0x9f72, end: 0x9f72, idx: -33651 }, - { start: 0x9f76, end: 0x9f77, idx: -33654 }, - { start: 0x9f8d, end: 0x9f8d, idx: -33675 }, - { start: 0x9f95, end: 0x9f95, idx: -33682 }, - { start: 0x9f9c, end: 0x9f9d, idx: -33688 }, - { start: 0x9fa0, end: 0x9fa0, idx: -33690 }, - { start: 0xe000, end: 0xf111, idx: -50169 }, - { start: 0xf86f, end: 0xf86f, idx: -52054 }, - { start: 0xf929, end: 0xf929, idx: -52239 }, - { start: 0xf9dc, end: 0xf9dc, idx: -52417 }, - { start: 0xfa0e, end: 0xfa2d, idx: -52466 }, - { start: 0xff01, end: 0xff5e, idx: -53701 }, - { start: 0xffe0, end: 0xffe5, idx: -53830 }, - { start: 0xffff, end: 0xffff, idx: 0 } + { .start = 0x00a6, .end = 0x00a8, .idx = -166 }, + { .start = 0x00b0, .end = 0x00b1, .idx = -173 }, + { .start = 0x00b4, .end = 0x00b4, .idx = -175 }, + { .start = 0x00b6, .end = 0x00b6, .idx = -176 }, + { .start = 0x00d7, .end = 0x00d7, .idx = -208 }, + { .start = 0x00f7, .end = 0x00f7, .idx = -239 }, + { .start = 0x0391, .end = 0x03a1, .idx = -904 }, + { .start = 0x03a3, .end = 0x03a9, .idx = -905 }, + { .start = 0x03b1, .end = 0x03c1, .idx = -912 }, + { .start = 0x03c3, .end = 0x03c9, .idx = -913 }, + { .start = 0x0401, .end = 0x0401, .idx = -968 }, + { .start = 0x0410, .end = 0x044f, .idx = -982 }, + { .start = 0x0451, .end = 0x0451, .idx = -983 }, + { .start = 0x2010, .end = 0x2010, .idx = -8085 }, + { .start = 0x2014, .end = 0x2016, .idx = -8088 }, + { .start = 0x2018, .end = 0x2019, .idx = -8089 }, + { .start = 0x201c, .end = 0x201d, .idx = -8091 }, + { .start = 0x2020, .end = 0x2021, .idx = -8093 }, + { .start = 0x2025, .end = 0x2026, .idx = -8096 }, + { .start = 0x2030, .end = 0x2030, .idx = -8105 }, + { .start = 0x2032, .end = 0x2033, .idx = -8106 }, + { .start = 0x203b, .end = 0x203b, .idx = -8113 }, + { .start = 0x2103, .end = 0x2103, .idx = -8312 }, + { .start = 0x2116, .end = 0x2116, .idx = -8330 }, + { .start = 0x2121, .end = 0x2121, .idx = -8340 }, + { .start = 0x212b, .end = 0x212b, .idx = -8349 }, + { .start = 0x2160, .end = 0x2169, .idx = -8401 }, + { .start = 0x2170, .end = 0x2179, .idx = -8407 }, + { .start = 0x2190, .end = 0x2193, .idx = -8429 }, + { .start = 0x21d2, .end = 0x21d2, .idx = -8491 }, + { .start = 0x21d4, .end = 0x21d4, .idx = -8492 }, + { .start = 0x2200, .end = 0x2200, .idx = -8535 }, + { .start = 0x2202, .end = 0x2203, .idx = -8536 }, + { .start = 0x2207, .end = 0x2208, .idx = -8539 }, + { .start = 0x220b, .end = 0x220b, .idx = -8541 }, + { .start = 0x2212, .end = 0x2212, .idx = -8547 }, + { .start = 0x221a, .end = 0x221a, .idx = -8554 }, + { .start = 0x221d, .end = 0x221e, .idx = -8556 }, + { .start = 0x2220, .end = 0x2220, .idx = -8557 }, + { .start = 0x2225, .end = 0x2225, .idx = -8561 }, + { .start = 0x2227, .end = 0x222c, .idx = -8562 }, + { .start = 0x2234, .end = 0x2235, .idx = -8569 }, + { .start = 0x223d, .end = 0x223d, .idx = -8576 }, + { .start = 0x2252, .end = 0x2252, .idx = -8596 }, + { .start = 0x2260, .end = 0x2261, .idx = -8609 }, + { .start = 0x2266, .end = 0x2267, .idx = -8613 }, + { .start = 0x226a, .end = 0x226b, .idx = -8615 }, + { .start = 0x2282, .end = 0x2283, .idx = -8637 }, + { .start = 0x2286, .end = 0x2287, .idx = -8639 }, + { .start = 0x22a5, .end = 0x22a5, .idx = -8668 }, + { .start = 0x2312, .end = 0x2312, .idx = -8776 }, + { .start = 0x2500, .end = 0x2503, .idx = -9269 }, + { .start = 0x250c, .end = 0x250c, .idx = -9277 }, + { .start = 0x250f, .end = 0x2510, .idx = -9279 }, + { .start = 0x2513, .end = 0x2514, .idx = -9281 }, + { .start = 0x2517, .end = 0x2518, .idx = -9283 }, + { .start = 0x251b, .end = 0x251d, .idx = -9285 }, + { .start = 0x2520, .end = 0x2520, .idx = -9287 }, + { .start = 0x2523, .end = 0x2525, .idx = -9289 }, + { .start = 0x2528, .end = 0x2528, .idx = -9291 }, + { .start = 0x252b, .end = 0x252c, .idx = -9293 }, + { .start = 0x252f, .end = 0x2530, .idx = -9295 }, + { .start = 0x2533, .end = 0x2534, .idx = -9297 }, + { .start = 0x2537, .end = 0x2538, .idx = -9299 }, + { .start = 0x253b, .end = 0x253c, .idx = -9301 }, + { .start = 0x253f, .end = 0x253f, .idx = -9303 }, + { .start = 0x2542, .end = 0x2542, .idx = -9305 }, + { .start = 0x254b, .end = 0x254b, .idx = -9313 }, + { .start = 0x25a0, .end = 0x25a1, .idx = -9397 }, + { .start = 0x25b2, .end = 0x25b3, .idx = -9413 }, + { .start = 0x25bc, .end = 0x25bd, .idx = -9421 }, + { .start = 0x25c6, .end = 0x25c7, .idx = -9429 }, + { .start = 0x25cb, .end = 0x25cb, .idx = -9432 }, + { .start = 0x25ce, .end = 0x25cf, .idx = -9434 }, + { .start = 0x25ef, .end = 0x25ef, .idx = -9465 }, + { .start = 0x2605, .end = 0x2606, .idx = -9486 }, + { .start = 0x2640, .end = 0x2640, .idx = -9543 }, + { .start = 0x2642, .end = 0x2642, .idx = -9544 }, + { .start = 0x266a, .end = 0x266a, .idx = -9583 }, + { .start = 0x266d, .end = 0x266d, .idx = -9585 }, + { .start = 0x266f, .end = 0x266f, .idx = -9586 }, + { .start = 0x3000, .end = 0x3003, .idx = -12034 }, + { .start = 0x3005, .end = 0x3015, .idx = -12035 }, + { .start = 0x301c, .end = 0x301c, .idx = -12041 }, + { .start = 0x3041, .end = 0x3093, .idx = -12077 }, + { .start = 0x309b, .end = 0x309e, .idx = -12084 }, + { .start = 0x30a1, .end = 0x30f6, .idx = -12086 }, + { .start = 0x30fb, .end = 0x30fe, .idx = -12090 }, + { .start = 0x3231, .end = 0x3231, .idx = -12396 }, + { .start = 0x4e00, .end = 0x4e01, .idx = -19514 }, + { .start = 0x4e03, .end = 0x4e03, .idx = -19515 }, + { .start = 0x4e07, .end = 0x4e0b, .idx = -19518 }, + { .start = 0x4e0d, .end = 0x4e0e, .idx = -19519 }, + { .start = 0x4e10, .end = 0x4e11, .idx = -19520 }, + { .start = 0x4e14, .end = 0x4e19, .idx = -19522 }, + { .start = 0x4e1e, .end = 0x4e1e, .idx = -19526 }, + { .start = 0x4e21, .end = 0x4e21, .idx = -19528 }, + { .start = 0x4e26, .end = 0x4e26, .idx = -19532 }, + { .start = 0x4e28, .end = 0x4e28, .idx = -19533 }, + { .start = 0x4e2a, .end = 0x4e2a, .idx = -19534 }, + { .start = 0x4e2d, .end = 0x4e2d, .idx = -19536 }, + { .start = 0x4e31, .end = 0x4e32, .idx = -19539 }, + { .start = 0x4e36, .end = 0x4e36, .idx = -19542 }, + { .start = 0x4e38, .end = 0x4e39, .idx = -19543 }, + { .start = 0x4e3b, .end = 0x4e3c, .idx = -19544 }, + { .start = 0x4e3f, .end = 0x4e3f, .idx = -19546 }, + { .start = 0x4e42, .end = 0x4e43, .idx = -19548 }, + { .start = 0x4e45, .end = 0x4e45, .idx = -19549 }, + { .start = 0x4e4b, .end = 0x4e4b, .idx = -19554 }, + { .start = 0x4e4d, .end = 0x4e4f, .idx = -19555 }, + { .start = 0x4e55, .end = 0x4e59, .idx = -19560 }, + { .start = 0x4e5d, .end = 0x4e5f, .idx = -19563 }, + { .start = 0x4e62, .end = 0x4e62, .idx = -19565 }, + { .start = 0x4e71, .end = 0x4e71, .idx = -19579 }, + { .start = 0x4e73, .end = 0x4e73, .idx = -19580 }, + { .start = 0x4e7e, .end = 0x4e7e, .idx = -19590 }, + { .start = 0x4e80, .end = 0x4e80, .idx = -19591 }, + { .start = 0x4e82, .end = 0x4e82, .idx = -19592 }, + { .start = 0x4e85, .end = 0x4e86, .idx = -19594 }, + { .start = 0x4e88, .end = 0x4e8c, .idx = -19595 }, + { .start = 0x4e8e, .end = 0x4e8e, .idx = -19596 }, + { .start = 0x4e91, .end = 0x4e92, .idx = -19598 }, + { .start = 0x4e94, .end = 0x4e95, .idx = -19599 }, + { .start = 0x4e98, .end = 0x4e99, .idx = -19601 }, + { .start = 0x4e9b, .end = 0x4e9c, .idx = -19602 }, + { .start = 0x4e9e, .end = 0x4ea2, .idx = -19603 }, + { .start = 0x4ea4, .end = 0x4ea6, .idx = -19604 }, + { .start = 0x4ea8, .end = 0x4ea8, .idx = -19605 }, + { .start = 0x4eab, .end = 0x4eae, .idx = -19607 }, + { .start = 0x4eb0, .end = 0x4eb0, .idx = -19608 }, + { .start = 0x4eb3, .end = 0x4eb3, .idx = -19610 }, + { .start = 0x4eb6, .end = 0x4eb6, .idx = -19612 }, + { .start = 0x4eba, .end = 0x4eba, .idx = -19615 }, + { .start = 0x4ec0, .end = 0x4ec2, .idx = -19620 }, + { .start = 0x4ec4, .end = 0x4ec4, .idx = -19621 }, + { .start = 0x4ec6, .end = 0x4ec7, .idx = -19622 }, + { .start = 0x4eca, .end = 0x4ecb, .idx = -19624 }, + { .start = 0x4ecd, .end = 0x4ecf, .idx = -19625 }, + { .start = 0x4ed4, .end = 0x4ed9, .idx = -19629 }, + { .start = 0x4edd, .end = 0x4edf, .idx = -19632 }, + { .start = 0x4ee1, .end = 0x4ee1, .idx = -19633 }, + { .start = 0x4ee3, .end = 0x4ee5, .idx = -19634 }, + { .start = 0x4eed, .end = 0x4eee, .idx = -19641 }, + { .start = 0x4ef0, .end = 0x4ef0, .idx = -19642 }, + { .start = 0x4ef2, .end = 0x4ef2, .idx = -19643 }, + { .start = 0x4ef6, .end = 0x4ef7, .idx = -19646 }, + { .start = 0x4efb, .end = 0x4efc, .idx = -19649 }, + { .start = 0x4f00, .end = 0x4f01, .idx = -19652 }, + { .start = 0x4f03, .end = 0x4f03, .idx = -19653 }, + { .start = 0x4f09, .end = 0x4f0a, .idx = -19658 }, + { .start = 0x4f0d, .end = 0x4f11, .idx = -19660 }, + { .start = 0x4f1a, .end = 0x4f1a, .idx = -19668 }, + { .start = 0x4f1c, .end = 0x4f1d, .idx = -19669 }, + { .start = 0x4f2f, .end = 0x4f30, .idx = -19686 }, + { .start = 0x4f34, .end = 0x4f34, .idx = -19689 }, + { .start = 0x4f36, .end = 0x4f36, .idx = -19690 }, + { .start = 0x4f38, .end = 0x4f3a, .idx = -19691 }, + { .start = 0x4f3c, .end = 0x4f3d, .idx = -19692 }, + { .start = 0x4f43, .end = 0x4f43, .idx = -19697 }, + { .start = 0x4f46, .end = 0x4f47, .idx = -19699 }, + { .start = 0x4f4d, .end = 0x4f51, .idx = -19704 }, + { .start = 0x4f53, .end = 0x4f53, .idx = -19705 }, + { .start = 0x4f55, .end = 0x4f57, .idx = -19706 }, + { .start = 0x4f59, .end = 0x4f5e, .idx = -19707 }, + { .start = 0x4f69, .end = 0x4f69, .idx = -19717 }, + { .start = 0x4f6f, .end = 0x4f70, .idx = -19722 }, + { .start = 0x4f73, .end = 0x4f73, .idx = -19724 }, + { .start = 0x4f75, .end = 0x4f76, .idx = -19725 }, + { .start = 0x4f7b, .end = 0x4f7c, .idx = -19729 }, + { .start = 0x4f7f, .end = 0x4f7f, .idx = -19731 }, + { .start = 0x4f83, .end = 0x4f83, .idx = -19734 }, + { .start = 0x4f86, .end = 0x4f86, .idx = -19736 }, + { .start = 0x4f88, .end = 0x4f88, .idx = -19737 }, + { .start = 0x4f8a, .end = 0x4f8b, .idx = -19738 }, + { .start = 0x4f8d, .end = 0x4f8d, .idx = -19739 }, + { .start = 0x4f8f, .end = 0x4f8f, .idx = -19740 }, + { .start = 0x4f91, .end = 0x4f92, .idx = -19741 }, + { .start = 0x4f94, .end = 0x4f94, .idx = -19742 }, + { .start = 0x4f96, .end = 0x4f96, .idx = -19743 }, + { .start = 0x4f98, .end = 0x4f98, .idx = -19744 }, + { .start = 0x4f9a, .end = 0x4f9b, .idx = -19745 }, + { .start = 0x4f9d, .end = 0x4f9d, .idx = -19746 }, + { .start = 0x4fa0, .end = 0x4fa1, .idx = -19748 }, + { .start = 0x4fab, .end = 0x4fab, .idx = -19757 }, + { .start = 0x4fad, .end = 0x4faf, .idx = -19758 }, + { .start = 0x4fb5, .end = 0x4fb6, .idx = -19763 }, + { .start = 0x4fbf, .end = 0x4fbf, .idx = -19771 }, + { .start = 0x4fc2, .end = 0x4fc4, .idx = -19773 }, + { .start = 0x4fc9, .end = 0x4fca, .idx = -19777 }, + { .start = 0x4fcd, .end = 0x4fce, .idx = -19779 }, + { .start = 0x4fd0, .end = 0x4fd1, .idx = -19780 }, + { .start = 0x4fd4, .end = 0x4fd4, .idx = -19782 }, + { .start = 0x4fd7, .end = 0x4fd8, .idx = -19784 }, + { .start = 0x4fda, .end = 0x4fdb, .idx = -19785 }, + { .start = 0x4fdd, .end = 0x4fdd, .idx = -19786 }, + { .start = 0x4fdf, .end = 0x4fe1, .idx = -19787 }, + { .start = 0x4fe3, .end = 0x4fe5, .idx = -19788 }, + { .start = 0x4fee, .end = 0x4fef, .idx = -19796 }, + { .start = 0x4ff3, .end = 0x4ff3, .idx = -19799 }, + { .start = 0x4ff5, .end = 0x4ff6, .idx = -19800 }, + { .start = 0x4ff8, .end = 0x4ff8, .idx = -19801 }, + { .start = 0x4ffa, .end = 0x4ffa, .idx = -19802 }, + { .start = 0x4ffe, .end = 0x4fff, .idx = -19805 }, + { .start = 0x5005, .end = 0x5006, .idx = -19810 }, + { .start = 0x5009, .end = 0x5009, .idx = -19812 }, + { .start = 0x500b, .end = 0x500b, .idx = -19813 }, + { .start = 0x500d, .end = 0x500d, .idx = -19814 }, + { .start = 0x500f, .end = 0x500f, .idx = -19815 }, + { .start = 0x5011, .end = 0x5012, .idx = -19816 }, + { .start = 0x5014, .end = 0x5014, .idx = -19817 }, + { .start = 0x5016, .end = 0x5016, .idx = -19818 }, + { .start = 0x5019, .end = 0x501a, .idx = -19820 }, + { .start = 0x501e, .end = 0x501f, .idx = -19823 }, + { .start = 0x5021, .end = 0x5026, .idx = -19824 }, + { .start = 0x5028, .end = 0x502d, .idx = -19825 }, + { .start = 0x5036, .end = 0x5036, .idx = -19833 }, + { .start = 0x5039, .end = 0x5039, .idx = -19835 }, + { .start = 0x5040, .end = 0x5040, .idx = -19841 }, + { .start = 0x5042, .end = 0x5043, .idx = -19842 }, + { .start = 0x5046, .end = 0x5049, .idx = -19844 }, + { .start = 0x504f, .end = 0x5050, .idx = -19849 }, + { .start = 0x5055, .end = 0x5056, .idx = -19853 }, + { .start = 0x505a, .end = 0x505a, .idx = -19856 }, + { .start = 0x505c, .end = 0x505c, .idx = -19857 }, + { .start = 0x5065, .end = 0x5065, .idx = -19865 }, + { .start = 0x506c, .end = 0x506c, .idx = -19871 }, + { .start = 0x5070, .end = 0x5070, .idx = -19874 }, + { .start = 0x5072, .end = 0x5072, .idx = -19875 }, + { .start = 0x5074, .end = 0x5076, .idx = -19876 }, + { .start = 0x5078, .end = 0x5078, .idx = -19877 }, + { .start = 0x507d, .end = 0x507d, .idx = -19881 }, + { .start = 0x5080, .end = 0x5080, .idx = -19883 }, + { .start = 0x5085, .end = 0x5085, .idx = -19887 }, + { .start = 0x508d, .end = 0x508d, .idx = -19894 }, + { .start = 0x5091, .end = 0x5091, .idx = -19897 }, + { .start = 0x5094, .end = 0x5094, .idx = -19899 }, + { .start = 0x5098, .end = 0x509a, .idx = -19902 }, + { .start = 0x50ac, .end = 0x50ad, .idx = -19919 }, + { .start = 0x50b2, .end = 0x50b5, .idx = -19923 }, + { .start = 0x50b7, .end = 0x50b7, .idx = -19924 }, + { .start = 0x50be, .end = 0x50be, .idx = -19930 }, + { .start = 0x50c2, .end = 0x50c2, .idx = -19933 }, + { .start = 0x50c5, .end = 0x50c5, .idx = -19935 }, + { .start = 0x50c9, .end = 0x50ca, .idx = -19938 }, + { .start = 0x50cd, .end = 0x50cd, .idx = -19940 }, + { .start = 0x50cf, .end = 0x50cf, .idx = -19941 }, + { .start = 0x50d1, .end = 0x50d1, .idx = -19942 }, + { .start = 0x50d5, .end = 0x50d6, .idx = -19945 }, + { .start = 0x50d8, .end = 0x50d8, .idx = -19946 }, + { .start = 0x50da, .end = 0x50da, .idx = -19947 }, + { .start = 0x50de, .end = 0x50de, .idx = -19950 }, + { .start = 0x50e3, .end = 0x50e3, .idx = -19954 }, + { .start = 0x50e5, .end = 0x50e5, .idx = -19955 }, + { .start = 0x50e7, .end = 0x50e7, .idx = -19956 }, + { .start = 0x50ed, .end = 0x50ee, .idx = -19961 }, + { .start = 0x50f4, .end = 0x50f5, .idx = -19966 }, + { .start = 0x50f9, .end = 0x50f9, .idx = -19969 }, + { .start = 0x50fb, .end = 0x50fb, .idx = -19970 }, + { .start = 0x5100, .end = 0x5102, .idx = -19974 }, + { .start = 0x5104, .end = 0x5104, .idx = -19975 }, + { .start = 0x5109, .end = 0x5109, .idx = -19979 }, + { .start = 0x5112, .end = 0x5112, .idx = -19987 }, + { .start = 0x5114, .end = 0x5116, .idx = -19988 }, + { .start = 0x5118, .end = 0x5118, .idx = -19989 }, + { .start = 0x511a, .end = 0x511a, .idx = -19990 }, + { .start = 0x511f, .end = 0x511f, .idx = -19994 }, + { .start = 0x5121, .end = 0x5121, .idx = -19995 }, + { .start = 0x512a, .end = 0x512a, .idx = -20003 }, + { .start = 0x5132, .end = 0x5132, .idx = -20010 }, + { .start = 0x5137, .end = 0x5137, .idx = -20014 }, + { .start = 0x513a, .end = 0x513c, .idx = -20016 }, + { .start = 0x513f, .end = 0x5141, .idx = -20018 }, + { .start = 0x5143, .end = 0x514e, .idx = -20019 }, + { .start = 0x5150, .end = 0x5150, .idx = -20020 }, + { .start = 0x5152, .end = 0x5152, .idx = -20021 }, + { .start = 0x5154, .end = 0x5154, .idx = -20022 }, + { .start = 0x515a, .end = 0x515a, .idx = -20027 }, + { .start = 0x515c, .end = 0x515c, .idx = -20028 }, + { .start = 0x5162, .end = 0x5162, .idx = -20033 }, + { .start = 0x5164, .end = 0x5165, .idx = -20034 }, + { .start = 0x5168, .end = 0x516e, .idx = -20036 }, + { .start = 0x5171, .end = 0x5171, .idx = -20038 }, + { .start = 0x5175, .end = 0x5178, .idx = -20041 }, + { .start = 0x517c, .end = 0x517c, .idx = -20044 }, + { .start = 0x5180, .end = 0x5180, .idx = -20047 }, + { .start = 0x5182, .end = 0x5182, .idx = -20048 }, + { .start = 0x5185, .end = 0x5186, .idx = -20050 }, + { .start = 0x5189, .end = 0x518a, .idx = -20052 }, + { .start = 0x518c, .end = 0x518d, .idx = -20053 }, + { .start = 0x518f, .end = 0x5193, .idx = -20054 }, + { .start = 0x5195, .end = 0x5197, .idx = -20055 }, + { .start = 0x5199, .end = 0x5199, .idx = -20056 }, + { .start = 0x519d, .end = 0x519d, .idx = -20059 }, + { .start = 0x51a0, .end = 0x51a0, .idx = -20061 }, + { .start = 0x51a2, .end = 0x51a2, .idx = -20062 }, + { .start = 0x51a4, .end = 0x51a6, .idx = -20063 }, + { .start = 0x51a8, .end = 0x51ac, .idx = -20064 }, + { .start = 0x51b0, .end = 0x51b7, .idx = -20067 }, + { .start = 0x51bd, .end = 0x51be, .idx = -20072 }, + { .start = 0x51c4, .end = 0x51c6, .idx = -20077 }, + { .start = 0x51c9, .end = 0x51c9, .idx = -20079 }, + { .start = 0x51cb, .end = 0x51cd, .idx = -20080 }, + { .start = 0x51d6, .end = 0x51d6, .idx = -20088 }, + { .start = 0x51db, .end = 0x51dd, .idx = -20092 }, + { .start = 0x51e0, .end = 0x51e1, .idx = -20094 }, + { .start = 0x51e6, .end = 0x51e7, .idx = -20098 }, + { .start = 0x51e9, .end = 0x51ea, .idx = -20099 }, + { .start = 0x51ec, .end = 0x51ed, .idx = -20100 }, + { .start = 0x51f0, .end = 0x51f1, .idx = -20102 }, + { .start = 0x51f5, .end = 0x51f6, .idx = -20105 }, + { .start = 0x51f8, .end = 0x51fa, .idx = -20106 }, + { .start = 0x51fd, .end = 0x51fe, .idx = -20108 }, + { .start = 0x5200, .end = 0x5200, .idx = -20109 }, + { .start = 0x5203, .end = 0x5204, .idx = -20111 }, + { .start = 0x5206, .end = 0x5208, .idx = -20112 }, + { .start = 0x520a, .end = 0x520b, .idx = -20113 }, + { .start = 0x520e, .end = 0x520e, .idx = -20115 }, + { .start = 0x5211, .end = 0x5211, .idx = -20117 }, + { .start = 0x5214, .end = 0x5215, .idx = -20119 }, + { .start = 0x5217, .end = 0x5217, .idx = -20120 }, + { .start = 0x521d, .end = 0x521d, .idx = -20125 }, + { .start = 0x5224, .end = 0x5225, .idx = -20131 }, + { .start = 0x5227, .end = 0x5227, .idx = -20132 }, + { .start = 0x5229, .end = 0x522a, .idx = -20133 }, + { .start = 0x522e, .end = 0x522e, .idx = -20136 }, + { .start = 0x5230, .end = 0x5230, .idx = -20137 }, + { .start = 0x5233, .end = 0x5233, .idx = -20139 }, + { .start = 0x5236, .end = 0x523b, .idx = -20141 }, + { .start = 0x5243, .end = 0x5244, .idx = -20148 }, + { .start = 0x5247, .end = 0x5247, .idx = -20150 }, + { .start = 0x524a, .end = 0x524d, .idx = -20152 }, + { .start = 0x524f, .end = 0x524f, .idx = -20153 }, + { .start = 0x5254, .end = 0x5254, .idx = -20157 }, + { .start = 0x5256, .end = 0x5256, .idx = -20158 }, + { .start = 0x525b, .e