Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcvs2svn <>2012-08-10 13:37:39 +0400
committercvs2svn <>2012-08-10 13:37:39 +0400
commit0339a726da6bbfbbebd4f8aeae8617ed0dbf3b53 (patch)
tree7c404aff7b4917ebd09d7c662c3be638b50af254
parentc0956742a74d194b9c18c7a91aa6d6010beb4cd3 (diff)
This commit was manufactured by cvs2svn to create tag 'cygwin-cygwin-1_7_15-release
1_7_15-release'. Sprout from cygwin-64bit-branch 2012-08-10 09:37:33 UTC cvs2svn 'This commit was manufactured by cvs2svn to create branch 'cygwin-64bit-' Cherrypick from master 2012-05-09 07:32:48 UTC Yaakov Selkowitz <yselkowi@redhat.com> ' * new-features.sgml (ov-new1.7.15): Fix XML syntax.': COPYING3 COPYING3.LIB ChangeLog MAINTAINERS compile config.rpath config/ChangeLog config/mh-darwin config/mh-interix config/mh-ppc-aix config/mt-alphaieee config/mt-sde config/picflag.m4 config/stdint.m4 config/tcl.m4 configure configure.ac include/ChangeLog include/dis-asm.h include/dwarf2.def include/dwarf2.h include/elf/ChangeLog include/elf/avr.h include/elf/common.h include/elf/m68hc11.h include/elf/ppc.h include/elf/s390.h include/filenames.h include/gdb/ChangeLog include/gdb/callback.h include/gdb/signals.def include/gdb/signals.h include/mach-o/ChangeLog include/mach-o/codesign.h include/mach-o/external.h include/mach-o/loader.h include/mach-o/reloc.h include/mach-o/x86-64.h include/opcode/ChangeLog include/opcode/avr.h include/opcode/m68hc11.h include/opcode/mips.h include/opcode/ppc.h include/opcode/xgate.h include/plugin-api.h ltgcc.m4 ltoptions.m4 ltversion.m4 lt~obsolete.m4 newlib/ChangeLog newlib/doc/Makefile.am newlib/doc/Makefile.in newlib/libc/include/stdio.h newlib/libc/include/string.h newlib/libc/include/sys/signal.h newlib/libc/include/sys/stat.h newlib/libc/include/sys/time.h newlib/libc/include/sys/times.h newlib/libc/include/sys/types.h newlib/libc/include/sys/unistd.h newlib/libc/include/sys/wait.h newlib/libc/locale/lmessages.c newlib/libc/locale/lmonetary.c newlib/libc/locale/nl_langinfo.c newlib/libc/machine/cr16/sys/asm.h newlib/libc/machine/epiphany/Makefile.am newlib/libc/machine/epiphany/Makefile.in newlib/libc/machine/epiphany/aclocal.m4 newlib/libc/machine/epiphany/configure newlib/libc/machine/epiphany/configure.in newlib/libc/machine/epiphany/machine/stdlib.h newlib/libc/machine/epiphany/setjmp.S newlib/libc/machine/rl78/Makefile.am newlib/libc/machine/rl78/Makefile.in newlib/libc/machine/rl78/aclocal.m4 newlib/libc/machine/rl78/configure newlib/libc/machine/rl78/configure.in newlib/libc/machine/rl78/setjmp.S newlib/libc/posix/collate.c newlib/libc/posix/engine.c newlib/libc/posix/glob.c newlib/libc/posix/popen.c newlib/libc/posix/readdir.c newlib/libc/posix/regcomp.c newlib/libc/posix/telldir.c newlib/libc/posix/wordexp.c newlib/libc/reent/mkdirr.c newlib/libc/reent/renamer.c newlib/libc/search/hash.c newlib/libc/search/hash_bigkey.c newlib/libc/search/hash_page.c newlib/libc/search/hcreate_r.c newlib/libc/stdio/asiprintf.c newlib/libc/stdio/asprintf.c newlib/libc/stdio/clearerr.c newlib/libc/stdio/fclose.c newlib/libc/stdio/fdopen.c newlib/libc/stdio/feof.c newlib/libc/stdio/ferror.c newlib/libc/stdio/fflush.c newlib/libc/stdio/fgetc.c newlib/libc/stdio/fgets.c newlib/libc/stdio/fgetwc.c newlib/libc/stdio/fgetws.c newlib/libc/stdio/fileno.c newlib/libc/stdio/findfp.c newlib/libc/stdio/fmemopen.c newlib/libc/stdio/fopen.c newlib/libc/stdio/fopencookie.c newlib/libc/stdio/fpurge.c newlib/libc/stdio/fputc.c newlib/libc/stdio/fputs.c newlib/libc/stdio/fputwc.c newlib/libc/stdio/fputws.c newlib/libc/stdio/fread.c newlib/libc/stdio/freopen.c newlib/libc/stdio/fseek.c newlib/libc/stdio/ftell.c newlib/libc/stdio/funopen.c newlib/libc/stdio/fwide.c newlib/libc/stdio/fwrite.c newlib/libc/stdio/getc.c newlib/libc/stdio/getdelim.c newlib/libc/stdio/gets.c newlib/libc/stdio/local.h newlib/libc/stdio/mktemp.c newlib/libc/stdio/open_memstream.c newlib/libc/stdio/putc.c newlib/libc/stdio/setvbuf.c newlib/libc/stdio/ungetc.c newlib/libc/stdio/ungetwc.c newlib/libc/stdio/vasiprintf.c newlib/libc/stdio/vasprintf.c newlib/libc/stdio/vfprintf.c newlib/libc/stdio/vfscanf.c newlib/libc/stdio/vfwprintf.c newlib/libc/stdio/vfwscanf.c newlib/libc/stdio64/fdopen64.c newlib/libc/stdio64/fopen64.c newlib/libc/stdio64/freopen64.c newlib/libc/stdio64/fseeko64.c newlib/libc/stdio64/ftello64.c newlib/libc/stdlib/mbtowc_r.c newlib/libc/stdlib/mprec.h newlib/libc/stdlib/wctomb_r.c newlib/libc/string/Makefile.am newlib/libc/string/Makefile.in newlib/libc/string/strcasestr.c newlib/libc/sys/epiphany/Makefile.am newlib/libc/sys/epiphany/Makefile.in newlib/libc/sys/epiphany/aclocal.m4 newlib/libc/sys/epiphany/configure newlib/libc/sys/epiphany/configure.in newlib/libc/sys/epiphany/e_printf.c newlib/libc/sys/rtems/crt0.c newlib/libc/sys/rtems/machine/_types.h newlib/libc/sys/sysnecv850/crt0.S newlib/libc/time/strptime.c newlib/libm/common/sf_round.c newlib/libm/math/e_atan2.c newlib/libm/math/e_exp.c newlib/libm/math/e_pow.c newlib/libm/math/e_rem_pio2.c newlib/libm/math/ef_exp.c newlib/libm/math/ef_pow.c newlib/libm/math/er_lgamma.c newlib/libm/math/erf_lgamma.c newlib/testsuite/newlib.stdio/stdio.exp newlib/testsuite/newlib.stdio/swprintf.c winsup/ChangeLog winsup/Makefile.common winsup/cygserver/ChangeLog winsup/cygserver/woutsup.h winsup/cygwin/ChangeLog winsup/cygwin/DevNotes winsup/cygwin/Makefile.in winsup/cygwin/advapi32.cc winsup/cygwin/child_info.h winsup/cygwin/configure.in winsup/cygwin/cygheap.cc winsup/cygwin/cygheap.h winsup/cygwin/cygserver_ipc.h winsup/cygwin/cygthread.cc winsup/cygwin/cygtls.cc winsup/cygwin/cygtls.h winsup/cygwin/cygwin.din winsup/cygwin/cygwin.sc winsup/cygwin/dcrt0.cc winsup/cygwin/devices.cc winsup/cygwin/devices.in winsup/cygwin/dll_init.cc winsup/cygwin/dtable.cc winsup/cygwin/dtable.h winsup/cygwin/exceptions.cc winsup/cygwin/external.cc winsup/cygwin/fhandler.cc winsup/cygwin/fhandler.h winsup/cygwin/fhandler_clipboard.cc winsup/cygwin/fhandler_console.cc winsup/cygwin/fhandler_disk_file.cc winsup/cygwin/fhandler_dsp.cc winsup/cygwin/fhandler_fifo.cc winsup/cygwin/fhandler_mem.cc winsup/cygwin/fhandler_procnet.cc winsup/cygwin/fhandler_registry.cc winsup/cygwin/fhandler_serial.cc winsup/cygwin/fhandler_socket.cc winsup/cygwin/fhandler_tape.cc winsup/cygwin/fhandler_termios.cc winsup/cygwin/fhandler_tty.cc winsup/cygwin/fhandler_virtual.cc winsup/cygwin/fhandler_windows.cc winsup/cygwin/flock.cc winsup/cygwin/gendef winsup/cygwin/gentls_offsets winsup/cygwin/globals.cc winsup/cygwin/heap.cc winsup/cygwin/hookapi.cc winsup/cygwin/include/cygwin/if.h winsup/cygwin/include/cygwin/in.h winsup/cygwin/include/cygwin/socket.h winsup/cygwin/include/cygwin/version.h winsup/cygwin/include/elf.h winsup/cygwin/include/inttypes.h winsup/cygwin/include/mntent.h winsup/cygwin/include/netdb.h winsup/cygwin/include/stdint.h winsup/cygwin/include/sys/elf32.h winsup/cygwin/include/sys/elf64.h winsup/cygwin/include/sys/elf_common.h winsup/cygwin/include/sys/elf_generic.h winsup/cygwin/include/sys/wait.h winsup/cygwin/kernel32.cc winsup/cygwin/lib/_cygwin_crt0_common.cc winsup/cygwin/lib/crt0.h winsup/cygwin/libc/inet_addr.c winsup/cygwin/libc/inet_network.c winsup/cygwin/libc/minires-os-if.c winsup/cygwin/libc/minires.h winsup/cygwin/libc/rcmd.cc winsup/cygwin/miscfuncs.cc winsup/cygwin/miscfuncs.h winsup/cygwin/mkvers.sh winsup/cygwin/mount.cc winsup/cygwin/mount.h winsup/cygwin/net.cc winsup/cygwin/ntdll.h winsup/cygwin/passwd.cc winsup/cygwin/path.cc winsup/cygwin/path.h winsup/cygwin/pinfo.cc winsup/cygwin/pipe.cc winsup/cygwin/poll.cc winsup/cygwin/posix.sgml winsup/cygwin/posix_ipc.cc winsup/cygwin/pseudo-reloc.cc winsup/cygwin/regex/regcomp.c winsup/cygwin/registry.cc winsup/cygwin/release/1.7.10 winsup/cygwin/release/1.7.11 winsup/cygwin/release/1.7.12 winsup/cygwin/release/1.7.13 winsup/cygwin/release/1.7.14 winsup/cygwin/release/1.7.15 winsup/cygwin/sched.cc winsup/cygwin/sec_helper.cc winsup/cygwin/security.cc winsup/cygwin/security.h winsup/cygwin/select.cc winsup/cygwin/select.h winsup/cygwin/shared.cc winsup/cygwin/signal.cc winsup/cygwin/sigproc.cc winsup/cygwin/sigproc.h winsup/cygwin/smallprint.cc winsup/cygwin/spawn.cc winsup/cygwin/strace.cc winsup/cygwin/strfuncs.cc winsup/cygwin/syscalls.cc winsup/cygwin/syslog.cc winsup/cygwin/thread.cc winsup/cygwin/thread.h winsup/cygwin/tlsoffsets.h winsup/cygwin/wait.cc winsup/cygwin/winbase.h winsup/cygwin/wincap.cc winsup/cygwin/winlean.h winsup/cygwin/winsup.h winsup/doc/ChangeLog winsup/doc/faq-programming.xml winsup/doc/faq-using.xml winsup/doc/new-features.sgml winsup/doc/pathnames.sgml winsup/doc/setup-net.sgml winsup/doc/using.sgml winsup/lsaauth/ChangeLog winsup/lsaauth/Makefile.in winsup/lsaauth/cyglsa.c winsup/lsaauth/cyglsa64.dll winsup/lsaauth/make-64bit-version-with-mingw-w64.sh winsup/mingw/ChangeLog winsup/mingw/configure winsup/mingw/configure.in winsup/mingw/include/_mingw.h winsup/mingw/include/excpt.h winsup/mingw/include/inttypes.h winsup/mingw/include/limits.h winsup/mingw/include/process.h winsup/mingw/include/stdint.h winsup/mingw/include/stdio.h winsup/mingw/include/stdlib.h winsup/mingw/include/sys/param.h winsup/mingw/include/wchar.h winsup/mingw/mingwex/Makefile.in winsup/mingw/mingwex/gdtoa/gd_qnan.h winsup/mingw/mingwex/tsearch.c winsup/utils/ChangeLog winsup/utils/Makefile.in winsup/utils/bloda.cc winsup/utils/cygcheck.cc winsup/utils/cygpath.cc winsup/utils/dump_setup.cc winsup/utils/dumper.cc winsup/utils/locale.cc winsup/utils/ps.cc winsup/utils/regtool.cc winsup/utils/strace.cc winsup/w32api/ChangeLog winsup/w32api/include/setupapi.h winsup/w32api/include/winbase.h winsup/w32api/include/windows.h winsup/w32api/include/winnt.h winsup/w32api/include/winsock.h winsup/w32api/include/winsock2.h winsup/w32api/include/winuser.h winsup/w32api/include/winver.h winsup/w32api/include/wtsapi32.h winsup/w32api/lib/Makefile.in winsup/w32api/lib/kernel32.def winsup/w32api/lib/wtsapi32.def Delete: config/asmcfi.m4 config/math.m4 config/mmap.m4 config/weakref.m4 include/gdb/gdb-index.h include/leb128.h newlib/libc/string/memrchr.c winsup/cygwin/cygwait.cc winsup/cygwin/cygwait.h winsup/cygwin/include/machine/elf.h winsup/cygwin/include/sys/elf.h winsup/mingw/mingwex/membarrier.c winsup/w32api/include/sdkddkver.h
-rw-r--r--COPYING3674
-rw-r--r--COPYING3.LIB165
-rw-r--r--ChangeLog48
-rw-r--r--MAINTAINERS10
-rwxr-xr-xcompile143
-rwxr-xr-xconfig.rpath543
-rw-r--r--config/ChangeLog53
-rw-r--r--config/asmcfi.m415
-rw-r--r--config/math.m450
-rw-r--r--config/mh-darwin4
-rw-r--r--config/mh-interix2
-rw-r--r--config/mh-ppc-aix2
-rw-r--r--config/mmap.m497
-rw-r--r--config/mt-alphaieee1
-rw-r--r--config/mt-sde2
-rw-r--r--config/picflag.m45
-rw-r--r--config/stdint.m42
-rw-r--r--config/tcl.m46
-rw-r--r--config/weakref.m447
-rwxr-xr-xconfigure21
-rw-r--r--configure.ac3256
-rw-r--r--include/ChangeLog63
-rw-r--r--include/dis-asm.h4
-rw-r--r--include/dwarf2.def7
-rw-r--r--include/dwarf2.h5
-rw-r--r--include/elf/ChangeLog52
-rw-r--r--include/elf/avr.h26
-rw-r--r--include/elf/common.h14
-rw-r--r--include/elf/m68hc11.h18
-rw-r--r--include/elf/ppc.h27
-rw-r--r--include/elf/s390.h1
-rw-r--r--include/filenames.h6
-rw-r--r--include/gdb/ChangeLog16
-rw-r--r--include/gdb/callback.h2
-rw-r--r--include/gdb/gdb-index.h99
-rw-r--r--include/gdb/signals.def300
-rw-r--r--include/gdb/signals.h4
-rw-r--r--include/leb128.h136
-rw-r--r--include/mach-o/ChangeLog51
-rw-r--r--include/mach-o/codesign.h85
-rw-r--r--include/mach-o/external.h326
-rw-r--r--include/mach-o/loader.h360
-rw-r--r--include/mach-o/reloc.h33
-rw-r--r--include/mach-o/x86-64.h37
-rw-r--r--include/opcode/ChangeLog45
-rw-r--r--include/opcode/avr.h12
-rw-r--r--include/opcode/m68hc11.h50
-rw-r--r--include/opcode/mips.h52
-rw-r--r--include/opcode/ppc.h43
-rw-r--r--include/opcode/xgate.h2
-rw-r--r--include/plugin-api.h3
-rw-r--r--ltgcc.m460
-rw-r--r--ltoptions.m4369
-rw-r--r--ltversion.m423
-rw-r--r--lt~obsolete.m498
-rw-r--r--newlib/ChangeLog198
-rw-r--r--newlib/doc/Makefile.am2
-rw-r--r--newlib/doc/Makefile.in2
-rw-r--r--newlib/libc/include/stdio.h3
-rw-r--r--newlib/libc/include/string.h1
-rw-r--r--newlib/libc/include/sys/signal.h3
-rw-r--r--newlib/libc/include/sys/stat.h2
-rw-r--r--newlib/libc/include/sys/time.h8
-rw-r--r--newlib/libc/include/sys/times.h3
-rw-r--r--newlib/libc/include/sys/types.h9
-rw-r--r--newlib/libc/include/sys/unistd.h2
-rw-r--r--newlib/libc/include/sys/wait.h4
-rw-r--r--newlib/libc/locale/lmessages.c2
-rw-r--r--newlib/libc/locale/lmonetary.c2
-rw-r--r--newlib/libc/locale/nl_langinfo.c5
-rw-r--r--newlib/libc/machine/cr16/sys/asm.h473
-rw-r--r--newlib/libc/machine/epiphany/Makefile.am42
-rw-r--r--newlib/libc/machine/epiphany/Makefile.in413
-rw-r--r--newlib/libc/machine/epiphany/aclocal.m4992
-rwxr-xr-xnewlib/libc/machine/epiphany/configure4745
-rw-r--r--newlib/libc/machine/epiphany/configure.in41
-rw-r--r--newlib/libc/machine/epiphany/machine/stdlib.h15
-rw-r--r--newlib/libc/machine/epiphany/setjmp.S65
-rw-r--r--newlib/libc/machine/rl78/Makefile.am16
-rw-r--r--newlib/libc/machine/rl78/Makefile.in413
-rw-r--r--newlib/libc/machine/rl78/aclocal.m4992
-rwxr-xr-xnewlib/libc/machine/rl78/configure4745
-rw-r--r--newlib/libc/machine/rl78/configure.in14
-rw-r--r--newlib/libc/machine/rl78/setjmp.S150
-rw-r--r--newlib/libc/posix/collate.c19
-rw-r--r--newlib/libc/posix/engine.c14
-rw-r--r--newlib/libc/posix/glob.c4
-rw-r--r--newlib/libc/posix/popen.c5
-rw-r--r--newlib/libc/posix/readdir.c6
-rw-r--r--newlib/libc/posix/regcomp.c14
-rw-r--r--newlib/libc/posix/telldir.c3
-rw-r--r--newlib/libc/posix/wordexp.c3
-rw-r--r--newlib/libc/reent/mkdirr.c2
-rw-r--r--newlib/libc/reent/renamer.c1
-rw-r--r--newlib/libc/search/hash.c16
-rw-r--r--newlib/libc/search/hash_bigkey.c3
-rw-r--r--newlib/libc/search/hash_page.c2
-rw-r--r--newlib/libc/search/hcreate_r.c3
-rw-r--r--newlib/libc/stdio/asiprintf.c4
-rw-r--r--newlib/libc/stdio/asprintf.c4
-rw-r--r--newlib/libc/stdio/clearerr.c4
-rw-r--r--newlib/libc/stdio/fclose.c12
-rw-r--r--newlib/libc/stdio/fdopen.c4
-rw-r--r--newlib/libc/stdio/feof.c4
-rw-r--r--newlib/libc/stdio/ferror.c4
-rw-r--r--newlib/libc/stdio/fflush.c4
-rw-r--r--newlib/libc/stdio/fgetc.c8
-rw-r--r--newlib/libc/stdio/fgets.c12
-rw-r--r--newlib/libc/stdio/fgetwc.c4
-rw-r--r--newlib/libc/stdio/fgetws.c16
-rw-r--r--newlib/libc/stdio/fileno.c13
-rw-r--r--newlib/libc/stdio/findfp.c11
-rw-r--r--newlib/libc/stdio/fmemopen.c8
-rw-r--r--newlib/libc/stdio/fopen.c8
-rw-r--r--newlib/libc/stdio/fopencookie.c8
-rw-r--r--newlib/libc/stdio/fpurge.c6
-rw-r--r--newlib/libc/stdio/fputc.c8
-rw-r--r--newlib/libc/stdio/fputs.c4
-rw-r--r--newlib/libc/stdio/fputwc.c4
-rw-r--r--newlib/libc/stdio/fputws.c6
-rw-r--r--newlib/libc/stdio/fread.c14
-rw-r--r--newlib/libc/stdio/freopen.c17
-rw-r--r--newlib/libc/stdio/fseek.c18
-rw-r--r--newlib/libc/stdio/ftell.c8
-rw-r--r--newlib/libc/stdio/funopen.c8
-rw-r--r--newlib/libc/stdio/fwide.c4
-rw-r--r--newlib/libc/stdio/fwrite.c6
-rw-r--r--newlib/libc/stdio/getc.c8
-rw-r--r--newlib/libc/stdio/getdelim.c4
-rw-r--r--newlib/libc/stdio/gets.c7
-rw-r--r--newlib/libc/stdio/local.h77
-rw-r--r--newlib/libc/stdio/mktemp.c2
-rw-r--r--newlib/libc/stdio/open_memstream.c12
-rw-r--r--newlib/libc/stdio/putc.c8
-rw-r--r--newlib/libc/stdio/setvbuf.c8
-rw-r--r--newlib/libc/stdio/ungetc.c14
-rw-r--r--newlib/libc/stdio/ungetwc.c4
-rw-r--r--newlib/libc/stdio/vasiprintf.c2
-rw-r--r--newlib/libc/stdio/vasprintf.c2
-rw-r--r--newlib/libc/stdio/vfprintf.c18
-rw-r--r--newlib/libc/stdio/vfscanf.c25
-rw-r--r--newlib/libc/stdio/vfwprintf.c19
-rw-r--r--newlib/libc/stdio/vfwscanf.c18
-rw-r--r--newlib/libc/stdio64/fdopen64.c4
-rw-r--r--newlib/libc/stdio64/fopen64.c8
-rw-r--r--newlib/libc/stdio64/freopen64.c23
-rw-r--r--newlib/libc/stdio64/fseeko64.c12
-rw-r--r--newlib/libc/stdio64/ftello64.c8
-rw-r--r--newlib/libc/stdlib/mbtowc_r.c2
-rw-r--r--newlib/libc/stdlib/mprec.h2
-rw-r--r--newlib/libc/stdlib/wctomb_r.c2
-rw-r--r--newlib/libc/string/Makefile.am3
-rw-r--r--newlib/libc/string/Makefile.in11
-rw-r--r--newlib/libc/string/memrchr.c134
-rw-r--r--newlib/libc/string/strcasestr.c5
-rw-r--r--newlib/libc/sys/epiphany/Makefile.am43
-rw-r--r--newlib/libc/sys/epiphany/Makefile.in439
-rw-r--r--newlib/libc/sys/epiphany/aclocal.m4992
-rwxr-xr-xnewlib/libc/sys/epiphany/configure4745
-rw-r--r--newlib/libc/sys/epiphany/configure.in41
-rw-r--r--newlib/libc/sys/epiphany/e_printf.c150
-rw-r--r--newlib/libc/sys/rtems/crt0.c9
-rw-r--r--newlib/libc/sys/rtems/machine/_types.h5
-rw-r--r--newlib/libc/sys/sysnecv850/crt0.S2
-rw-r--r--newlib/libc/time/strptime.c4
-rw-r--r--newlib/libm/common/sf_round.c4
-rw-r--r--newlib/libm/math/e_atan2.c2
-rw-r--r--newlib/libm/math/e_exp.c3
-rw-r--r--newlib/libm/math/e_pow.c3
-rw-r--r--newlib/libm/math/e_rem_pio2.c2
-rw-r--r--newlib/libm/math/ef_exp.c3
-rw-r--r--newlib/libm/math/ef_pow.c3
-rw-r--r--newlib/libm/math/er_lgamma.c2
-rw-r--r--newlib/libm/math/erf_lgamma.c2
-rw-r--r--newlib/testsuite/newlib.stdio/stdio.exp12
-rw-r--r--newlib/testsuite/newlib.stdio/swprintf.c30
-rw-r--r--winsup/ChangeLog10
-rw-r--r--winsup/Makefile.common6
-rw-r--r--winsup/cygserver/ChangeLog4
-rw-r--r--winsup/cygserver/woutsup.h17
-rw-r--r--winsup/cygwin/ChangeLog990
-rw-r--r--winsup/cygwin/DevNotes228
-rw-r--r--winsup/cygwin/Makefile.in22
-rw-r--r--winsup/cygwin/advapi32.cc5
-rw-r--r--winsup/cygwin/child_info.h4
-rw-r--r--winsup/cygwin/cygheap.cc127
-rw-r--r--winsup/cygwin/cygheap.h10
-rw-r--r--winsup/cygwin/cygserver_ipc.h2
-rw-r--r--winsup/cygwin/cygthread.cc2
-rw-r--r--winsup/cygwin/cygtls.cc98
-rw-r--r--winsup/cygwin/cygtls.h60
-rw-r--r--winsup/cygwin/cygwait.cc106
-rw-r--r--winsup/cygwin/cygwait.h60
-rw-r--r--winsup/cygwin/cygwin.din2
-rw-r--r--winsup/cygwin/cygwin.sc1
-rw-r--r--winsup/cygwin/dcrt0.cc28
-rw-r--r--winsup/cygwin/devices.cc2
-rw-r--r--winsup/cygwin/devices.in2
-rw-r--r--winsup/cygwin/dll_init.cc9
-rw-r--r--winsup/cygwin/dtable.cc21
-rw-r--r--winsup/cygwin/dtable.h1
-rw-r--r--winsup/cygwin/exceptions.cc248
-rw-r--r--winsup/cygwin/external.cc8
-rw-r--r--winsup/cygwin/fhandler.cc3
-rw-r--r--winsup/cygwin/fhandler.h12
-rw-r--r--winsup/cygwin/fhandler_clipboard.cc129
-rw-r--r--winsup/cygwin/fhandler_console.cc8
-rw-r--r--winsup/cygwin/fhandler_disk_file.cc30
-rw-r--r--winsup/cygwin/fhandler_dsp.cc9
-rw-r--r--winsup/cygwin/fhandler_fifo.cc17
-rw-r--r--winsup/cygwin/fhandler_mem.cc4
-rw-r--r--winsup/cygwin/fhandler_procnet.cc10
-rw-r--r--winsup/cygwin/fhandler_registry.cc3
-rw-r--r--winsup/cygwin/fhandler_serial.cc35
-rw-r--r--winsup/cygwin/fhandler_socket.cc73
-rw-r--r--winsup/cygwin/fhandler_tape.cc20
-rw-r--r--winsup/cygwin/fhandler_termios.cc4
-rw-r--r--winsup/cygwin/fhandler_tty.cc35
-rw-r--r--winsup/cygwin/fhandler_virtual.cc1
-rw-r--r--winsup/cygwin/fhandler_windows.cc62
-rw-r--r--winsup/cygwin/flock.cc4
-rwxr-xr-xwinsup/cygwin/gendef71
-rwxr-xr-xwinsup/cygwin/gentls_offsets4
-rw-r--r--winsup/cygwin/globals.cc1
-rw-r--r--winsup/cygwin/heap.cc11
-rw-r--r--winsup/cygwin/hookapi.cc24
-rw-r--r--winsup/cygwin/include/cygwin/if.h2
-rw-r--r--winsup/cygwin/include/cygwin/in.h4
-rw-r--r--winsup/cygwin/include/cygwin/socket.h7
-rw-r--r--winsup/cygwin/include/cygwin/version.h6
-rw-r--r--winsup/cygwin/include/elf.h48
-rw-r--r--winsup/cygwin/include/inttypes.h183
-rw-r--r--winsup/cygwin/include/machine/elf.h117
-rw-r--r--winsup/cygwin/include/mntent.h1
-rw-r--r--winsup/cygwin/include/netdb.h2
-rw-r--r--winsup/cygwin/include/stdint.h132
-rw-r--r--winsup/cygwin/include/sys/elf.h41
-rw-r--r--winsup/cygwin/include/sys/elf32.h119
-rw-r--r--winsup/cygwin/include/sys/elf64.h114
-rw-r--r--winsup/cygwin/include/sys/elf_common.h1145
-rw-r--r--winsup/cygwin/include/sys/elf_generic.h53
-rw-r--r--winsup/cygwin/include/sys/wait.h6
-rw-r--r--winsup/cygwin/kernel32.cc7
-rw-r--r--winsup/cygwin/lib/_cygwin_crt0_common.cc3
-rw-r--r--winsup/cygwin/lib/crt0.h2
-rw-r--r--winsup/cygwin/libc/inet_addr.c3
-rw-r--r--winsup/cygwin/libc/inet_network.c3
-rw-r--r--winsup/cygwin/libc/minires-os-if.c17
-rw-r--r--winsup/cygwin/libc/minires.h6
-rw-r--r--winsup/cygwin/libc/rcmd.cc1
-rw-r--r--winsup/cygwin/miscfuncs.cc2
-rw-r--r--winsup/cygwin/miscfuncs.h4
-rw-r--r--winsup/cygwin/mount.cc30
-rw-r--r--winsup/cygwin/mount.h2
-rw-r--r--winsup/cygwin/net.cc121
-rw-r--r--winsup/cygwin/ntdll.h86
-rw-r--r--winsup/cygwin/passwd.cc19
-rw-r--r--winsup/cygwin/path.cc61
-rw-r--r--winsup/cygwin/path.h2
-rw-r--r--winsup/cygwin/pinfo.cc3
-rw-r--r--winsup/cygwin/pipe.cc10
-rw-r--r--winsup/cygwin/poll.cc4
-rw-r--r--winsup/cygwin/posix.sgml2
-rw-r--r--winsup/cygwin/posix_ipc.cc9
-rw-r--r--winsup/cygwin/pseudo-reloc.cc8
-rw-r--r--winsup/cygwin/regex/regcomp.c3
-rw-r--r--winsup/cygwin/registry.cc2
-rw-r--r--winsup/cygwin/release/1.7.10126
-rw-r--r--winsup/cygwin/release/1.7.1129
-rw-r--r--winsup/cygwin/release/1.7.1221
-rw-r--r--winsup/cygwin/release/1.7.138
-rw-r--r--winsup/cygwin/release/1.7.1421
-rw-r--r--winsup/cygwin/release/1.7.1529
-rw-r--r--winsup/cygwin/sched.cc2
-rw-r--r--winsup/cygwin/sec_helper.cc74
-rw-r--r--winsup/cygwin/security.cc14
-rw-r--r--winsup/cygwin/security.h21
-rw-r--r--winsup/cygwin/select.cc349
-rw-r--r--winsup/cygwin/select.h20
-rw-r--r--winsup/cygwin/shared.cc4
-rw-r--r--winsup/cygwin/signal.cc60
-rw-r--r--winsup/cygwin/sigproc.cc25
-rw-r--r--winsup/cygwin/sigproc.h38
-rw-r--r--winsup/cygwin/smallprint.cc35
-rw-r--r--winsup/cygwin/spawn.cc15
-rw-r--r--winsup/cygwin/strace.cc4
-rw-r--r--winsup/cygwin/strfuncs.cc22
-rw-r--r--winsup/cygwin/syscalls.cc183
-rw-r--r--winsup/cygwin/syslog.cc8
-rw-r--r--winsup/cygwin/thread.cc145
-rw-r--r--winsup/cygwin/thread.h25
-rw-r--r--winsup/cygwin/tlsoffsets.h146
-rw-r--r--winsup/cygwin/wait.cc5
-rw-r--r--winsup/cygwin/winbase.h48
-rw-r--r--winsup/cygwin/wincap.cc86
-rw-r--r--winsup/cygwin/winlean.h65
-rw-r--r--winsup/cygwin/winsup.h26
-rw-r--r--winsup/doc/ChangeLog30
-rw-r--r--winsup/doc/faq-programming.xml52
-rw-r--r--winsup/doc/faq-using.xml6
-rw-r--r--winsup/doc/new-features.sgml17
-rw-r--r--winsup/doc/pathnames.sgml30
-rw-r--r--winsup/doc/setup-net.sgml1
-rw-r--r--winsup/doc/using.sgml2
-rw-r--r--winsup/lsaauth/ChangeLog8
-rw-r--r--winsup/lsaauth/Makefile.in6
-rw-r--r--winsup/lsaauth/cyglsa.c46
-rw-r--r--winsup/lsaauth/cyglsa64.dllbin8704 -> 8704 bytes
-rw-r--r--winsup/lsaauth/make-64bit-version-with-mingw-w64.sh6
-rw-r--r--winsup/mingw/ChangeLog55
-rwxr-xr-xwinsup/mingw/configure2
-rw-r--r--winsup/mingw/configure.in2
-rw-r--r--winsup/mingw/include/_mingw.h25
-rw-r--r--winsup/mingw/include/excpt.h23
-rw-r--r--winsup/mingw/include/inttypes.h39
-rw-r--r--winsup/mingw/include/limits.h4
-rw-r--r--winsup/mingw/include/process.h22
-rw-r--r--winsup/mingw/include/stdint.h1
-rw-r--r--winsup/mingw/include/stdio.h8
-rw-r--r--winsup/mingw/include/stdlib.h9
-rw-r--r--winsup/mingw/include/sys/param.h4
-rw-r--r--winsup/mingw/include/wchar.h4
-rw-r--r--winsup/mingw/mingwex/Makefile.in4
-rw-r--r--winsup/mingw/mingwex/gdtoa/gd_qnan.h8
-rw-r--r--winsup/mingw/mingwex/membarrier.c19
-rwxr-xr-xwinsup/mingw/mingwex/tsearch.c26
-rw-r--r--winsup/utils/ChangeLog43
-rw-r--r--winsup/utils/Makefile.in2
-rw-r--r--winsup/utils/bloda.cc93
-rw-r--r--winsup/utils/cygcheck.cc14
-rw-r--r--winsup/utils/cygpath.cc51
-rw-r--r--winsup/utils/dump_setup.cc18
-rw-r--r--winsup/utils/dumper.cc3
-rw-r--r--winsup/utils/locale.cc4
-rw-r--r--winsup/utils/ps.cc6
-rw-r--r--winsup/utils/regtool.cc4
-rw-r--r--winsup/utils/strace.cc10
-rw-r--r--winsup/w32api/ChangeLog58
-rw-r--r--winsup/w32api/include/sdkddkver.h141
-rw-r--r--winsup/w32api/include/setupapi.h12
-rw-r--r--winsup/w32api/include/winbase.h6
-rw-r--r--winsup/w32api/include/windows.h2
-rw-r--r--winsup/w32api/include/winnt.h13
-rw-r--r--winsup/w32api/include/winsock.h4
-rw-r--r--winsup/w32api/include/winsock2.h4
-rw-r--r--winsup/w32api/include/winuser.h4
-rw-r--r--winsup/w32api/include/winver.h4
-rw-r--r--winsup/w32api/include/wtsapi32.h52
-rw-r--r--winsup/w32api/lib/Makefile.in9
-rw-r--r--winsup/w32api/lib/kernel32.def6
-rwxr-xr-xwinsup/w32api/lib/wtsapi32.def1
351 files changed, 28391 insertions, 7520 deletions
diff --git a/COPYING3 b/COPYING3
new file mode 100644
index 000000000..94a9ed024
--- /dev/null
+++ b/COPYING3
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/COPYING3.LIB b/COPYING3.LIB
new file mode 100644
index 000000000..fc8a5de7e
--- /dev/null
+++ b/COPYING3.LIB
@@ -0,0 +1,165 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
diff --git a/ChangeLog b/ChangeLog
index f4fbf7e8e..0dc7a324a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,27 +1,3 @@
-2012-06-28 Christophe Lyon <christophe.lyon@st.com>
-
- * configure.ac (CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Make sure
- they contain -O2.
- * configure: Regenerate.
-
-2012-05-14 Catherine Moore <clm@codesourcery.com>
-
- * NEWS: Mention PowerPC VLE port.
-
-2012-05-11 Mike Frysinger <vapier@gentoo.org>
-
- * MAINTAINERS (config/): Move to intl/ section.
- (compile; depcomp; install-sh; missing; ylwrap): Likewise.
-
-2012-05-09 Nick Clifton <nickc@redhat.com>
- Paul Smith <psmith@gnu.org>
-
- PR bootstrap/50461
- * configure.ac (mpfr-dir): When using in-tree MPFR sources
- allow for the fact that from release v3.1.0 of MPFR the source
- files were moved into a src sub-directory.
- * configure: Regenerate.
-
2012-05-02 Roland McGrath <mcgrathr@google.com>
* configure.ac (ENABLE_GOLD): Consider *-*-nacl* targets ELF.
@@ -126,7 +102,7 @@
2011-09-09 Linas Vepstas <linasvepstas@gmail.com>
Ben Elliston <bje@gnu.org>
- * config.sub (hexagon, hexagon-*): New.
+ * config.sub (hexagon, hexagon-*): New.
2011-08-23 Roland McGrath <mcgrathr@google.com>
@@ -618,8 +594,8 @@
2011-03-03 Sebastian Pop <sebastian.pop@amd.com>
- * configure.ac: Adjust test of with_ppl.
- * configure: Regenerated.
+ * configure.ac: Adjust test of with_ppl.
+ * configure: Regenerated.
2011-03-02 Sebastian Pop <sebastian.pop@amd.com>
@@ -1226,11 +1202,11 @@
* lt~obsolete.m4: Likewise.
2010-01-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
- Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+ Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
PR bootstrap/42424
* configure.ac: Include libtool m4 files.
- (_LT_CHECK_OBJDIR): Call it.
+ (_LT_CHECK_OBJDIR): Call it.
(extra_mpc_mpfr_configure_flags, extra_mpc_gmp_configure_flags,
gmplibs, ppllibs, clooglibs): Use $lt_cv_objdir.
@@ -1643,8 +1619,8 @@
2009-06-03 Jerome Guitton <guitton@adacore.com>
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
- * Makefile.tpl (all): Avoid a trailing backslash.
- * Makefile.in: Regenerate.
+ * Makefile.tpl (all): Avoid a trailing backslash.
+ * Makefile.in: Regenerate.
2009-06-03 Ben Elliston <bje@au.ibm.com>
@@ -3807,7 +3783,7 @@
non-ported target libraries in noconfigdirs.
<cris-*, crisv32-*> Ditto, except for non-aout, non-elf,
non-linux-gnu. Remove libgcj_ex_libffi.
- <lang_frag loop>: Set add_this_lang=no if the language is in
+ <lang_frag loop>: Set add_this_lang=no if the language is in
unsupported_languages.
* configure: Regenerate.
@@ -5128,8 +5104,8 @@
2003-12-21 Bernardo Innocenti <bernie@develer.com>
- * configure.in (*-*-uclinux): Exclude newlib, libgloss and rda.
- * configure: Regenerated.
+ * configure.in (*-*-uclinux): Exclude newlib, libgloss and rda.
+ * configure: Regenerated.
2003-12-19 Nathanael Nerode <neroden@gcc.gnu.org>
@@ -13218,8 +13194,8 @@ Mon May 10 05:58:35 1993 Ken Raeburn (raeburn@kr-pc.cygnus.com)
Sun May 9 17:47:57 1993 Rob Savoye (rob at darkstar.cygnus.com)
- * Makefile.in: Use srcroot to find runtest rather than rootme.
- Pass RUNTESTFLAGS and EXPECT down in BASE_FLAGS_TO_PASS.
+ * Makefile.in: Use srcroot to find runtest rather than rootme.
+ Pass RUNTESTFLAGS and EXPECT down in BASE_FLAGS_TO_PASS.
Fri May 7 14:55:59 1993 Ian Lance Taylor (ian@cygnus.com)
diff --git a/MAINTAINERS b/MAINTAINERS
index dd8601b4f..046c5ea82 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -49,8 +49,7 @@ gdb/; readline/; sim/; GDB's part of include/
include/
See binutils/, gdb/, sid/, gcc/, libiberty/ etc.
-intl/; config.rhost; libiberty/; libiberty's part of include/;
-compile; depcomp; install-sh; missing; ylwrap; config/
+intl/; config.rhost; libiberty/; libiberty's part of include/
gcc: http://gcc.gnu.org
Changes need to be done in tandem with the official GCC
sources or submitted to the master file maintainer and brought
@@ -105,6 +104,13 @@ etc/; utils/;
Any global maintainer can approve changes to these
files and directories.
+compile; depcomp; install-sh; missing; ylwrap;
+config/
+ Any global maintainer can approve changes to these
+ files and directories, but they should be aware
+ that they need to be kept in sync with their
+ counterparts in the GCC repository.
+
modules file
If you understand the file format (or can cut-and-paste existing
entries), modify it. If it scares you, get someone who does
diff --git a/compile b/compile
new file mode 100755
index 000000000..ec64c6220
--- /dev/null
+++ b/compile
@@ -0,0 +1,143 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand `-c -o'.
+
+scriptversion=2009-04-28.21; # UTC
+
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software
+# Foundation, Inc.
+# Written by Tom Tromey <tromey@cygnus.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+case $1 in
+ '')
+ echo "$0: No command. Try \`$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand `-c -o'.
+Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file `INSTALL'.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "compile $scriptversion"
+ exit $?
+ ;;
+esac
+
+ofile=
+cfile=
+eat=
+
+for arg
+do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as `compile cc -o foo foo.c'.
+ # So we strip `-o arg' only if arg is an object.
+ eat=1
+ case $2 in
+ *.o | *.obj)
+ ofile=$2
+ ;;
+ *)
+ set x "$@" -o "$2"
+ shift
+ ;;
+ esac
+ ;;
+ *.c)
+ cfile=$1
+ set x "$@" "$1"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+ # If no `-o' option was seen then we might have been invoked from a
+ # pattern rule where we don't need one. That is ok -- this is a
+ # normal compilation that the losing compiler can handle. If no
+ # `.c' file was seen then we are probably linking. That is also
+ # ok.
+ exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use `[/\\:.-]' here to ensure that we don't use the same name
+# that we are using for the .o file. Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
+while true; do
+ if mkdir "$lockdir" >/dev/null 2>&1; then
+ break
+ fi
+ sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+ mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+ mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/config.rpath b/config.rpath
new file mode 100755
index 000000000..4dea75957
--- /dev/null
+++ b/config.rpath
@@ -0,0 +1,543 @@
+#! /bin/sh
+# Output a system dependent set of variables, describing how to set the
+# run time search path of shared libraries in an executable.
+#
+# Copyright 1996-2003 Free Software Foundation, Inc.
+# Taken from GNU libtool, 2001
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program 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
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+#
+# The first argument passed to this file is the canonical host specification,
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
+# should be set by the caller.
+#
+# The set of defined variables is at the end of this script.
+
+# Known limitations:
+# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
+# than 256 bytes, otherwise the compiler driver will dump core. The only
+# known workaround is to choose shorter directory names for the build
+# directory and/or the installation directory.
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+shrext=.so
+
+host="$1"
+host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
+
+wl=
+if test "$GCC" = yes; then
+ wl='-Wl,'
+else
+ case "$host_os" in
+ aix*)
+ wl='-Wl,'
+ ;;
+ mingw* | pw32* | os2*)
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ wl='-Wl,'
+ ;;
+ irix5* | irix6* | nonstopux*)
+ wl='-Wl,'
+ ;;
+ newsos6)
+ ;;
+ linux*)
+ case $CC in
+ icc|ecc)
+ wl='-Wl,'
+ ;;
+ ccc)
+ wl='-Wl,'
+ ;;
+ esac
+ ;;
+ osf3* | osf4* | osf5*)
+ wl='-Wl,'
+ ;;
+ sco3.2v5*)
+ ;;
+ solaris*)
+ wl='-Wl,'
+ ;;
+ sunos4*)
+ wl='-Qoption ld '
+ ;;
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ wl='-Wl,'
+ ;;
+ sysv4*MP*)
+ ;;
+ uts4*)
+ ;;
+ esac
+fi
+
+# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS.
+
+hardcode_libdir_flag_spec=
+hardcode_libdir_separator=
+hardcode_direct=no
+hardcode_minus_L=no
+
+case "$host_os" in
+ cygwin* | mingw* | pw32*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+esac
+
+ld_shlibs=yes
+if test "$with_gnu_ld" = yes; then
+ case "$host_os" in
+ aix[3-9]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ ld_shlibs=no
+ fi
+ ;;
+ amigaos*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+ # that the semantics of dynamic libraries on AmigaOS, at least up
+ # to version 4, is to share data among multiple programs linked
+ # with the same dynamic library. Since this doesn't match the
+ # behavior of shared libraries on other platforms, we can use
+ # them.
+ ld_shlibs=no
+ ;;
+ beos*)
+ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ cygwin* | mingw* | pw32*)
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ netbsd*)
+ ;;
+ solaris* | sysv5*)
+ if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ sunos4*)
+ hardcode_direct=yes
+ ;;
+ *)
+ if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ if test "$ld_shlibs" = yes; then
+ # Unlike libtool, we use -rpath here, not --rpath, since the documented
+ # option of GNU ld is called -rpath, not --rpath.
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ fi
+else
+ case "$host_os" in
+ aix3*)
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test "$GCC" = yes; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+ aix[4-9]*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ else
+ aix_use_runtimelinking=no
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ esac
+ fi
+ hardcode_direct=yes
+ hardcode_libdir_separator=':'
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ hardcode_direct=yes
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ esac
+ fi
+ # Begin _LT_AC_SYS_LIBPATH_AIX.
+ echo 'int main () { return 0; }' > conftest.c
+ ${CC} ${LDFLAGS} conftest.c -o conftest
+ aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+ if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+ fi
+ if test -z "$aix_libpath"; then
+ aix_libpath="/usr/lib:/lib"
+ fi
+ rm -f conftest.c conftest
+ # End _LT_AC_SYS_LIBPATH_AIX.
+ if test "$aix_use_runtimelinking" = yes; then
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+ else
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ fi
+ fi
+ ;;
+ amigaos*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ # see comment about different semantics on the GNU ld section
+ ld_shlibs=no
+ ;;
+ bsdi4*)
+ ;;
+ cygwin* | mingw* | pw32*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec=' '
+ libext=lib
+ ;;
+ darwin* | rhapsody*)
+ if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then
+ hardcode_direct=no
+ fi
+ ;;
+ dgux*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ ;;
+ freebsd2.2*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ ;;
+ freebsd2*)
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ ;;
+ freebsd*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ ;;
+ hpux9*)
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ hpux10* | hpux11*)
+ if test "$with_gnu_ld" = no; then
+ case "$host_cpu" in
+ hppa*64*)
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=no
+ ;;
+ ia64*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=no
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ *)
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ esac
+ fi
+ ;;
+ irix5* | irix6* | nonstopux*)
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+ netbsd*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ ;;
+ newsos6)
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+ openbsd*)
+ hardcode_direct=yes
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ else
+ case "$host_os" in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ ;;
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ osf3*)
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+ osf4* | osf5*)
+ if test "$GCC" = yes; then
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ # Both cc and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ hardcode_libdir_separator=:
+ ;;
+ sco3.2v5*)
+ ;;
+ solaris*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ sunos4*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ ;;
+ sysv4)
+ case $host_vendor in
+ sni)
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ hardcode_direct=no
+ ;;
+ motorola)
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ ;;
+ sysv4.3*)
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ ld_shlibs=yes
+ fi
+ ;;
+ sysv4.2uw2*)
+ hardcode_direct=yes
+ hardcode_minus_L=no
+ ;;
+ sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
+ ;;
+ sysv5*)
+ hardcode_libdir_flag_spec=
+ ;;
+ uts4*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ ;;
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+fi
+
+# Check dynamic linker characteristics
+# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
+libname_spec='lib$name'
+case "$host_os" in
+ aix3*)
+ ;;
+ aix[4-9]*)
+ ;;
+ amigaos*)
+ ;;
+ beos*)
+ ;;
+ bsdi4*)
+ ;;
+ cygwin* | mingw* | pw32*)
+ shrext=.dll
+ ;;
+ darwin* | rhapsody*)
+ shrext=.dylib
+ ;;
+ dgux*)
+ ;;
+ freebsd*)
+ ;;
+ gnu*)
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ case "$host_cpu" in
+ ia64*)
+ shrext=.so
+ ;;
+ hppa*64*)
+ shrext=.sl
+ ;;
+ *)
+ shrext=.sl
+ ;;
+ esac
+ ;;
+ irix5* | irix6* | nonstopux*)
+ case "$host_os" in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
+ *) libsuff= shlibsuff= ;;
+ esac
+ ;;
+ esac
+ ;;
+ linux*oldld* | linux*aout* | linux*coff*)
+ ;;
+ linux*)
+ ;;
+ netbsd*)
+ ;;
+ newsos6)
+ ;;
+ nto-qnx)
+ ;;
+ openbsd*)
+ ;;
+ os2*)
+ libname_spec='$name'
+ shrext=.dll
+ ;;
+ osf3* | osf4* | osf5*)
+ ;;
+ sco3.2v5*)
+ ;;
+ solaris*)
+ ;;
+ sunos4*)
+ ;;
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ ;;
+ sysv4*MP*)
+ ;;
+ uts4*)
+ ;;
+esac
+
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
+shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
+escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+
+sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
+
+# How to pass a linker flag through the compiler.
+wl="$escaped_wl"
+
+# Static library suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally "so").
+shlibext="$shlibext"
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator="$hardcode_libdir_separator"
+
+# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct="$hardcode_direct"
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L="$hardcode_minus_L"
+
+EOF
diff --git a/config/ChangeLog b/config/ChangeLog
index 42fcfce99..1087ad8ca 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,38 +1,3 @@
-2012-05-29 Joseph Myers <joseph@codesourcery.com>
-
- * mt-sde: Fix typos.
- * stdint.m4: Fix typos.
- * tcl.m4: Fix typos.
-
-2012-04-03 Tristan Gingold <gingold@adacore.com>
-
- * mmap.m4: Use *vms* instead of vms*.
-
-2012-04-02 Tristan Gingold <gingold@adacore.com>
-
- * math.m4 (GCC_CHECK_MATH_FUNC): Remove if-present
- argument. Define the variable.
-
-2012-03-26 Tristan Gingold <gingold@adacore.com>
-
- * math.m4: New file.
-
-2012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
-
- * weakref.m4 (GCC_CHECK_ELF_STYLE_WEAKREF): Remove
- alpha*-dec-osf*.
-
-2012-01-22 Douglas B Rupp <rupp@gnat.com>
-
- * config/mh-interix: Remove as unneeded.
- * config/picflag.m4 (i[[34567]]86-*-interix3*):
- Change triplet to i[[34567]]86-*-interix[[3-9]]*.
-
-2012-01-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
-
- PR bootstrap/51734
- * picflag.m4: Remove s390 case statement.
-
2011-12-20 Andreas Schwab <schwab@linux-m68k.org>
* warnings.m4 (ACX_PROG_CC_WARNING_OPTS): Avoid leading dash in
@@ -40,7 +5,6 @@
2011-12-19 Andreas Schwab <schwab@linux-m68k.org>
- PR bootstrap/51388
* warnings.m4 (ACX_PROG_CC_WARNING_OPTS)
(ACX_PROG_CC_WARNING_ALMOST_PEDANTIC): Run the test without the
no- prefix.
@@ -49,14 +13,6 @@
* acx.m4 (Test for GNAT): Update comment and add quotes in final test.
-2011-11-22 Iain Sandoe <iains@gcc.gnu.org>
-
- * weakref.m4: New file.
-
-2011-11-09 Richard Henderson <rth@redhat.com>
-
- * asmcfi.m4: New file.
-
2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* mh-interix (LIBGCC2_DEBUG_CFLAGS): Remove.
@@ -69,15 +25,6 @@
* elf.m4 (target_elf): Remove *-netware*.
-2011-07-06 Uros Bizjak <ubizjak@gmail.com>
-
- * mt-alphaieee (GOCFLAGS_FOR_TARGET): Add -mieee.
-
-2011-06-15 Mike Stump <mikestump@comcast.net>
-
- PR target/49461
- * mh-darwin: Turn off -pie on darwin11 and later.
-
2011-04-20 Eric Botcazou <ebotcazou@adacore.com>
* bootstrap-lto.mk: Remove obsolete requirement.
diff --git a/config/asmcfi.m4 b/config/asmcfi.m4
deleted file mode 100644
index a725aa11d..000000000
--- a/config/asmcfi.m4
+++ /dev/null
@@ -1,15 +0,0 @@
-;; Cribbed from libffi
-
-AC_DEFUN([GCC_AS_CFI_PSEUDO_OP],
-[AC_CACHE_CHECK([assembler .cfi pseudo-op support],
- gcc_cv_as_cfi_pseudo_op, [
- gcc_cv_as_cfi_pseudo_op=unknown
- AC_TRY_COMPILE([asm (".cfi_startproc\n\t.cfi_endproc");],,
- [gcc_cv_as_cfi_pseudo_op=yes],
- [gcc_cv_as_cfi_pseudo_op=no])
- ])
- if test "x$gcc_cv_as_cfi_pseudo_op" = xyes; then
- AC_DEFINE(HAVE_AS_CFI_PSEUDO_OP, 1,
- [Define if your assembler supports .cfi_* directives.])
- fi
-])
diff --git a/config/math.m4 b/config/math.m4
deleted file mode 100644
index 23835f230..000000000
--- a/config/math.m4
+++ /dev/null
@@ -1,50 +0,0 @@
-dnl GCC_CHECK_LIBM
-dnl
-dnl Check whether -lm is available. This is a pre-requisite for
-dnl GCC_CHECK_MATH_FUNC so that it will link with -lm.
-AC_DEFUN([GCC_CHECK_LIBM],
-[AC_CHECK_LIB([m],[sin])])
-
-dnl GCC_CHECK_MATH_HEADERS
-dnl
-dnl Check for math.h and complex.h. This is a pre-requisite for
-dnl GCC_CHECK_MATH_FUNC so that it includes the right headers.
-dnl (Some systems, such as AIX or OpenVMS may define macro for math
-dnl functions).
-AC_DEFUN([GCC_CHECK_MATH_HEADERS],
-[AC_CHECK_HEADERS_ONCE(math.h complex.h)])
-
-dnl GCC_CHECK_MATH_FUNC([name])
-dnl
-dnl Check whether math function NAME is available on the system (by compiling
-dnl and linking a C program) and run define HAVE_name on success.
-dnl
-dnl Note that OpenVMS system insists on including complex.h before math.h
-AC_DEFUN([GCC_CHECK_MATH_FUNC],
-[
- AC_REQUIRE([GCC_CHECK_LIBM])
- AC_REQUIRE([GCC_CHECK_MATH_HEADERS])
- AC_CACHE_CHECK([for $1], [gcc_cv_math_func_$1],
- [AC_LINK_IFELSE([
-#ifdef HAVE_COMPLEX_H
-#include <complex.h>
-#endif
-#ifdef HAVE_MATH_H
-#include <math.h>
-#endif
-
-int (*ptr)() = (int (*)())$1;
-
-int
-main ()
-{
- return 0;
-}
-],
-[gcc_cv_math_func_$1=yes],
-[gcc_cv_math_func_$1=no])])
- if test $gcc_cv_math_func_$1 = yes; then
- AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_$1),[1],
- [Define to 1 if you have the `$1' function.])
- fi
-])
diff --git a/config/mh-darwin b/config/mh-darwin
index 19bf26568..66f68b664 100644
--- a/config/mh-darwin
+++ b/config/mh-darwin
@@ -1,7 +1,5 @@
# The -mdynamic-no-pic ensures that the compiler executable is built without
# position-independent-code -- the usual default on Darwin. This fix speeds
# compiles by 3-5%.
-BOOT_CFLAGS += -mdynamic-no-pic
-# Ensure we don't try and use -pie, as it is incompatible with pch.
-BOOT_LDFLAGS += `case ${host} in *-*-darwin[1][1-9]*) echo -Wl,-no_pie ;; esac;`
+BOOT_CFLAGS += -mdynamic-no-pic
diff --git a/config/mh-interix b/config/mh-interix
new file mode 100644
index 000000000..3be195b51
--- /dev/null
+++ b/config/mh-interix
@@ -0,0 +1,2 @@
+# The shell may not be in /bin.
+SHELL = sh
diff --git a/config/mh-ppc-aix b/config/mh-ppc-aix
index a866f7fef..4a97d8172 100644
--- a/config/mh-ppc-aix
+++ b/config/mh-ppc-aix
@@ -5,4 +5,4 @@
# don't do it any more.
BOOT_ADAFLAGS = -gnatapg
BOOT_LDFLAGS = -Wl,-bbigtoc
-LDFLAGS = `case '$(CC)' in *gcc*) echo -Wl,-bbigtoc ;; esac;`
+LDFLAGS = `case $(CC) in *gcc*) echo -Wl,-bbigtoc ;; esac;`
diff --git a/config/mmap.m4 b/config/mmap.m4
deleted file mode 100644
index fba0d9d36..000000000
--- a/config/mmap.m4
+++ /dev/null
@@ -1,97 +0,0 @@
-dnl ----------------------------------------------------------------------
-dnl This whole bit snagged from gcc
-
-dnl
-dnl mmap(2) blacklisting. Some platforms provide the mmap library routine
-dnl but don't support all of the features we need from it.
-dnl
-AC_DEFUN([GCC_AC_FUNC_MMAP_BLACKLIST],
-[
-AC_CHECK_HEADER([sys/mman.h],
- [gcc_header_sys_mman_h=yes], [gcc_header_sys_mman_h=no])
-AC_CHECK_FUNC([mmap], [gcc_func_mmap=yes], [gcc_func_mmap=no])
-if test "$gcc_header_sys_mman_h" != yes \
- || test "$gcc_func_mmap" != yes; then
- gcc_cv_func_mmap_file=no
- gcc_cv_func_mmap_dev_zero=no
- gcc_cv_func_mmap_anon=no
-else
- AC_CACHE_CHECK([whether read-only mmap of a plain file works],
- gcc_cv_func_mmap_file,
- [# Add a system to this blacklist if
- # mmap(0, stat_size, PROT_READ, MAP_PRIVATE, fd, 0) doesn't return a
- # memory area containing the same data that you'd get if you applied
- # read() to the same fd. The only system known to have a problem here
- # is VMS, where text files have record structure.
- case "$host_os" in
- *vms* | ultrix*)
- gcc_cv_func_mmap_file=no ;;
- *)
- gcc_cv_func_mmap_file=yes;;
- esac])
- AC_CACHE_CHECK([whether mmap from /dev/zero works],
- gcc_cv_func_mmap_dev_zero,
- [# Add a system to this blacklist if it has mmap() but /dev/zero
- # does not exist, or if mmapping /dev/zero does not give anonymous
- # zeroed pages with both the following properties:
- # 1. If you map N consecutive pages in with one call, and then
- # unmap any subset of those pages, the pages that were not
- # explicitly unmapped remain accessible.
- # 2. If you map two adjacent blocks of memory and then unmap them
- # both at once, they must both go away.
- # Systems known to be in this category are Windows (all variants),
- # VMS, and Darwin.
- case "$host_os" in
- *vms* | cygwin* | pe | mingw* | darwin* | ultrix* | hpux10* | hpux11.00)
- gcc_cv_func_mmap_dev_zero=no ;;
- *)
- gcc_cv_func_mmap_dev_zero=yes;;
- esac])
-
- # Unlike /dev/zero, the MAP_ANON(YMOUS) defines can be probed for.
- AC_CACHE_CHECK([for MAP_ANON(YMOUS)], gcc_cv_decl_map_anon,
- [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
-[#include <sys/types.h>
-#include <sys/mman.h>
-#include <unistd.h>
-
-#ifndef MAP_ANONYMOUS
-#define MAP_ANONYMOUS MAP_ANON
-#endif
-],
-[int n = MAP_ANONYMOUS;])],
- gcc_cv_decl_map_anon=yes,
- gcc_cv_decl_map_anon=no)])
-
- if test $gcc_cv_decl_map_anon = no; then
- gcc_cv_func_mmap_anon=no
- else
- AC_CACHE_CHECK([whether mmap with MAP_ANON(YMOUS) works],
- gcc_cv_func_mmap_anon,
- [# Add a system to this blacklist if it has mmap() and MAP_ANON or
- # MAP_ANONYMOUS, but using mmap(..., MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
- # doesn't give anonymous zeroed pages with the same properties listed
- # above for use of /dev/zero.
- # Systems known to be in this category are Windows, VMS, and SCO Unix.
- case "$host_os" in
- *vms* | cygwin* | pe | mingw* | sco* | udk* )
- gcc_cv_func_mmap_anon=no ;;
- *)
- gcc_cv_func_mmap_anon=yes;;
- esac])
- fi
-fi
-
-if test $gcc_cv_func_mmap_file = yes; then
- AC_DEFINE(HAVE_MMAP_FILE, 1,
- [Define if read-only mmap of a plain file works.])
-fi
-if test $gcc_cv_func_mmap_dev_zero = yes; then
- AC_DEFINE(HAVE_MMAP_DEV_ZERO, 1,
- [Define if mmap of /dev/zero works.])
-fi
-if test $gcc_cv_func_mmap_anon = yes; then
- AC_DEFINE(HAVE_MMAP_ANON, 1,
- [Define if mmap with MAP_ANON(YMOUS) works.])
-fi
-])
diff --git a/config/mt-alphaieee b/config/mt-alphaieee
index 80c17cdc6..9c205314a 100644
--- a/config/mt-alphaieee
+++ b/config/mt-alphaieee
@@ -1,3 +1,2 @@
CFLAGS_FOR_TARGET += -mieee
CXXFLAGS_FOR_TARGET += -mieee
-GOCFLAGS_FOR_TARGET += -mieee
diff --git a/config/mt-sde b/config/mt-sde
index d6992e415..cb204203d 100644
--- a/config/mt-sde
+++ b/config/mt-sde
@@ -5,6 +5,6 @@
# as they have the D-to-I redirect for PC-relative loads. -mno-gpopt
# has two purposes: it allows libraries to be used in situations where
# $gp != our _gp, and it allows them to be built with -G8 while
-# retaining link compatibility with -G0 and -G4.
+# retaining link compability with -G0 and -G4.
CFLAGS_FOR_TARGET += -Os -minterlink-mips16 -mcode-xonly -mno-gpopt
CXXFLAGS_FOR_TARGET += -Os -minterlink-mips16 -mcode-xonly -mno-gpopt
diff --git a/config/picflag.m4 b/config/picflag.m4
index bd818125a..f6f1b444e 100644
--- a/config/picflag.m4
+++ b/config/picflag.m4
@@ -19,7 +19,7 @@ case "${$2}" in
;;
i[[34567]]86-*-cygwin* | i[[34567]]86-*-mingw* | x86_64-*-mingw*)
;;
- i[[34567]]86-*-interix[[3-9]]*)
+ i[[34567]]86-*-interix3*)
# Interix 3.x gcc -fpic/-fPIC options generate broken code.
# Instead, we relocate shared libraries at runtime.
;;
@@ -51,6 +51,9 @@ case "${$2}" in
m68k-*-*)
$1=-fpic
;;
+ s390*-*-*)
+ $1=-fpic
+ ;;
# FIXME: Override -fPIC default in libgcc only?
sh-*-linux* | sh[[2346lbe]]*-*-linux*)
$1=-fpic
diff --git a/config/stdint.m4 b/config/stdint.m4
index 61898a75f..fbdd58619 100644
--- a/config/stdint.m4
+++ b/config/stdint.m4
@@ -18,7 +18,7 @@ dnl the "ISO C9X: 7.18 Integer types <stdint.h>" section requires the
dnl existence of an include file <stdint.h> that defines a set of
dnl typedefs, especially uint8_t,int32_t,uintptr_t.
dnl Many older installations will not provide this file, but some will
-dnl have the very same definitions in <inttypes.h>. In other environments
+dnl have the very same definitions in <inttypes.h>. In other enviroments
dnl we can use the inet-types in <sys/types.h> which would define the
dnl typedefs int8_t and u_int8_t respectivly.
dnl
diff --git a/config/tcl.m4 b/config/tcl.m4
index 59a0c7e0a..900a2ceb8 100644
--- a/config/tcl.m4
+++ b/config/tcl.m4
@@ -290,7 +290,7 @@ AC_DEFUN([SC_LOAD_TCLCONFIG], [
elif test "`uname -s`" = "Darwin"; then
# If Tcl was built as a framework, attempt to use the libraries
# from the framework at the given location so that linking works
- # against Tcl.framework installed in an arbitrary location.
+ # against Tcl.framework installed in an arbitary location.
case ${TCL_DEFS} in
*TCL_FRAMEWORK*)
if test -f "${TCL_BIN_DIR}/${TCL_LIB_FILE}"; then
@@ -373,7 +373,7 @@ AC_DEFUN([SC_LOAD_TKCONFIG], [
elif test "`uname -s`" = "Darwin"; then
# If Tk was built as a framework, attempt to use the libraries
# from the framework at the given location so that linking works
- # against Tk.framework installed in an arbitrary location.
+ # against Tk.framework installed in an arbitary location.
case ${TK_DEFS} in
*TK_FRAMEWORK*)
if test -f "${TK_BIN_DIR}/${TK_LIB_FILE}"; then
@@ -815,7 +815,7 @@ AC_DEFUN([SC_ENABLE_LANGINFO], [
#
# Defines the following variable:
#
-# MAN_FLAGS - The appropriate flags for installManPage
+# MAN_FLAGS - The apropriate flags for installManPage
# according to the user's selection.
#
#--------------------------------------------------------------------
diff --git a/config/weakref.m4 b/config/weakref.m4
deleted file mode 100644
index ecb856728..000000000
--- a/config/weakref.m4
+++ /dev/null
@@ -1,47 +0,0 @@
-
-dnl Check if the target supports weak.
-AC_DEFUN([GCC_CHECK_ATTRIBUTE_WEAK], [
- AC_CACHE_CHECK([whether the target supports weak],
- ac_cv_have_attribute_weak, [
- weakref_m4_saved_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -Werror"
- AC_TRY_COMPILE([void __attribute__((weak)) foo(void) { }],
- [], ac_cv_have_attribute_weak=yes,
- ac_cv_have_attribute_weak=no)
- CFLAGS="$weakref_m4_saved_CFLAGS"])
- if test x"$ac_cv_have_attribute_weak" = xyes; then
- AC_DEFINE(HAVE_ATTRIBUTE_WEAK, 1,
- [Define to 1 if the target supports __attribute__((weak)).])
- fi])
-
-dnl Check whether weak refs work like the ELF ones.
-dnl This means that the weak reference works without having to satify
-dnl linkage for the item.
-dnl There are targets (at least Darwin) where we have fully functional
-dnl weakrefs at runtime, but must supply the referenced item at link time.
-AC_DEFUN([GCC_CHECK_ELF_STYLE_WEAKREF], [
- AC_CACHE_CHECK([whether weak refs work like ELF],
- ac_cv_have_elf_style_weakref, [
- weakref_m4_saved_CFLAGS="$CFLAGS"
- case "${host}" in
- *-apple-darwin*) CFLAGS="$CFLAGS -Wl,-undefined,dynamic_lookup" ;;
- *) ;;
- esac
- AC_RUN_IFELSE([AC_LANG_SOURCE([[
-extern void fNotToBeFound(void) __attribute__((weak));
-int main ()
-{
- if (fNotToBeFound)
- return 1;
- else
- return 0;
-}
-]])], ac_cv_have_elf_style_weakref=yes, ac_cv_have_elf_style_weakref=no, [
-case "${host}" in
- *-apple-darwin[[89]]*) ac_cv_have_elf_style_weakref=no ;;
- *) ac_cv_have_elf_style_weakref=yes;;
-esac])CFLAGS="$weakref_m4_saved_CFLAGS"])
-if test x"$ac_cv_have_elf_style_weakref" = xyes; then
- AC_DEFINE(HAVE_ELF_STYLE_WEAKREF, 1, [Define to 1 if target has a weakref that works like the ELF one.])
-fi])
-
diff --git a/configure b/configure
index 6079e6c07..8554178f8 100755
--- a/configure
+++ b/configure
@@ -5189,16 +5189,9 @@ if test "x$with_mpfr_lib" != x; then
gmplibs="-L$with_mpfr_lib $gmplibs"
fi
if test "x$with_mpfr$with_mpfr_include$with_mpfr_lib" = x && test -d ${srcdir}/mpfr; then
- # MPFR v3.1.0 moved the sources into a src sub-directory.
- if test -d ${srcdir}/mpfr/src; then
- gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/src/'"$lt_cv_objdir $gmplibs"
- gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr/src -I$$s/mpfr/src '"$gmpinc"
- extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr/src --with-mpfr-lib=$$r/$(HOST_SUBDIR)/mpfr/src/'"$lt_cv_objdir"
- else
- gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir $gmplibs"
- gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr -I$$s/mpfr '"$gmpinc"
- extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr --with-mpfr-lib=$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir"
- fi
+ gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir $gmplibs"
+ gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr -I$$s/mpfr '"$gmpinc"
+ extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr --with-mpfr-lib=$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir"
# Do not test the mpfr version. Assume that it is sufficient, since
# it is in the source tree, and the library has not been built yet
# but it would be included on the link line in the version check below
@@ -6667,11 +6660,11 @@ if test "x$CFLAGS_FOR_TARGET" = x; then
CFLAGS_FOR_TARGET=$CFLAGS
case " $CFLAGS " in
*" -O2 "*) ;;
- *) CFLAGS_FOR_TARGET="-O2 $CFLAGS_FOR_TARGET" ;;
+ *) CFLAGS_FOR_TARGET="-O2 $CFLAGS" ;;
esac
case " $CFLAGS " in
*" -g "* | *" -g3 "*) ;;
- *) CFLAGS_FOR_TARGET="-g $CFLAGS_FOR_TARGET" ;;
+ *) CFLAGS_FOR_TARGET="-g $CFLAGS" ;;
esac
fi
@@ -6680,11 +6673,11 @@ if test "x$CXXFLAGS_FOR_TARGET" = x; then
CXXFLAGS_FOR_TARGET=$CXXFLAGS
case " $CXXFLAGS " in
*" -O2 "*) ;;
- *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS_FOR_TARGET" ;;
+ *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS" ;;
esac
case " $CXXFLAGS " in
*" -g "* | *" -g3 "*) ;;
- *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS_FOR_TARGET" ;;
+ *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS" ;;
esac
fi
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 000000000..396c87b95
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,3256 @@
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+# 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
+# Free Software Foundation, Inc.
+#
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program 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
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
+
+##############################################################################
+### WARNING: this file contains embedded tabs. Do not run untabify on this file.
+
+m4_include(config/acx.m4)
+m4_include(config/override.m4)
+m4_include(config/proginstall.m4)
+m4_include(config/elf.m4)
+m4_include([libtool.m4])
+m4_include([ltoptions.m4])
+m4_include([ltsugar.m4])
+m4_include([ltversion.m4])
+m4_include([lt~obsolete.m4])
+m4_include([config/cloog.m4])
+
+AC_INIT(move-if-change)
+AC_PREREQ(2.64)
+AC_DISABLE_OPTION_CHECKING
+
+progname=$0
+# if PWD already has a value, it is probably wrong.
+if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi
+
+# Export original configure arguments for use by sub-configures.
+# Quote arguments with shell meta charatcers.
+TOPLEVEL_CONFIGURE_ARGUMENTS=
+set -- "$progname" "$@"
+for ac_arg
+do
+ case "$ac_arg" in
+ *" "*|*" "*|*[[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\']]*)
+ ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"`
+ # if the argument is of the form -foo=baz, quote the baz part only
+ ac_arg=`echo "'$ac_arg'" | sed "s/^'\([[-a-zA-Z0-9]]*=\)/\\1'/"` ;;
+ *) ;;
+ esac
+ # Add the quoted argument to the list.
+ TOPLEVEL_CONFIGURE_ARGUMENTS="$TOPLEVEL_CONFIGURE_ARGUMENTS $ac_arg"
+done
+if test "$silent" = yes; then
+ TOPLEVEL_CONFIGURE_ARGUMENTS="$TOPLEVEL_CONFIGURE_ARGUMENTS --silent"
+fi
+# Remove the initial space we just introduced and, as these will be
+# expanded by make, quote '$'.
+TOPLEVEL_CONFIGURE_ARGUMENTS=`echo "x$TOPLEVEL_CONFIGURE_ARGUMENTS" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
+AC_SUBST(TOPLEVEL_CONFIGURE_ARGUMENTS)
+
+# Find the build, host, and target systems.
+ACX_NONCANONICAL_BUILD
+ACX_NONCANONICAL_HOST
+ACX_NONCANONICAL_TARGET
+
+dnl Autoconf 2.5x and later will set a default program prefix if
+dnl --target was used, even if it was the same as --host. Disable
+dnl that behavior. This must be done before AC_CANONICAL_SYSTEM
+dnl to take effect.
+test "$host_noncanonical" = "$target_noncanonical" &&
+ test "$program_prefix$program_suffix$program_transform_name" = \
+ NONENONEs,x,x, &&
+ program_transform_name=s,y,y,
+
+AC_CANONICAL_SYSTEM
+AC_ARG_PROGRAM
+
+m4_pattern_allow([^AS_FOR_TARGET$])dnl
+m4_pattern_allow([^AS_FOR_BUILD$])dnl
+
+# Get 'install' or 'install-sh' and its variants.
+AC_PROG_INSTALL
+ACX_PROG_LN
+AC_PROG_LN_S
+AC_PROG_SED
+AC_PROG_AWK
+
+srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}`
+
+# We pass INSTALL explicitly to sub-makes. Make sure that it is not
+# a relative path.
+if test "$INSTALL" = "${srcdir}/install-sh -c"; then
+ INSTALL="${srcpwd}/install-sh -c"
+fi
+
+# Set srcdir to "." if that's what it is.
+# This is important for multilib support.
+pwd=`${PWDCMD-pwd}`
+if test "${pwd}" = "${srcpwd}" ; then
+ srcdir=.
+fi
+
+topsrcdir=$srcpwd
+
+extra_host_args=
+
+### To add a new directory to the tree, first choose whether it is a target
+### or a host dependent tool. Then put it into the appropriate list
+### (library or tools, host or target), doing a dependency sort.
+
+# Subdirs will be configured in the order listed in build_configdirs,
+# configdirs, or target_configdirs; see the serialization section below.
+
+# Dependency sorting is only needed when *configuration* must be done in
+# a particular order. In all cases a dependency should be specified in
+# the Makefile, whether or not it's implicitly specified here.
+
+# Double entries in build_configdirs, configdirs, or target_configdirs may
+# cause circular dependencies and break everything horribly.
+
+# these library is used by various programs built for the build
+# environment
+#
+build_libs="build-libiberty"
+
+# these tools are built for the build environment
+build_tools="build-texinfo build-flex build-bison build-m4 build-fixincludes"
+
+# these libraries are used by various programs built for the host environment
+#
+host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libcpp libdecnumber gmp mpfr mpc ppl cloog libelf libiconv"
+
+# these tools are built for the host environment
+# Note, the powerpc-eabi build depends on sim occurring before gdb in order to
+# know that we are building the simulator.
+# binutils, gas and ld appear in that order because it makes sense to run
+# "make check" in that particular order.
+# If --enable-gold is used, "gold" may replace "ld".
+host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gprof etc expect dejagnu m4 utils guile fastjar gnattools"
+
+# libgcj represents the runtime libraries only used by gcj.
+libgcj="target-libffi \
+ target-zlib \
+ target-libjava"
+
+# these libraries are built for the target environment, and are built after
+# the host libraries and the host tools (which may be a cross compiler)
+# Note that libiberty is not a target library.
+target_libraries="target-libgcc \
+ target-libgloss \
+ target-newlib \
+ target-libgomp \
+ target-libitm \
+ target-libstdc++-v3 \
+ target-libmudflap \
+ target-libssp \
+ target-libquadmath \
+ target-libgfortran \
+ target-boehm-gc \
+ ${libgcj} \
+ target-libobjc \
+ target-libada \
+ target-libgo"
+
+# these tools are built using the target libraries, and are intended to
+# run only in the target environment
+#
+# note: any program that *uses* libraries that are in the "target_libraries"
+# list belongs in this list.
+#
+target_tools="target-rda"
+
+################################################################################
+
+## All tools belong in one of the four categories, and are assigned above
+## We assign ${configdirs} this way to remove all embedded newlines. This
+## is important because configure will choke if they ever get through.
+## ${configdirs} is directories we build using the host tools.
+## ${target_configdirs} is directories we build using the target tools.
+configdirs=`echo ${host_libs} ${host_tools}`
+target_configdirs=`echo ${target_libraries} ${target_tools}`
+build_configdirs=`echo ${build_libs} ${build_tools}`
+
+m4_divert_text([PARSE_ARGS],
+[case $srcdir in
+ *" "*)
+m4_pushdef([AS_MESSAGE_LOG_FD], [])dnl
+ AC_MSG_ERROR([path to source, $srcdir, contains spaces])
+m4_popdef([AS_MESSAGE_LOG_FD])dnl
+ ;;
+esac
+ac_subdirs_all=`cd $srcdir && echo */configure | sed 's,/configure,,g'`
+])
+
+################################################################################
+
+srcname="gnu development package"
+
+# This gets set non-empty for some net releases of packages.
+appdirs=""
+
+# Define is_cross_compiler to save on calls to 'test'.
+is_cross_compiler=
+if test x"${host}" = x"${target}" ; then
+ is_cross_compiler=no
+else
+ is_cross_compiler=yes
+fi
+
+# Find the build and target subdir names.
+GCC_TOPLEV_SUBDIRS
+# Be sure to cover against remnants of an in-tree build.
+if test $srcdir != . && test -d $srcdir/host-${host_noncanonical}; then
+ AC_MSG_ERROR([building out of tree but $srcdir contains host-${host_noncanonical}.
+Use a pristine source tree when building in a separate tree])
+fi
+
+# Skipdirs are removed silently.
+skipdirs=
+# Noconfigdirs are removed loudly.
+noconfigdirs=""
+
+use_gnu_ld=
+# Make sure we don't let GNU ld be added if we didn't want it.
+if test x$with_gnu_ld = xno ; then
+ use_gnu_ld=no
+ noconfigdirs="$noconfigdirs ld gold"
+fi
+
+use_gnu_as=
+# Make sure we don't let GNU as be added if we didn't want it.
+if test x$with_gnu_as = xno ; then
+ use_gnu_as=no
+ noconfigdirs="$noconfigdirs gas"
+fi
+
+use_included_zlib=
+# Make sure we don't let ZLIB be added if we didn't want it.
+if test x$with_system_zlib = xyes ; then
+ use_included_zlib=no
+ noconfigdirs="$noconfigdirs zlib"
+fi
+
+# some tools are so dependent upon X11 that if we're not building with X,
+# it's not even worth trying to configure, much less build, that tool.
+
+case ${with_x} in
+ yes | "") ;; # the default value for this tree is that X11 is available
+ no)
+ skipdirs="${skipdirs} tk itcl libgui"
+ # We won't be able to build gdbtk without X.
+ enable_gdbtk=no
+ ;;
+ *) echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2 ;;
+esac
+
+# Some are only suitable for cross toolchains.
+# Remove these if host=target.
+cross_only="target-libgloss target-newlib target-opcodes"
+
+case $is_cross_compiler in
+ no) skipdirs="${skipdirs} ${cross_only}" ;;
+esac
+
+# If both --with-headers and --with-libs are specified, default to
+# --without-newlib.
+if test x"${with_headers}" != x && test x"${with_headers}" != xno \
+ && test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
+ if test x"${with_newlib}" = x ; then
+ with_newlib=no
+ fi
+fi
+
+# Recognize --with-newlib/--without-newlib.
+case ${with_newlib} in
+ no) skipdirs="${skipdirs} target-newlib" ;;
+ yes) skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` ;;
+esac
+
+# Handle --enable-gold, --enable-ld.
+# --disable-gold [--enable-ld]
+# Build only ld. Default option.
+# --enable-gold [--enable-ld]
+# Build both gold and ld. Install gold as "ld.gold", install ld
+# as "ld.bfd" and "ld".
+# --enable-gold=default [--enable-ld]
+# Build both gold and ld. Install gold as "ld.gold" and "ld",
+# install ld as "ld.bfd".
+# --enable-gold[=default] --disable-ld
+# Build only gold, which is then installed as both "ld.gold" and "ld".
+# --enable-gold --enable-ld=default
+# Build both gold (installed as "ld.gold") and ld (installed as "ld"
+# and ld.bfd).
+# In other words, ld is default
+# --enable-gold=default --enable-ld=default
+# Error.
+
+default_ld=
+AC_ARG_ENABLE(gold,
+[AS_HELP_STRING([[--enable-gold[=ARG]]],
+ [build gold @<:@ARG={default,yes,no}@:>@])],
+ENABLE_GOLD=$enableval,
+ENABLE_GOLD=no)
+case "${ENABLE_GOLD}" in
+ yes|default)
+ # Check for ELF target.
+ is_elf=no
+ case "${target}" in
+ *-*-elf* | *-*-sysv4* | *-*-unixware* | *-*-eabi* | hppa*64*-*-hpux* \
+ | *-*-linux* | frv-*-uclinux* | *-*-irix5* | *-*-irix6* \
+ | *-*-netbsd* | *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* \
+ | *-*-solaris2* | *-*-nto* | *-*-nacl*)
+ case "${target}" in
+ *-*-linux*aout* | *-*-linux*oldld*)
+ ;;
+ *)
+ is_elf=yes
+ ;;
+ esac
+ esac
+
+ if test "$is_elf" = "yes"; then
+ # Check for target supported by gold.
+ case "${target}" in
+ i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-*)
+ configdirs="$configdirs gold"
+ if test x${ENABLE_GOLD} = xdefault; then
+ default_ld=gold
+ fi
+ ENABLE_GOLD=yes
+ ;;
+ esac
+ fi
+ ;;
+ no)
+ ;;
+ *)
+ AC_MSG_ERROR([invalid --enable-gold argument])
+ ;;
+esac
+
+AC_ARG_ENABLE(ld,
+[AS_HELP_STRING([[--enable-ld[=ARG]]],
+ [build ld @<:@ARG={default,yes,no}@:>@])],
+ENABLE_LD=$enableval,
+ENABLE_LD=yes)
+
+case "${ENABLE_LD}" in
+ default)
+ if test x${default_ld} != x; then
+ AC_MSG_ERROR([either gold or ld can be the default ld])
+ fi
+ ;;
+ yes)
+ ;;
+ no)
+ if test x${ENABLE_GOLD} != xyes; then
+ AC_MSG_WARN([neither ld nor gold are enabled])
+ fi
+ configdirs=`echo " ${configdirs} " | sed -e 's/ ld / /'`
+ ;;
+ *)
+ AC_MSG_ERROR([invalid --enable-ld argument])
+ ;;
+esac
+
+# Configure extra directories which are host specific
+
+case "${host}" in
+ *-cygwin*)
+ configdirs="$configdirs libtermcap" ;;
+esac
+
+# A target can indicate whether a language isn't supported for some reason.
+# Only spaces may be used in this macro; not newlines or tabs.
+unsupported_languages=
+
+# Remove more programs from consideration, based on the host or
+# target this usually means that a port of the program doesn't
+# exist yet.
+
+case "${host}" in
+ i[[3456789]]86-*-msdosdjgpp*)
+ noconfigdirs="$noconfigdirs tcl tk itcl"
+ ;;
+esac
+
+
+AC_ARG_ENABLE(libquadmath,
+AS_HELP_STRING([--disable-libquadmath],
+ [do not build libquadmath directory]),
+ENABLE_LIBQUADMATH=$enableval,
+ENABLE_LIBQUADMATH=yes)
+if test "${ENABLE_LIBQUADMATH}" = "no" ; then
+ noconfigdirs="$noconfigdirs target-libquadmath"
+fi
+
+
+AC_ARG_ENABLE(libquadmath-support,
+AS_HELP_STRING([--disable-libquadmath-support],
+ [disable libquadmath support for Fortran]),
+ENABLE_LIBQUADMATH_SUPPORT=$enableval,
+ENABLE_LIBQUADMATH_SUPPORT=yes)
+enable_libquadmath_support=
+if test "${ENABLE_LIBQUADMATH_SUPPORT}" = "no" ; then
+ enable_libquadmath_support=no
+fi
+
+
+AC_ARG_ENABLE(libada,
+[AS_HELP_STRING([--enable-libada], [build libada directory])],
+ENABLE_LIBADA=$enableval,
+ENABLE_LIBADA=yes)
+if test "${ENABLE_LIBADA}" != "yes" ; then
+ noconfigdirs="$noconfigdirs gnattools"
+fi
+
+AC_ARG_ENABLE(libssp,
+[AS_HELP_STRING([--enable-libssp], [build libssp directory])],
+ENABLE_LIBSSP=$enableval,
+ENABLE_LIBSSP=yes)
+
+# Save it here so that, even in case of --enable-libgcj, if the Java
+# front-end isn't enabled, we still get libgcj disabled.
+libgcj_saved=$libgcj
+case $enable_libgcj in
+yes)
+ # If we reset it here, it won't get added to noconfigdirs in the
+ # target-specific build rules, so it will be forcibly enabled
+ # (unless the Java language itself isn't enabled).
+ libgcj=
+ ;;
+no)
+ # Make sure we get it printed in the list of not supported target libs.
+ # Don't disable libffi, though, other languages use it.
+ noconfigdirs="$noconfigdirs `echo ${libgcj} | sed -e 's/target-libffi//'`"
+ # Clear libgcj_saved so that even if java is enabled libffi won't be
+ # built.
+ libgcj_saved=
+ ;;
+esac
+
+AC_ARG_ENABLE(static-libjava,
+[AS_HELP_STRING([[--enable-static-libjava[=ARG]]],
+ [build static libjava @<:@default=no@:>@])],
+ENABLE_STATIC_LIBJAVA=$enableval,
+ENABLE_STATIC_LIBJAVA=no)
+enable_static_libjava=
+if test "${ENABLE_STATIC_LIBJAVA}" = "yes" ; then
+ enable_static_libjava=yes
+fi
+
+if test x$enable_static_libjava != xyes ; then
+ EXTRA_CONFIGARGS_LIBJAVA=--disable-static
+fi
+AC_SUBST(EXTRA_CONFIGARGS_LIBJAVA)
+
+# Disable libmudflap on some systems.
+if test x$enable_libmudflap = x ; then
+ case "${target}" in
+ *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | bfin*-*-uclinux* | *-*-kopensolaris*-gnu)
+ # Enable libmudflap by default in GNU and friends.
+ ;;
+ *-*-freebsd*)
+ # Enable libmudflap by default in FreeBSD.
+ ;;
+ *)
+ # Disable it by default everywhere else.
+ noconfigdirs="$noconfigdirs target-libmudflap"
+ ;;
+ esac
+fi
+
+# Disable libgomp on non POSIX hosted systems.
+if test x$enable_libgomp = x ; then
+ # Enable libgomp by default on hosted POSIX systems.
+ case "${target}" in
+ *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
+ ;;
+ *-*-netbsd* | *-*-freebsd* | *-*-openbsd* | *-*-dragonfly*)
+ ;;
+ *-*-solaris2* | *-*-hpux11*)
+ ;;
+ *-*-darwin* | *-*-aix*)
+ ;;
+ *)
+ noconfigdirs="$noconfigdirs target-libgomp"
+ ;;
+ esac
+fi
+
+# Disable libitm on unsupported systems.
+if test -d ${srcdir}/libitm; then
+ if test x$enable_libitm = x; then
+ AC_MSG_CHECKING([for libitm support])
+ if (srcdir=${srcdir}/libitm; \
+ . ${srcdir}/configure.tgt; \
+ test -n "$UNSUPPORTED")
+ then
+ AC_MSG_RESULT([no])
+ noconfigdirs="$noconfigdirs target-libitm"
+ else
+ AC_MSG_RESULT([yes])
+ fi
+ fi
+fi
+
+# Disable libssp for some systems.
+case "${target}" in
+ avr-*-*)
+ # No hosted I/O support.
+ noconfigdirs="$noconfigdirs target-libssp"
+ ;;
+ powerpc-*-aix* | rs6000-*-aix*)
+ noconfigdirs="$noconfigdirs target-libssp"
+ ;;
+ rl78-*-*)
+ # libssp uses a misaligned load to trigger a fault, but the RL78
+ # doesn't fault for those - instead, it gives a build-time error
+ # for explicit misaligned loads.
+ noconfigdirs="$noconfigdirs target-libssp"
+ ;;
+esac
+
+# Disable libstdc++-v3 for some systems.
+case "${target}" in
+ *-*-vxworks*)
+ # VxWorks uses the Dinkumware C++ library.
+ noconfigdirs="$noconfigdirs target-libstdc++-v3"
+ ;;
+ arm*-wince-pe*)
+ # the C++ libraries don't build on top of CE's C libraries
+ noconfigdirs="$noconfigdirs target-libstdc++-v3"
+ ;;
+ avr-*-*)
+ noconfigdirs="$noconfigdirs target-libstdc++-v3"
+ ;;
+esac
+
+# Disable Fortran for some systems.
+case "${target}" in
+ mmix-*-*)
+ # See <http://gcc.gnu.org/ml/gcc-patches/2004-11/msg00572.html>.
+ unsupported_languages="$unsupported_languages fortran"
+ ;;
+esac
+
+# Disable Java if libffi is not supported.
+case "${target}" in
+ alpha*-*-*)
+ ;;
+ arm*-*-*)
+ ;;
+ cris-*-*)
+ ;;
+ frv-*-*)
+ ;;
+ hppa*-*-linux*)
+ ;;
+ hppa*-*-hpux*)
+ ;;
+ i?86-*-*)
+ ;;
+ ia64*-*-*)
+ ;;
+ m32r*-*-*)
+ ;;
+ m68k-*-*)
+ ;;
+ mips*-*-rtems*)
+ ;;
+ mips*-*-linux*)
+ ;;
+ powerpc*-*-linux*)
+ ;;
+ powerpc-*-darwin*)
+ ;;
+ powerpc-*-aix* | rs6000-*-aix*)
+ ;;
+ powerpc-*-freebsd*)
+ ;;
+ powerpc64-*-freebsd*)
+ ;;
+ powerpc*-*-rtems*)
+ ;;
+ s390-*-* | s390x-*-*)
+ ;;
+ sh-*-* | sh[[34]]*-*-*)
+ ;;
+ sh64-*-* | sh5*-*-*)
+ ;;
+ sparc*-*-*)
+ ;;
+ x86_64-*-*)
+ ;;
+ *-*-*)
+ unsupported_languages="$unsupported_languages java"
+ ;;
+esac
+
+# Disable Java, libgcj or related libraries for some systems.
+case "${target}" in
+ powerpc-*-darwin*)
+ ;;
+ i[[3456789]]86-*-darwin*)
+ ;;
+ x86_64-*-darwin[[912]]*)
+ ;;
+ *-*-darwin*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
+ *-*-netware*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
+ *-*-rtems*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
+ *-*-tpf*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
+ *-*-uclinux*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
+ *-*-vxworks*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
+ alpha*-*-*vms*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
+ arm-wince-pe)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
+ arm*-*-symbianelf*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
+ bfin-*-*)
+ noconfigdirs="$noconfigdirs target-boehm-gc"
+ ;;
+ cris-*-* | crisv32-*-*)
+ unsupported_languages="$unsupported_languages java"
+ case "${target}" in
+ *-*-linux*)
+ ;;
+ *) # See PR46792 regarding target-libffi.
+ noconfigdirs="$noconfigdirs target-libffi target-boehm-gc";;
+ esac
+ ;;
+ hppa*64*-*-linux*)
+ # In this case, it's because the hppa64-linux target is for
+ # the kernel only at this point and has no libc, and thus no
+ # headers, crt*.o, etc., all of which are needed by these.
+ unsupported_languages="$unsupported_languages java"
+ ;;
+ hppa*64*-*-hpux*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
+ hppa*-hp-hpux11*)
+ ;;
+ hppa*-*-hpux*)
+ # According to Alexandre Oliva <aoliva@redhat.com>, libjava won't
+ # build on HP-UX 10.20.
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
+ ia64*-*-*vms*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
+ i[[3456789]]86-w64-mingw*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
+ i[[3456789]]86-*-mingw*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
+ x86_64-*-mingw*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
+ mmix-*-*)
+ noconfigdirs="$noconfigdirs target-libffi target-boehm-gc"
+ ;;
+ powerpc-*-aix*)
+ # copied from rs6000-*-* entry
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
+ rs6000-*-aix*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
+ *-*-lynxos*)
+ noconfigdirs="$noconfigdirs ${libgcj}"
+ ;;
+esac
+
+# Default libgloss CPU subdirectory.
+libgloss_dir="$target_cpu"
+
+case "${target}" in
+ sh*-*-pe|mips*-*-pe|*arm-wince-pe)
+ libgloss_dir=wince
+ ;;
+ arm*-*-*)
+ libgloss_dir=arm
+ ;;
+ cris-*-* | crisv32-*-*)
+ libgloss_dir=cris
+ ;;
+ hppa*-*-*)
+ libgloss_dir=pa
+ ;;
+ i[[3456789]]86-*-*)
+ libgloss_dir=i386
+ ;;
+ m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)
+ libgloss_dir=m68hc11
+ ;;
+ m68*-*-* | fido-*-*)
+ libgloss_dir=m68k
+ ;;
+ mips*-*-*)
+ libgloss_dir=mips
+ ;;
+ powerpc*-*-*)
+ libgloss_dir=rs6000
+ ;;
+ sparc*-*-*)
+ libgloss_dir=sparc
+ ;;
+esac
+
+# Disable newlib and libgloss for various target OSes.
+case "${target}" in
+ alpha*-dec-osf*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ i[[3456789]]86-*-linux*)
+ # This section makes it possible to build newlib natively on linux.
+ # If we are using a cross compiler then don't configure newlib.
+ if test x${is_cross_compiler} != xno ; then
+ noconfigdirs="$noconfigdirs target-newlib"
+ fi
+ noconfigdirs="$noconfigdirs target-libgloss"
+ # If we are not using a cross compiler, do configure newlib.
+ # Note however, that newlib will only be configured in this situation
+ # if the --with-newlib option has been given, because otherwise
+ # 'target-newlib' will appear in skipdirs.
+ ;;
+ i[[3456789]]86-*-rdos*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ sh*-*-pe|mips*-*-pe|arm-wince-pe)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ sparc-*-sunos4*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ *-*-aix*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ *-*-beos*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ *-*-chorusos)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ *-*-dragonfly*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ *-*-freebsd*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ *-*-lynxos*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ *-*-mingw*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ *-*-netbsd*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ *-*-netware*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ *-*-tpf*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ *-*-uclinux*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ *-*-vxworks*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+esac
+
+case "${target}" in
+ *-*-chorusos)
+ ;;
+ powerpc-*-darwin*)
+ noconfigdirs="$noconfigdirs ld gas gdb gprof"
+ noconfigdirs="$noconfigdirs sim target-rda"
+ ;;
+ i[[3456789]]86-*-darwin*)
+ noconfigdirs="$noconfigdirs ld gprof"
+ noconfigdirs="$noconfigdirs sim target-rda"
+ ;;
+ x86_64-*-darwin[[912]]*)
+ noconfigdirs="$noconfigdirs ld gas gprof"
+ noconfigdirs="$noconfigdirs sim target-rda"
+ ;;
+ *-*-darwin*)
+ noconfigdirs="$noconfigdirs ld gas gdb gprof"
+ noconfigdirs="$noconfigdirs sim target-rda"
+ ;;
+ *-*-dragonfly*)
+ ;;
+ *-*-freebsd*)
+ if test "x$with_gmp" = x && test "x$with_gmp_dir" = x \
+ && test -f /usr/local/include/gmp.h; then
+ with_gmp=/usr/local
+ fi
+ ;;
+ *-*-kaos*)
+ # Remove unsupported stuff on all kaOS configurations.
+ noconfigdirs="$noconfigdirs target-libgloss"
+ ;;
+ *-*-netbsd*)
+ ;;
+ *-*-netware*)
+ ;;
+ *-*-rtems*)
+ noconfigdirs="$noconfigdirs target-libgloss"
+ ;;
+ # The tpf target doesn't support gdb yet.
+ *-*-tpf*)
+ noconfigdirs="$noconfigdirs gdb tcl tk libgui itcl"
+ ;;
+ *-*-uclinux*)
+ noconfigdirs="$noconfigdirs target-rda"
+ ;;
+ *-*-vxworks*)
+ ;;
+ alpha*-dec-osf*)
+ # ld works, but does not support shared libraries.
+ # gas doesn't generate exception information.
+ noconfigdirs="$noconfigdirs gas ld"
+ ;;
+ alpha*-*-*vms*)
+ noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss"
+ ;;
+ alpha*-*-*)
+ # newlib is not 64 bit ready
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+ sh*-*-pe|mips*-*-pe|*arm-wince-pe)
+ noconfigdirs="$noconfigdirs tcl tk itcl libgui sim"
+ ;;
+ arc-*-*)
+ noconfigdirs="$noconfigdirs target-libgloss"
+ ;;
+ arm-*-pe*)
+ noconfigdirs="$noconfigdirs target-libgloss"
+ ;;
+ arm-*-riscix*)
+ noconfigdirs="$noconfigdirs ld target-libgloss"
+ ;;
+ c4x-*-* | tic4x-*-*)
+ noconfigdirs="$noconfigdirs target-libgloss"
+ ;;
+ tic54x-*-*)
+ noconfigdirs="$noconfigdirs target-libgloss gdb"
+ ;;
+ cr16-*-*)
+ noconfigdirs="$noconfigdirs gdb"
+ ;;
+ d10v-*-*)
+ noconfigdirs="$noconfigdirs target-libgloss"
+ ;;
+ d30v-*-*)
+ noconfigdirs="$noconfigdirs gdb"
+ ;;
+ fr30-*-elf*)
+ noconfigdirs="$noconfigdirs gdb"
+ ;;
+ moxie-*-*)
+ noconfigdirs="$noconfigdirs gprof"
+ ;;
+ h8300*-*-*)
+ noconfigdirs="$noconfigdirs target-libgloss"
+ ;;
+ h8500-*-*)
+ noconfigdirs="$noconfigdirs target-libgloss"
+ ;;
+ hppa1.1-*-osf* | hppa1.1-*-bsd* )
+ ;;
+ hppa*64*-*-linux*)
+ ;;
+ hppa*-*-linux*)
+ ;;
+ hppa*-*-*elf* | \
+ hppa*-*-lites* | \
+ hppa*-*-openbsd* | \
+ hppa*64*-*-*)
+ ;;
+ hppa*-hp-hpux11*)
+ noconfigdirs="$noconfigdirs ld"
+ ;;
+ hppa*-*-pro*)
+ ;;
+ hppa*-*-*)
+ noconfigdirs="$noconfigdirs ld"
+ ;;
+ i960-*-*)
+ noconfigdirs="$noconfigdirs gdb"
+ ;;
+ ia64*-*-elf*)
+ # No gdb support yet.
+ noconfigdirs="$noconfigdirs readline libgui itcl gdb"
+ ;;
+ ia64*-**-hpux*)
+ # No ld support yet.
+ noconfigdirs="$noconfigdirs libgui itcl ld"
+ ;;
+ ia64*-*-*vms*)
+ noconfigdirs="$noconfigdirs libgui itcl"
+ ;;
+ i[[3456789]]86-w64-mingw*)
+ ;;
+ i[[3456789]]86-*-mingw*)
+ target_configdirs="$target_configdirs target-winsup"
+ ;;
+ *-*-cygwin*)
+ target_configdirs="$target_configdirs target-libtermcap target-winsup"
+ noconfigdirs="$noconfigdirs target-libgloss"
+ # always build newlib if winsup directory is present.
+ if test -d "$srcdir/winsup/cygwin"; then
+ skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
+ elif test -d "$srcdir/newlib"; then
+ echo "Warning: winsup/cygwin is missing so newlib can't be built."
+ fi
+ ;;
+ i[[3456789]]86-*-pe)
+ noconfigdirs="$noconfigdirs target-libgloss"
+ ;;
+ i[[3456789]]86-*-sco3.2v5*)
+ # The linker does not yet know about weak symbols in COFF,
+ # and is not configured to handle mixed ELF and COFF.
+ noconfigdirs="$noconfigdirs ld target-libgloss"
+ ;;
+ i[[3456789]]86-*-sco*)
+ noconfigdirs="$noconfigdirs gprof target-libgloss"
+ ;;
+ i[[3456789]]86-*-solaris2* | x86_64-*-solaris2.1[[0-9]]*)
+ noconfigdirs="$noconfigdirs target-libgloss"
+ ;;
+ i[[3456789]]86-*-sysv4*)
+ noconfigdirs="$noconfigdirs target-libgloss"
+ ;;
+ i[[3456789]]86-*-beos*)
+ noconfigdirs="$noconfigdirs gdb"
+ ;;
+ i[[3456789]]86-*-rdos*)
+ noconfigdirs="$noconfigdirs gdb"
+ ;;
+ mmix-*-*)
+ noconfigdirs="$noconfigdirs gdb"
+ ;;
+ mt-*-*)
+ noconfigdirs="$noconfigdirs sim"
+ ;;
+ powerpc-*-aix*)
+ # copied from rs6000-*-* entry
+ noconfigdirs="$noconfigdirs gprof"
+ ;;
+ powerpc*-*-winnt* | powerpc*-*-pe*)
+ target_configdirs="$target_configdirs target-winsup"
+ noconfigdirs="$noconfigdirs gdb tcl tk target-libgloss itcl"
+ # always build newlib.
+ skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
+ ;;
+ # This is temporary until we can link against shared libraries
+ powerpcle-*-solaris*)
+ noconfigdirs="$noconfigdirs gdb sim tcl tk itcl"
+ ;;
+ powerpc-*-beos*)
+ noconfigdirs="$noconfigdirs gdb"
+ ;;
+ rs6000-*-lynxos*)
+ noconfigdirs="$noconfigdirs gprof"
+ ;;
+ rs6000-*-aix*)
+ noconfigdirs="$noconfigdirs gprof"
+ ;;
+ rs6000-*-*)
+ noconfigdirs="$noconfigdirs gprof"
+ ;;
+ m68k-apollo-*)
+ noconfigdirs="$noconfigdirs ld binutils gprof target-libgloss"
+ ;;
+ microblaze*)
+ noconfigdirs="$noconfigdirs gprof"
+ ;;
+ mips*-sde-elf*)
+ if test x$with_newlib = xyes; then
+ noconfigdirs="$noconfigdirs gprof"
+ fi
+ ;;
+ mips*-*-irix5*)
+ noconfigdirs="$noconfigdirs gprof target-libgloss"
+ ;;
+ mips*-*-irix6*)
+ noconfigdirs="$noconfigdirs gprof target-libgloss"
+ ;;
+ mips*-*-bsd*)
+ noconfigdirs="$noconfigdirs gprof target-libgloss"
+ ;;
+ mips*-*-linux*)
+ ;;
+ mips*-*-*)
+ noconfigdirs="$noconfigdirs gprof"
+ ;;
+ sh-*-* | sh64-*-*)
+ case "${target}" in
+ sh*-*-elf)
+ ;;
+ *)
+ noconfigdirs="$noconfigdirs target-libgloss" ;;
+ esac
+ ;;
+ sparc-*-sunos4*)
+ if test x${is_cross_compiler} = xno ; then
+ use_gnu_ld=no
+ fi
+ ;;
+ tic6x-*-*)
+ noconfigdirs="$noconfigdirs sim"
+ ;;
+ tilepro-*-* | tilegx-*-*)
+ noconfigdirs="$noconfigdirs sim"
+ ;;
+ v810-*-*)
+ noconfigdirs="$noconfigdirs bfd binutils gas gdb ld opcodes target-libgloss"
+ ;;
+ vax-*-*)
+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
+ ;;
+esac
+
+# If we aren't building newlib, then don't build libgloss, since libgloss
+# depends upon some newlib header files.
+case "${noconfigdirs}" in
+ *target-libgloss*) ;;
+ *target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;;
+esac
+
+# Work in distributions that contain no compiler tools, like Autoconf.
+host_makefile_frag=/dev/null
+if test -d ${srcdir}/config ; then
+case "${host}" in
+ i[[3456789]]86-*-msdosdjgpp*)
+ host_makefile_frag="config/mh-djgpp"
+ ;;
+ *-cygwin*)
+ ACX_CHECK_CYGWIN_CAT_WORKS
+ host_makefile_frag="config/mh-cygwin"
+ ;;
+ *-mingw*)
+ host_makefile_frag="config/mh-mingw"
+ ;;
+ *-interix*)
+ host_makefile_frag="config/mh-interix"
+ ;;
+ hppa*-hp-hpux10*)
+ host_makefile_frag="config/mh-pa-hpux10"
+ ;;
+ hppa*-hp-hpux*)
+ host_makefile_frag="config/mh-pa"
+ ;;
+ hppa*-*)
+ host_makefile_frag="config/mh-pa"
+ ;;
+ *-*-darwin*)
+ host_makefile_frag="config/mh-darwin"
+ ;;
+ powerpc-*-aix*)
+ host_makefile_frag="config/mh-ppc-aix"
+ ;;
+ rs6000-*-aix*)
+ host_makefile_frag="config/mh-ppc-aix"
+ ;;
+esac
+fi
+
+if test "${build}" != "${host}" ; then
+ AR_FOR_BUILD=${AR_FOR_BUILD-ar}
+ AS_FOR_BUILD=${AS_FOR_BUILD-as}
+ CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
+ CXX_FOR_BUILD=${CXX_FOR_BUILD-g++}
+ GCJ_FOR_BUILD=${GCJ_FOR_BUILD-gcj}
+ GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran}
+ GOC_FOR_BUILD=${GOC_FOR_BUILD-gccgo}
+ DLLTOOL_FOR_BUILD=${DLLTOOL_FOR_BUILD-dlltool}
+ LD_FOR_BUILD=${LD_FOR_BUILD-ld}
+ NM_FOR_BUILD=${NM_FOR_BUILD-nm}
+ RANLIB_FOR_BUILD=${RANLIB_FOR_BUILD-ranlib}
+ WINDRES_FOR_BUILD=${WINDRES_FOR_BUILD-windres}
+ WINDMC_FOR_BUILD=${WINDMC_FOR_BUILD-windmc}
+else
+ AR_FOR_BUILD="\$(AR)"
+ AS_FOR_BUILD="\$(AS)"
+ CC_FOR_BUILD="\$(CC)"
+ CXX_FOR_BUILD="\$(CXX)"
+ GCJ_FOR_BUILD="\$(GCJ)"
+ GFORTRAN_FOR_BUILD="\$(GFORTRAN)"
+ GOC_FOR_BUILD="\$(GOC)"
+ DLLTOOL_FOR_BUILD="\$(DLLTOOL)"
+ LD_FOR_BUILD="\$(LD)"
+ NM_FOR_BUILD="\$(NM)"
+ RANLIB_FOR_BUILD="\$(RANLIB)"
+ WINDRES_FOR_BUILD="\$(WINDRES)"
+ WINDMC_FOR_BUILD="\$(WINDMC)"
+fi
+
+AC_PROG_CC
+AC_PROG_CXX
+
+# We must set the default linker to the linker used by gcc for the correct
+# operation of libtool. If LD is not defined and we are using gcc, try to
+# set the LD default to the ld used by gcc.
+if test -z "$LD"; then
+ if test "$GCC" = yes; then
+ case $build in
+ *-*-mingw*)
+ gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;;
+ *)
+ gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;;
+ esac
+ case $gcc_prog_ld in
+ # Accept absolute paths.
+ [[\\/]* | [A-Za-z]:[\\/]*)]
+ LD="$gcc_prog_ld" ;;
+ esac
+ fi
+fi
+
+ACX_PROG_GNAT
+ACX_PROG_CMP_IGNORE_INITIAL
+
+AC_ARG_ENABLE([bootstrap],
+[AS_HELP_STRING([--enable-bootstrap],
+ [enable bootstrapping @<:@yes if native build@:>@])],,
+enable_bootstrap=default)
+
+# Issue errors and warnings for invalid/strange bootstrap combinations.
+if test -r $srcdir/gcc/configure; then
+ have_compiler=yes
+else
+ have_compiler=no
+fi
+
+case "$have_compiler:$host:$target:$enable_bootstrap" in
+ *:*:*:no) ;;
+
+ # Default behavior. Enable bootstrap if we have a compiler
+ # and we are in a native configuration.
+ yes:$build:$build:default)
+ enable_bootstrap=yes ;;
+
+ *:*:*:default)
+ enable_bootstrap=no ;;
+
+ # We have a compiler and we are in a native configuration, bootstrap is ok
+ yes:$build:$build:yes)
+ ;;
+
+ # Other configurations, but we have a compiler. Assume the user knows
+ # what he's doing.
+ yes:*:*:yes)
+ AC_MSG_WARN([trying to bootstrap a cross compiler])
+ ;;
+
+ # No compiler: if they passed --enable-bootstrap explicitly, fail
+ no:*:*:yes)
+ AC_MSG_ERROR([cannot bootstrap without a compiler]) ;;
+
+ # Fail if wrong command line
+ *)
+ AC_MSG_ERROR([invalid option for --enable-bootstrap])
+ ;;
+esac
+
+# See if we are building gcc with C++.
+AC_ARG_ENABLE(build-with-cxx,
+[AS_HELP_STRING([--enable-build-with-cxx],
+ [build with C++ compiler instead of C compiler])],
+ENABLE_BUILD_WITH_CXX=$enableval,
+ENABLE_BUILD_WITH_CXX=no)
+
+# Build stage1 with C and build stages 2 and 3 with C++.
+AC_ARG_ENABLE(build-poststage1-with-cxx,
+[AS_HELP_STRING([--enable-build-poststage1-with-cxx],
+ [build stages 2 and 3 with C++, not C])],
+ENABLE_BUILD_POSTSTAGE1_WITH_CXX=$enableval,
+ENABLE_BUILD_POSTSTAGE1_WITH_CXX=yes)
+
+# Used for setting $lt_cv_objdir
+_LT_CHECK_OBJDIR
+
+# Check for GMP, MPFR and MPC
+gmplibs="-lmpc -lmpfr -lgmp"
+gmpinc=
+have_gmp=no
+
+# Specify a location for mpc
+# check for this first so it ends up on the link line before mpfr.
+AC_ARG_WITH(mpc,
+[AS_HELP_STRING([--with-mpc=PATH],
+ [specify prefix directory for installed MPC package.
+ Equivalent to --with-mpc-include=PATH/include
+ plus --with-mpc-lib=PATH/lib])])
+AC_ARG_WITH(mpc-include,
+[AS_HELP_STRING([--with-mpc-include=PATH],
+ [specify directory for installed MPC include files])])
+AC_ARG_WITH(mpc-lib,
+[AS_HELP_STRING([--with-mpc-lib=PATH],
+ [specify directory for the installed MPC library])])
+
+if test "x$with_mpc" != x; then
+ gmplibs="-L$with_mpc/lib $gmplibs"
+ gmpinc="-I$with_mpc/include $gmpinc"
+fi
+if test "x$with_mpc_include" != x; then
+ gmpinc="-I$with_mpc_include $gmpinc"
+fi
+if test "x$with_mpc_lib" != x; then
+ gmplibs="-L$with_mpc_lib $gmplibs"
+fi
+if test "x$with_mpc$with_mpc_include$with_mpc_lib" = x && test -d ${srcdir}/mpc; then
+ gmplibs='-L$$r/$(HOST_SUBDIR)/mpc/src/'"$lt_cv_objdir $gmplibs"
+ gmpinc='-I$$s/mpc/src '"$gmpinc"
+ # Do not test the mpc version. Assume that it is sufficient, since
+ # it is in the source tree, and the library has not been built yet
+ # but it would be included on the link line in the version check below
+ # hence making the test fail.
+ have_gmp=yes
+fi
+
+# Specify a location for mpfr
+# check for this first so it ends up on the link line before gmp.
+AC_ARG_WITH(mpfr-dir,
+[AS_HELP_STRING([--with-mpfr-dir=PATH], [this option has been REMOVED])],
+[AC_MSG_ERROR([The --with-mpfr-dir=PATH option has been removed.
+Use --with-mpfr=PATH or --with-mpfr-include=PATH plus --with-mpfr-lib=PATH])])
+
+AC_ARG_WITH(mpfr,
+[AS_HELP_STRING([--with-mpfr=PATH],
+ [specify prefix directory for installed MPFR package.
+ Equivalent to --with-mpfr-include=PATH/include
+ plus --with-mpfr-lib=PATH/lib])])
+AC_ARG_WITH(mpfr-include,
+[AS_HELP_STRING([--with-mpfr-include=PATH],
+ [specify directory for installed MPFR include files])])
+AC_ARG_WITH(mpfr-lib,
+[AS_HELP_STRING([--with-mpfr-lib=PATH],
+ [specify directory for the installed MPFR library])])
+
+if test "x$with_mpfr" != x; then
+ gmplibs="-L$with_mpfr/lib $gmplibs"
+ gmpinc="-I$with_mpfr/include $gmpinc"
+fi
+if test "x$with_mpfr_include" != x; then
+ gmpinc="-I$with_mpfr_include $gmpinc"
+fi
+if test "x$with_mpfr_lib" != x; then
+ gmplibs="-L$with_mpfr_lib $gmplibs"
+fi
+if test "x$with_mpfr$with_mpfr_include$with_mpfr_lib" = x && test -d ${srcdir}/mpfr; then
+ gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir $gmplibs"
+ gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr -I$$s/mpfr '"$gmpinc"
+ extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr --with-mpfr-lib=$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir"
+ # Do not test the mpfr version. Assume that it is sufficient, since
+ # it is in the source tree, and the library has not been built yet
+ # but it would be included on the link line in the version check below
+ # hence making the test fail.
+ have_gmp=yes
+fi
+
+# Specify a location for gmp
+AC_ARG_WITH(gmp-dir,
+[AS_HELP_STRING([--with-gmp-dir=PATH], [this option has been REMOVED])],
+[AC_MSG_ERROR([The --with-gmp-dir=PATH option has been removed.
+Use --with-gmp=PATH or --with-gmp-include=PATH plus --with-gmp-lib=PATH])])
+
+AC_ARG_WITH(gmp,
+[AS_HELP_STRING([--with-gmp=PATH],
+ [specify prefix directory for the installed GMP package.
+ Equivalent to --with-gmp-include=PATH/include
+ plus --with-gmp-lib=PATH/lib])])
+AC_ARG_WITH(gmp-include,
+[AS_HELP_STRING([--with-gmp-include=PATH],
+ [specify directory for installed GMP include files])])
+AC_ARG_WITH(gmp-lib,
+[AS_HELP_STRING([--with-gmp-lib=PATH],
+ [specify directory for the installed GMP library])])
+
+
+if test "x$with_gmp" != x; then
+ gmplibs="-L$with_gmp/lib $gmplibs"
+ gmpinc="-I$with_gmp/include $gmpinc"
+fi
+if test "x$with_gmp_include" != x; then
+ gmpinc="-I$with_gmp_include $gmpinc"
+fi
+if test "x$with_gmp_lib" != x; then
+ gmplibs="-L$with_gmp_lib $gmplibs"
+fi
+if test "x$with_gmp$with_gmp_include$with_gmp_lib" = x && test -d ${srcdir}/gmp; then
+ gmplibs='-L$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir $gmplibs"
+ gmpinc='-I$$r/$(HOST_SUBDIR)/gmp -I$$s/gmp '"$gmpinc"
+ extra_mpfr_configure_flags='--with-gmp-include=$$r/$(HOST_SUBDIR)/gmp --with-gmp-lib=$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir"
+ extra_mpc_gmp_configure_flags='--with-gmp-include=$$r/$(HOST_SUBDIR)/gmp --with-gmp-lib=$$r/$(HOST_SUBDIR)/gmp/'"$lt_cv_objdir"
+ # Do not test the gmp version. Assume that it is sufficient, since
+ # it is in the source tree, and the library has not been built yet
+ # but it would be included on the link line in the version check below
+ # hence making the test fail.
+ have_gmp=yes
+fi
+
+if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then
+ have_gmp=yes
+ saved_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $gmpinc"
+ # Check for the recommended and required versions of GMP.
+ AC_MSG_CHECKING([for the correct version of gmp.h])
+ AC_TRY_COMPILE([#include "gmp.h"],[
+ #define GCC_GMP_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
+ #define GCC_GMP_VERSION GCC_GMP_VERSION_NUM(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL)
+ #if GCC_GMP_VERSION < GCC_GMP_VERSION_NUM(4,2,0)
+ choke me
+ #endif
+ ], [AC_TRY_COMPILE([#include <gmp.h>],[
+ #define GCC_GMP_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
+ #define GCC_GMP_VERSION GCC_GMP_VERSION_NUM(__GNU_MP_VERSION,__GNU_MP_VERSION_MINOR,__GNU_MP_VERSION_PATCHLEVEL)
+ #if GCC_GMP_VERSION < GCC_GMP_VERSION_NUM(4,3,2)
+ choke me
+ #endif
+ ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
+ [AC_MSG_RESULT([no]); have_gmp=no])
+
+ # If we have GMP, check the MPFR version.
+ if test x"$have_gmp" = xyes; then
+ # Check for the recommended and required versions of MPFR.
+ AC_MSG_CHECKING([for the correct version of mpfr.h])
+ AC_TRY_COMPILE([#include <gmp.h>
+ #include <mpfr.h>],[
+ #if MPFR_VERSION < MPFR_VERSION_NUM(2,3,1)
+ choke me
+ #endif
+ ], [AC_TRY_COMPILE([#include <gmp.h>
+ #include <mpfr.h>],[
+ #if MPFR_VERSION < MPFR_VERSION_NUM(2,4,2)
+ choke me
+ #endif
+ ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
+ [AC_MSG_RESULT([no]); have_gmp=no])
+ fi
+
+ # Check for the MPC header version.
+ if test x"$have_gmp" = xyes ; then
+ # Check for the recommended and required versions of MPC.
+ AC_MSG_CHECKING([for the correct version of mpc.h])
+ AC_TRY_COMPILE([#include <mpc.h>],[
+ #if MPC_VERSION < MPC_VERSION_NUM(0,8,0)
+ choke me
+ #endif
+ ], [AC_TRY_COMPILE([#include <mpc.h>],[
+ #if MPC_VERSION < MPC_VERSION_NUM(0,8,1)
+ choke me
+ #endif
+ ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])],
+ [AC_MSG_RESULT([no]); have_gmp=no])
+ fi
+
+ # Now check the MPFR library.
+ if test x"$have_gmp" = xyes; then
+ saved_LIBS="$LIBS"
+ LIBS="$LIBS $gmplibs"
+ AC_MSG_CHECKING([for the correct version of the gmp/mpfr/mpc libraries])
+ AC_TRY_LINK([#include <mpc.h>],[
+ mpfr_t n;
+ mpfr_t x;
+ mpc_t c;
+ int t;
+ mpfr_init (n);
+ mpfr_init (x);
+ mpfr_atan2 (n, n, x, GMP_RNDN);
+ mpfr_erfc (n, x, GMP_RNDN);
+ mpfr_subnormalize (x, t, GMP_RNDN);
+ mpfr_clear(n);
+ mpfr_clear(x);
+ mpc_init2 (c, 53);
+ mpc_set_ui_ui (c, 1, 1, MPC_RNDNN);
+ mpc_cosh (c, c, MPC_RNDNN);
+ mpc_pow (c, c, c, MPC_RNDNN);
+ mpc_acosh (c, c, MPC_RNDNN);
+ mpc_clear (c);
+ ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); have_gmp=no])
+ LIBS="$saved_LIBS"
+ fi
+
+ CFLAGS="$saved_CFLAGS"
+
+# The library versions listed in the error message below should match
+# the HARD-minimums enforced above.
+ if test x$have_gmp != xyes; then
+ AC_MSG_ERROR([Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+.
+Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify
+their locations. Source code for these libraries can be found at
+their respective hosting sites as well as at
+ftp://gcc.gnu.org/pub/gcc/infrastructure/. See also
+http://gcc.gnu.org/install/prerequisites.html for additional info. If
+you obtained GMP, MPFR and/or MPC from a vendor distribution package,
+make sure that you have installed both the libraries and the header
+files. They may be located in separate packages.])
+ fi
+fi
+
+# Flags needed for both GMP, MPFR and/or MPC.
+AC_SUBST(gmplibs)
+AC_SUBST(gmpinc)
+AC_SUBST(extra_mpfr_configure_flags)
+AC_SUBST(extra_mpc_gmp_configure_flags)
+AC_SUBST(extra_mpc_mpfr_configure_flags)
+
+# Allow host libstdc++ to be specified for static linking with PPL.
+AC_ARG_WITH(host-libstdcxx,
+[AS_HELP_STRING([--with-host-libstdcxx=L],
+ [use linker arguments L to link with libstdc++
+ when linking with PPL])])
+
+case $with_host_libstdcxx in
+ no|yes)
+ AC_MSG_ERROR([-with-host-libstdcxx needs an argument])
+ ;;
+esac
+
+# Linker flags to use for stage1 or when not boostrapping.
+AC_ARG_WITH(stage1-ldflags,
+[AS_HELP_STRING([--with-stage1-ldflags=FLAGS], [linker flags for stage1])],
+[if test "$withval" = "no" -o "$withval" = "yes"; then
+ stage1_ldflags=
+ else
+ stage1_ldflags=$withval
+ fi],
+[stage1_ldflags=])
+AC_SUBST(stage1_ldflags)
+
+# Libraries to use for stage1 or when not bootstrapping.
+AC_ARG_WITH(stage1-libs,
+[AS_HELP_STRING([--with-stage1-libs=LIBS], [libraries for stage1])],
+[if test "$withval" = "no" -o "$withval" = "yes"; then
+ stage1_libs=
+ else
+ stage1_libs=$withval
+ fi],
+[stage1_libs=$with_host_libstdcxx])
+AC_SUBST(stage1_libs)
+
+# Libraries to use for stage2 and later builds. This defaults to the
+# argument passed to --with-host-libstdcxx.
+AC_ARG_WITH(boot-libs,
+[AS_HELP_STRING([--with-boot-libs=LIBS], [libraries for stage2 and later])],
+[if test "$withval" = "no" -o "$withval" = "yes"; then
+ poststage1_libs=
+ else
+ poststage1_libs=$withval
+ fi],
+[poststage1_libs=$with_host_libstdcxx])
+AC_SUBST(poststage1_libs)
+
+# Linker flags to use for stage2 and later builds.
+AC_ARG_WITH(boot-ldflags,
+[AS_HELP_STRING([--with-boot-ldflags=FLAGS],
+ [linker flags for stage2 and later])],
+[if test "$withval" = "no" -o "$withval" = "yes"; then
+ poststage1_ldflags=
+ else
+ poststage1_ldflags=$withval
+ fi],
+[poststage1_ldflags=
+ # In stages 2 and 3, default to linking libstdc++ and libgcc
+ # statically. But if the user explicitly specified the libraries to
+ # use, trust that they are doing what they want.
+ if test "$poststage1_libs" = ""; then
+ poststage1_ldflags="-static-libstdc++ -static-libgcc"
+ fi])
+AC_SUBST(poststage1_ldflags)
+
+# Check for PPL
+ppllibs=
+pplinc=
+pwllib=
+
+AC_ARG_WITH(ppl,
+[AS_HELP_STRING([--with-ppl=PATH],
+ [specify prefix directory for the installed PPL package.
+ Equivalent to --with-ppl-include=PATH/include
+ plus --with-ppl-lib=PATH/lib])])
+AC_ARG_WITH(ppl-include,
+[AS_HELP_STRING([--with-ppl-include=PATH],
+ [specify directory for installed PPL include files])])
+AC_ARG_WITH(ppl-lib,
+[AS_HELP_STRING([--with-ppl-lib=PATH],
+ [specify directory for the installed PPL library])])
+
+AC_ARG_ENABLE(ppl-version-check,
+[AS_HELP_STRING([--disable-ppl-version-check],
+ [disable check for PPL version])])
+
+case $with_ppl in
+ yes | no | "")
+ ;;
+ *)
+ ppllibs="-L$with_ppl/lib"
+ pplinc="-I$with_ppl/include $pplinc"
+ if test -d "$with_ppl/lib" && test -d "$with_ppl/include"; then
+ with_ppl=yes
+ else
+ AC_MSG_ERROR([cannot find directories "$with_ppl/lib" or "$with_ppl/include"])
+ fi
+ ;;
+esac
+
+if test x"$with_ppl_include" != x; then
+ pplinc="-I$with_ppl_include $pplinc"
+ with_ppl=yes
+fi
+
+if test "x$with_ppl_lib" != x; then
+ ppllibs="-L$with_ppl_lib"
+ with_ppl=yes
+fi
+
+if test x"$with_ppl$with_ppl_include$with_ppl_lib" = x && test -d ${srcdir}/ppl; then
+ if test x"$enable_watchdog" = xyes; then
+ pwllib="-lpwl"
+ fi
+ ppllibs='-L$$r/$(HOST_SUBDIR)/ppl/interfaces/C/'"$lt_cv_objdir"' -L$$r/$(HOST_SUBDIR)/ppl/src/'"$lt_cv_objdir"
+ pplinc='-I$$r/$(HOST_SUBDIR)/ppl/src -I$$r/$(HOST_SUBDIR)/ppl/interfaces/C '
+ enable_ppl_version_check=no
+ with_ppl=yes
+fi
+
+if test "x$with_ppl" != xno; then
+ if test "x$pwllib" = x; then
+ saved_LIBS="$LIBS"
+ LIBS="$LIBS $ppllibs -lstdc++ -lm"
+ AC_CHECK_LIB(pwl, PWL_handle_timeout, [pwllib="-lpwl"])
+ LIBS="$saved_LIBS"
+ fi
+
+ ppllibs="$ppllibs -lppl_c -lppl $pwllib -lgmpxx"
+
+ if test "$enable_ppl_version_check" != no; then
+ saved_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $pplinc $gmpinc"
+ AC_MSG_CHECKING([for version 0.11 (revision 0 or later) of PPL])
+ AC_TRY_COMPILE([#include "ppl_c.h"],[
+ #if PPL_VERSION_MAJOR != 0 || PPL_VERSION_MINOR < 11
+ choke me
+ #endif
+ ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); ppllibs= ; pplinc= ; with_ppl=no ])
+ CFLAGS="$saved_CFLAGS"
+ fi
+fi
+
+# Flags needed for PPL
+AC_SUBST(ppllibs)
+AC_SUBST(pplinc)
+
+
+# Check for CLOOG
+
+dnl Provide configure switches and initialize clooginc & clooglibs
+dnl with user input.
+CLOOG_INIT_FLAGS
+if test "x$with_ppl" = "xno"; then
+ dnl Only execute fail-action, if CLooG has been requested.
+ CLOOG_REQUESTED([graphite_requested=yes], [graphite_requested=no])
+ if test "${graphite_requested}" = yes; then
+ AC_MSG_ERROR([Unable to find a usable PPL. See config.log for details.])
+ fi
+ with_cloog=no
+fi
+if test "x${with_cloog}" = x && test "x${with_cloog_include}" = x \
+ && test "x${with_cloog_lib}" = x && test -d ${srcdir}/cloog; then
+ clooglibs='-L$$r/$(HOST_SUBDIR)/cloog/'"$lt_cv_objdir"' '
+ clooginc='-I$$r/$(HOST_SUBDIR)/cloog/include -I$$s/cloog/include '
+fi
+if test "x$with_cloog" != "xno"; then
+ dnl The minimal version of CLooG required for Graphite.
+ dnl
+ dnl If we use CLooG-Legacy, the provided version information is
+ dnl ignored.
+ CLOOG_CHECK_VERSION(0,16,1)
+
+ dnl Only execute fail-action, if CLooG has been requested.
+ CLOOG_IF_FAILED([
+ AC_MSG_ERROR([Unable to find a usable CLooG. See config.log for details.])])
+fi
+
+# Check for LTO support.
+AC_ARG_ENABLE(lto,
+[AS_HELP_STRING([--enable-lto], [enable link time optimization support])],
+enable_lto=$enableval,
+enable_lto=yes; default_enable_lto=yes)
+
+ACX_ELF_TARGET_IFELSE([# ELF platforms build the lto-plugin always.
+ build_lto_plugin=yes
+],[if test x"$default_enable_lto" = x"yes" ; then
+ case $target in
+ *-apple-darwin9* | *-cygwin* | *-mingw*) ;;
+ # On other non-ELF platforms, LTO has yet to be validated.
+ *) enable_lto=no ;;
+ esac
+ else
+ # Apart from ELF platforms, only Windows and Darwin support LTO so far.
+ # It would also be nice to check the binutils support, but we don't
+ # have gcc_GAS_CHECK_FEATURE available here. For now, we'll just
+ # warn during gcc/ subconfigure; unless you're bootstrapping with
+ # -flto it won't be needed until after installation anyway.
+ case $target in
+ *-cygwin* | *-mingw* | *-apple-darwin*) ;;
+ *) if test x"$enable_lto" = x"yes"; then
+ AC_MSG_ERROR([LTO support is not enabled for this target.])
+ fi
+ ;;
+ esac
+ fi
+ # Among non-ELF, only Windows platforms support the lto-plugin so far.
+ # Build it unless LTO was explicitly disabled.
+ case $target in
+ *-cygwin* | *-mingw*) build_lto_plugin=$enable_lto ;;
+ *) ;;
+ esac
+])
+
+
+# By default, C is the only stage 1 language.
+stage1_languages=,c,
+
+# Target libraries that we bootstrap.
+bootstrap_target_libs=,target-libgcc,
+
+# Figure out what language subdirectories are present.
+# Look if the user specified --enable-languages="..."; if not, use
+# the environment variable $LANGUAGES if defined. $LANGUAGES might
+# go away some day.
+# NB: embedded tabs in this IF block -- do not untabify
+if test -d ${srcdir}/gcc; then
+ if test x"${enable_languages+set}" != xset; then
+ if test x"${LANGUAGES+set}" = xset; then
+ enable_languages="${LANGUAGES}"
+ echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2
+ else
+ enable_languages=all
+ fi
+ else
+ if test x"${enable_languages}" = x ||
+ test x"${enable_languages}" = xyes;
+ then
+ echo configure.in: --enable-languages needs at least one language argument 1>&2
+ exit 1
+ fi
+ fi
+ enable_languages=`echo "${enable_languages}" | sed -e 's/[[ ,]][[ ,]]*/,/g' -e 's/,$//'`
+
+ # 'f95' is the old name for the 'fortran' language. We issue a warning
+ # and make the substitution.
+ case ,${enable_languages}, in
+ *,f95,*)
+ echo configure.in: warning: 'f95' as language name is deprecated, use 'fortran' instead 1>&2
+ enable_languages=`echo "${enable_languages}" | sed -e 's/f95/fortran/g'`
+ ;;
+ esac
+
+ # If bootstrapping, then using --enable-build-with-cxx or
+ # --enable-build-poststage1-with-cxx requires enabling C++.
+ case ",$enable_languages,:,$ENABLE_BUILD_WITH_CXX,$ENABLE_BUILD_POSTSTAGE1_WITH_CXX,:$enable_bootstrap" in
+ *,c++,*:*:*) ;;
+ *:*,yes,*:yes)
+ if test -f ${srcdir}/gcc/cp/config-lang.in; then
+ enable_languages="${enable_languages},c++"
+ else
+ AC_MSG_ERROR([bootstrapping with --enable-build-with-cxx or --enable-build-poststage1-with-cxx requires c++ sources])
+ fi
+ ;;
+ esac
+
+ # First scan to see if an enabled language requires some other language.
+ # We assume that a given config-lang.in will list all the language
+ # front ends it requires, even if some are required indirectly.
+ for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
+ case ${lang_frag} in
+ ..) ;;
+ # The odd quoting in the next line works around
+ # an apparent bug in bash 1.12 on linux.
+ ${srcdir}/gcc/[[*]]/config-lang.in) ;;
+ *)
+ # From the config-lang.in, get $language, $lang_requires, and
+ # $lang_requires_boot_languages.
+ language=
+ lang_requires=
+ lang_requires_boot_languages=
+ . ${lang_frag}
+ for other in ${lang_requires} ${lang_requires_boot_languages}; do
+ case ,${enable_languages}, in
+ *,$other,*) ;;
+ *,all,*) ;;
+ *,$language,*)
+ echo " \`$other' language required by \`$language'; enabling" 1>&2
+ enable_languages="${enable_languages},${other}"
+ ;;
+ esac
+ done
+ for other in ${lang_requires_boot_languages} ; do
+ if test "$other" != "c"; then
+ case ,${enable_stage1_languages}, in
+ *,$other,*) ;;
+ *,all,*) ;;
+ *)
+ case ,${enable_languages}, in
+ *,$language,*)
+ echo " '$other' language required by '$language' in stage 1; enabling" 1>&2
+ enable_stage1_languages="$enable_stage1_languages,${other}"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ ;;
+ esac
+ done
+
+ new_enable_languages=,c,
+
+ # If LTO is enabled, add the LTO front end.
+ extra_host_libiberty_configure_flags=
+ if test "$enable_lto" = "yes" ; then
+ case ,${enable_languages}, in
+ *,lto,*) ;;
+ *) enable_languages="${enable_languages},lto" ;;
+ esac
+ if test "${build_lto_plugin}" = "yes" ; then
+ configdirs="$configdirs lto-plugin"
+ extra_host_libiberty_configure_flags=--enable-shared
+ fi
+ fi
+ AC_SUBST(extra_host_libiberty_configure_flags)
+
+ missing_languages=`echo ",$enable_languages," | sed -e s/,all,/,/ -e s/,c,/,/ `
+ potential_languages=,c,
+
+ enabled_target_libs=
+ disabled_target_libs=
+
+ for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
+ case ${lang_frag} in
+ ..) ;;
+ # The odd quoting in the next line works around
+ # an apparent bug in bash 1.12 on linux.
+ ${srcdir}/gcc/[[*]]/config-lang.in) ;;
+ *)
+ # From the config-lang.in, get $language, $target_libs,
+ # $lang_dirs, $boot_language, and $build_by_default
+ language=
+ target_libs=
+ lang_dirs=
+ subdir_requires=
+ boot_language=no
+ build_by_default=yes
+ . ${lang_frag}
+ if test x${language} = x; then
+ echo "${lang_frag} doesn't set \$language." 1>&2
+ exit 1
+ fi
+
+ if test "$language" = "c++"; then
+ if test "$ENABLE_BUILD_WITH_CXX" = "yes" \
+ || test "$ENABLE_BUILD_POSTSTAGE1_WITH_CXX" = "yes"; then
+ boot_language=yes
+ fi
+ fi
+
+ case ,${enable_languages}, in
+ *,${language},*)
+ # Language was explicitly selected; include it.
+ add_this_lang=yes
+ ;;
+ *,all,*)
+ # 'all' was selected, select it if it is a default language
+ add_this_lang=${build_by_default}
+ ;;
+ *)
+ add_this_lang=no
+ ;;
+ esac
+
+ # Disable languages that need other directories if these aren't available.
+ for i in $subdir_requires; do
+ test -f "$srcdir/gcc/$i/config-lang.in" && continue
+ case ,${enable_languages}, in
+ *,${language},*)
+ # Specifically requested language; tell them.
+ AC_MSG_ERROR([The gcc/$i directory contains parts of $language but is missing])
+ ;;
+ *)
+ # Silently disable.
+ add_this_lang=unsupported
+ ;;
+ esac
+ done
+
+ # Disable Ada if no preexisting GNAT is available.
+ case ,${enable_languages},:${language}:${have_gnat} in
+ *,${language},*:ada:no)
+ # Specifically requested language; tell them.
+ AC_MSG_ERROR([GNAT is required to build $language])
+ ;;
+ *:ada:no)
+ # Silently disable.
+ add_this_lang=unsupported
+ ;;
+ esac
+
+ # Disable a language that is unsupported by the target.
+ case " $unsupported_languages " in
+ *" $language "*)
+ add_this_lang=unsupported
+ ;;
+ esac
+
+ case $add_this_lang in
+ unsupported)
+ # Remove language-dependent dirs.
+ disabled_target_libs="$disabled_target_libs $target_libs"
+ noconfigdirs="$noconfigdirs $lang_dirs"
+ ;;
+ no)
+ # Remove language-dependent dirs; still show language as supported.
+ disabled_target_libs="$disabled_target_libs $target_libs"
+ noconfigdirs="$noconfigdirs $lang_dirs"
+ potential_languages="${potential_languages}${language},"
+ ;;
+ yes)
+ new_enable_languages="${new_enable_languages}${language},"
+ potential_languages="${potential_languages}${language},"
+ missing_languages=`echo "$missing_languages" | sed "s/,$language,/,/"`
+ enabled_target_libs="$enabled_target_libs $target_libs"
+ case "${boot_language}:,$enable_stage1_languages," in
+ yes:* | *:*,$language,* | *:*,yes, | *:*,all,)
+ # Add to (comma-separated) list of stage 1 languages.
+ case ",$stage1_languages," in
+ *,$language,* | ,yes, | ,all,) ;;
+ *) stage1_languages="${stage1_languages}${language}," ;;
+ esac
+ # We need to bootstrap any supporting libraries.
+ bootstrap_target_libs="${bootstrap_target_libs}${target_libs},"
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ done
+
+ # Add target libraries which are only needed for disabled languages
+ # to noconfigdirs.
+ if test -n "$disabled_target_libs"; then
+ for dir in $disabled_target_libs; do
+ case " $enabled_target_libs " in
+ *" ${dir} "*) ;;
+ *) noconfigdirs="$noconfigdirs $dir" ;;
+ esac
+ done
+ fi
+
+ AC_ARG_ENABLE(stage1-languages,
+ [AS_HELP_STRING([[--enable-stage1-languages[=all]]],
+ [choose additional languages to build during
+ stage1. Mostly useful for compiler development])],
+ [case ,${enable_stage1_languages}, in
+ ,no,|,,)
+ # Set it to something that will have no effect in the loop below
+ enable_stage1_languages=c ;;
+ ,yes,)
+ enable_stage1_languages=`echo $new_enable_languages | \
+ sed -e "s/^,//" -e "s/,$//" ` ;;
+ *,all,*)
+ enable_stage1_languages=`echo ,$enable_stage1_languages, | \
+ sed -e "s/,all,/$new_enable_languages/" -e "s/^,//" -e "s/,$//" ` ;;
+ esac
+
+ # Add "good" languages from enable_stage1_languages to stage1_languages,
+ # while "bad" languages go in missing_languages. Leave no duplicates.
+ for i in `echo $enable_stage1_languages | sed 's/,/ /g' `; do
+ case $potential_languages in
+ *,$i,*)
+ case $stage1_languages in
+ *,$i,*) ;;
+ *) stage1_languages="$stage1_languages$i," ;;
+ esac ;;
+ *)
+ case $missing_languages in
+ *,$i,*) ;;
+ *) missing_languages="$missing_languages$i," ;;
+ esac ;;
+ esac
+ done])
+
+ # Remove leading/trailing commas that were added for simplicity
+ potential_languages=`echo "$potential_languages" | sed -e "s/^,//" -e "s/,$//"`
+ missing_languages=`echo "$missing_languages" | sed -e "s/^,//" -e "s/,$//"`
+ stage1_languages=`echo "$stage1_languages" | sed -e "s/^,//" -e "s/,$//"`
+ new_enable_languages=`echo "$new_enable_languages" | sed -e "s/^,//" -e "s/,$//"`
+
+ if test "x$missing_languages" != x; then
+ AC_MSG_ERROR([
+The following requested languages could not be built: ${missing_languages}
+Supported languages are: ${potential_languages}])
+ fi
+ if test "x$new_enable_languages" != "x$enable_languages"; then
+ echo The following languages will be built: ${new_enable_languages}
+ enable_languages="$new_enable_languages"
+ fi
+
+ AC_SUBST(stage1_languages)
+ ac_configure_args=`echo " $ac_configure_args" | sed -e "s/ '--enable-languages=[[^ ]]*'//g" -e "s/$/ '--enable-languages="$enable_languages"'/" `
+fi
+
+# Handle --disable-<component> generically.
+for dir in $configdirs $build_configdirs $target_configdirs ; do
+ dirname=`echo $dir | sed -e s/target-//g -e s/build-//g -e s/-/_/g`
+ varname=`echo $dirname | sed -e s/+/_/g`
+ if eval test x\${enable_${varname}} "=" xno ; then
+ noconfigdirs="$noconfigdirs $dir"
+ fi
+done
+
+# Check for Boehm's garbage collector
+AC_ARG_ENABLE(objc-gc,
+[AS_HELP_STRING([--enable-objc-gc],
+ [enable use of Boehm's garbage collector with the
+ GNU Objective-C runtime])],
+[case ,${enable_languages},:${enable_objc_gc}:${noconfigdirs} in
+ *,objc,*:*:yes:*target-boehm-gc*)
+ AC_MSG_ERROR([Boehm's garbage collector was requested yet not supported in this configuration])
+ ;;
+esac])
+
+# Make sure we only build Boehm's garbage collector if required.
+case ,${enable_languages},:${enable_objc_gc} in
+ *,objc,*:yes)
+ # Keep target-boehm-gc if requested for Objective-C.
+ ;;
+ *)
+ # Otherwise remove target-boehm-gc depending on target-libjava.
+ if echo " ${noconfigdirs} " | grep "target-libjava" >/dev/null 2>&1; then
+ noconfigdirs="$noconfigdirs target-boehm-gc"
+ fi
+ ;;
+esac
+
+# Remove the entries in $skipdirs and $noconfigdirs from $configdirs,
+# $build_configdirs and $target_configdirs.
+# If we have the source for $noconfigdirs entries, add them to $notsupp.
+
+notsupp=""
+for dir in . $skipdirs $noconfigdirs ; do
+ dirname=`echo $dir | sed -e s/target-//g -e s/build-//g`
+ if test $dir != . && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
+ configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
+ if test -r $srcdir/$dirname/configure ; then
+ if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
+ true
+ else
+ notsupp="$notsupp $dir"
+ fi
+ fi
+ fi
+ if test $dir != . && echo " ${build_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
+ build_configdirs=`echo " ${build_configdirs} " | sed -e "s/ ${dir} / /"`
+ if test -r $srcdir/$dirname/configure ; then
+ if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
+ true
+ else
+ notsupp="$notsupp $dir"
+ fi
+ fi
+ fi
+ if test $dir != . && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
+ target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
+ if test -r $srcdir/$dirname/configure ; then
+ if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
+ true
+ else
+ notsupp="$notsupp $dir"
+ fi
+ fi
+ fi
+done
+
+# Quietly strip out all directories which aren't configurable in this tree.
+# This relies on all configurable subdirectories being autoconfiscated, which
+# is now the case.
+build_configdirs_all="$build_configdirs"
+build_configdirs=
+for i in ${build_configdirs_all} ; do
+ j=`echo $i | sed -e s/build-//g`
+ if test -f ${srcdir}/$j/configure ; then
+ build_configdirs="${build_configdirs} $i"
+ fi
+done
+
+configdirs_all="$configdirs"
+configdirs=
+for i in ${configdirs_all} ; do
+ if test -f ${srcdir}/$i/configure ; then
+ configdirs="${configdirs} $i"
+ fi
+done
+
+target_configdirs_all="$target_configdirs"
+target_configdirs=
+for i in ${target_configdirs_all} ; do
+ j=`echo $i | sed -e s/target-//g`
+ if test -f ${srcdir}/$j/configure ; then
+ target_configdirs="${target_configdirs} $i"
+ fi
+done
+
+# Produce a warning message for the subdirs we can't configure.
+# This isn't especially interesting in the Cygnus tree, but in the individual
+# FSF releases, it's important to let people know when their machine isn't
+# supported by the one or two programs in a package.
+
+if test -n "${notsupp}" && test -z "${norecursion}" ; then
+ # If $appdirs is non-empty, at least one of those directories must still
+ # be configured, or we error out. (E.g., if the gas release supports a
+ # specified target in some subdirs but not the gas subdir, we shouldn't
+ # pretend that all is well.)
+ if test -n "$appdirs" ; then
+ for dir in $appdirs ; do
+ if test -r $dir/Makefile.in ; then
+ if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
+ appdirs=""
+ break
+ fi
+ if echo " ${target_configdirs} " | grep " target-${dir} " >/dev/null 2>&1; then
+ appdirs=""
+ break
+ fi
+ fi
+ done
+ if test -n "$appdirs" ; then
+ echo "*** This configuration is not supported by this package." 1>&2
+ exit 1
+ fi
+ fi
+ # Okay, some application will build, or we don't care to check. Still
+ # notify of subdirs not getting built.
+ echo "*** This configuration is not supported in the following subdirectories:" 1>&2
+ echo " ${notsupp}" 1>&2
+ echo " (Any other directories should still work fine.)" 1>&2
+fi
+
+case "$host" in
+ *msdosdjgpp*)
+ enable_gdbtk=no ;;
+esac
+
+# To find our prefix, in gcc_cv_tool_prefix.
+ACX_TOOL_DIRS
+
+copy_dirs=
+
+AC_ARG_WITH([build-sysroot],
+ [AS_HELP_STRING([--with-build-sysroot=SYSROOT],
+ [use sysroot as the system root during the build])],
+ [if test x"$withval" != x ; then
+ SYSROOT_CFLAGS_FOR_TARGET="--sysroot=$withval"
+ fi],
+ [SYSROOT_CFLAGS_FOR_TARGET=])
+AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET)
+
+AC_ARG_WITH([debug-prefix-map],
+ [AS_HELP_STRING([--with-debug-prefix-map='A=B C=D ...'],
+ [map A to B, C to D ... in debug information])],
+ [if test x"$withval" != x; then
+ DEBUG_PREFIX_CFLAGS_FOR_TARGET=
+ for debug_map in $withval; do
+ DEBUG_PREFIX_CFLAGS_FOR_TARGET="$DEBUG_PREFIX_CFLAGS_FOR_TARGET -fdebug-prefix-map=$debug_map"
+ done
+ fi],
+ [DEBUG_PREFIX_CFLAGS_FOR_TARGET=])
+AC_SUBST(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
+
+# During gcc bootstrap, if we use some random cc for stage1 then CFLAGS
+# might be empty or "-g". We don't require a C++ compiler, so CXXFLAGS
+# might also be empty (or "-g", if a non-GCC C++ compiler is in the path).
+# We want to ensure that TARGET libraries (which we know are built with
+# gcc) are built with "-O2 -g", so include those options when setting
+# CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET.
+if test "x$CFLAGS_FOR_TARGET" = x; then
+ CFLAGS_FOR_TARGET=$CFLAGS
+ case " $CFLAGS " in
+ *" -O2 "*) ;;
+ *) CFLAGS_FOR_TARGET="-O2 $CFLAGS" ;;
+ esac
+ case " $CFLAGS " in
+ *" -g "* | *" -g3 "*) ;;
+ *) CFLAGS_FOR_TARGET="-g $CFLAGS" ;;
+ esac
+fi
+AC_SUBST(CFLAGS_FOR_TARGET)
+
+if test "x$CXXFLAGS_FOR_TARGET" = x; then
+ CXXFLAGS_FOR_TARGET=$CXXFLAGS
+ case " $CXXFLAGS " in
+ *" -O2 "*) ;;
+ *) CXXFLAGS_FOR_TARGET="-O2 $CXXFLAGS" ;;
+ esac
+ case " $CXXFLAGS " in
+ *" -g "* | *" -g3 "*) ;;
+ *) CXXFLAGS_FOR_TARGET="-g $CXXFLAGS" ;;
+ esac
+fi
+AC_SUBST(CXXFLAGS_FOR_TARGET)
+
+AC_SUBST(LDFLAGS_FOR_TARGET)
+
+# Handle --with-headers=XXX. If the value is not "yes", the contents of
+# the named directory are copied to $(tooldir)/sys-include.
+if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
+ if test x${is_cross_compiler} = xno ; then
+ echo 1>&2 '***' --with-headers is only supported when cross compiling
+ exit 1
+ fi
+ if test x"${with_headers}" != xyes ; then
+ x=${gcc_cv_tool_prefix}
+ copy_dirs="${copy_dirs} ${with_headers} $x/${target_noncanonical}/sys-include"
+ fi
+fi
+
+# Handle --with-libs=XXX. If the value is not "yes", the contents of
+# the name directories are copied to $(tooldir)/lib. Multiple directories
+# are permitted.
+if test x"${with_libs}" != x && test x"${with_libs}" != xno ; then
+ if test x${is_cross_compiler} = xno ; then
+ echo 1>&2 '***' --with-libs is only supported when cross compiling
+ exit 1
+ fi
+ if test x"${with_libs}" != xyes ; then
+ # Copy the libraries in reverse order, so that files in the first named
+ # library override files in subsequent libraries.
+ x=${gcc_cv_tool_prefix}
+ for l in ${with_libs}; do
+ copy_dirs="$l $x/${target_noncanonical}/lib ${copy_dirs}"
+ done
+ fi
+fi
+
+# Set with_gnu_as, with_gnu_ld, and with_system_zlib as appropriate.
+#
+# This is done by determining whether or not the appropriate directory
+# is available, and by checking whether or not specific configurations
+# have requested that this magic not happen.
+#
+# The command line options always override the explicit settings in
+# configure.in, and the settings in configure.in override this magic.
+#
+# If the default for a toolchain is to use GNU as and ld, and you don't
+# want to do that, then you should use the --without-gnu-as and
+# --without-gnu-ld options for the configure script. Similarly, if
+# the default is to use the included zlib and you don't want to do that,
+# you should use the --with-system-zlib option for the configure script.
+
+if test x${use_gnu_as} = x &&
+ echo " ${configdirs} " | grep " gas " > /dev/null 2>&1 ; then
+ with_gnu_as=yes
+ extra_host_args="$extra_host_args --with-gnu-as"
+fi
+
+if test x${use_gnu_ld} = x &&
+ echo " ${configdirs} " | egrep " (go)?ld " > /dev/null 2>&1 ; then
+ with_gnu_ld=yes
+ extra_host_args="$extra_host_args --with-gnu-ld"
+fi
+
+if test x${use_included_zlib} = x &&
+ echo " ${configdirs} " | grep " zlib " > /dev/null 2>&1 ; then
+ :
+else
+ with_system_zlib=yes
+ extra_host_args="$extra_host_args --with-system-zlib"
+fi
+
+# If using newlib, add --with-newlib to the extra_host_args so that gcc/configure
+# can detect this case.
+
+if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " target-newlib " > /dev/null 2>&1 ; then
+ with_newlib=yes
+ extra_host_args="$extra_host_args --with-newlib"
+fi
+
+# Handle ${copy_dirs}
+set fnord ${copy_dirs}
+shift
+while test $# != 0 ; do
+ if test -f $2/COPIED && test x"`cat $2/COPIED`" = x"$1" ; then
+ :
+ else
+ echo Copying $1 to $2
+
+ # Use the install script to create the directory and all required
+ # parent directories.
+ if test -d $2 ; then
+ :
+ else
+ echo >config.temp
+ ${srcdir}/install-sh -c -m 644 config.temp $2/COPIED
+ fi
+
+ # Copy the directory, assuming we have tar.
+ # FIXME: Should we use B in the second tar? Not all systems support it.
+ (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
+
+ # It is the responsibility of the user to correctly adjust all
+ # symlinks. If somebody can figure out how to handle them correctly
+ # here, feel free to add the code.
+
+ echo $1 > $2/COPIED
+ fi
+ shift; shift
+done
+
+# Determine a target-dependent exec_prefix that the installed
+# gcc will search in. Keep this list sorted by triplet, with
+# the *-*-osname triplets last.
+md_exec_prefix=
+case "${target}" in
+ i[[34567]]86-pc-msdosdjgpp*)
+ md_exec_prefix=/dev/env/DJDIR/bin
+ ;;
+ *-*-hpux* | \
+ *-*-nto-qnx* | \
+ *-*-solaris2*)
+ md_exec_prefix=/usr/ccs/bin
+ ;;
+esac
+
+extra_arflags_for_target=
+extra_nmflags_for_target=
+extra_ranlibflags_for_target=
+target_makefile_frag=/dev/null
+case "${target}" in
+ spu-*-*)
+ target_makefile_frag="config/mt-spu"
+ ;;
+ mips*-sde-elf*)
+ target_makefile_frag="config/mt-sde"
+ ;;
+ mipsisa*-*-elfoabi*)
+ target_makefile_frag="config/mt-mips-elfoabi"
+ ;;
+ mips*-*-*linux* | mips*-*-gnu*)
+ target_makefile_frag="config/mt-mips-gnu"
+ ;;
+ *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
+ target_makefile_frag="config/mt-gnu"
+ ;;
+ *-*-aix4.[[3456789]]* | *-*-aix[[56789]].*)
+ # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm
+ # commands to handle both 32-bit and 64-bit objects. These flags are
+ # harmless if we're using GNU nm or ar.
+ extra_arflags_for_target=" -X32_64"
+ extra_nmflags_for_target=" -B -X32_64"
+ ;;
+ *-*-darwin[[3-9]]*)
+ # ranlib before Darwin10 requires the -c flag to look at common symbols.
+ extra_ranlibflags_for_target=" -c"
+ ;;
+esac
+
+alphaieee_frag=/dev/null
+case $target in
+ alpha*-*-*)
+ # This just makes sure to use the -mieee option to build target libs.
+ # This should probably be set individually by each library.
+ alphaieee_frag="config/mt-alphaieee"
+ ;;
+esac
+
+# If --enable-target-optspace always use -Os instead of -O2 to build
+# the target libraries, similarly if it is not specified, use -Os
+# on selected platforms.
+ospace_frag=/dev/null
+case "${enable_target_optspace}:${target}" in
+ yes:*)
+ ospace_frag="config/mt-ospace"
+ ;;
+ :d30v-*)
+ ospace_frag="config/mt-d30v"
+ ;;
+ :m32r-* | :d10v-* | :fr30-*)
+ ospace_frag="config/mt-ospace"
+ ;;
+ no:* | :*)
+ ;;
+ *)
+ echo "*** bad value \"${enable_target_optspace}\" for --enable-target-optspace flag; ignored" 1>&2
+ ;;
+esac
+
+# Some systems (e.g., one of the i386-aix systems the gas testers are
+# using) don't handle "\$" correctly, so don't use it here.
+tooldir='${exec_prefix}'/${target_noncanonical}
+build_tooldir=${tooldir}
+
+# Create a .gdbinit file which runs the one in srcdir
+# and tells GDB to look there for source files.
+
+if test -r ${srcdir}/.gdbinit ; then
+ case ${srcdir} in
+ .) ;;
+ *) cat > ./.gdbinit <<EOF
+# ${NO_EDIT}
+dir ${srcdir}
+dir .
+source ${srcdir}/.gdbinit
+EOF
+ ;;
+ esac
+fi
+
+# Make sure that the compiler is able to generate an executable. If it
+# can't, we are probably in trouble. We don't care whether we can run the
+# executable--we might be using a cross compiler--we only care whether it
+# can be created. At this point the main configure script has set CC.
+we_are_ok=no
+echo "int main () { return 0; }" > conftest.c
+${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c
+if test $? = 0 ; then
+ if test -s conftest || test -s conftest.exe ; then
+ we_are_ok=yes
+ fi
+fi
+case $we_are_ok in
+ no)
+ echo 1>&2 "*** The command '${CC} -o conftest ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} conftest.c' failed."
+ echo 1>&2 "*** You must set the environment variable CC to a working compiler."
+ rm -f conftest*
+ exit 1
+ ;;
+esac
+rm -f conftest*
+
+# Decide which environment variable is used to find dynamic libraries.
+case "${host}" in
+ *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;;
+ *-*-darwin*) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;;
+ *-*-mingw* | *-*-cygwin ) RPATH_ENVVAR=PATH ;;
+ *) RPATH_ENVVAR=LD_LIBRARY_PATH ;;
+esac
+
+# On systems where the dynamic library environment variable is PATH,
+# gcc/ will put dynamic libraries into a subdirectory to avoid adding
+# built executables to PATH.
+if test "$RPATH_ENVVAR" = PATH; then
+ GCC_SHLIB_SUBDIR=/shlib
+else
+ GCC_SHLIB_SUBDIR=
+fi
+
+# Record target_configdirs and the configure arguments for target and
+# build configuration in Makefile.
+target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'`
+build_configdirs=`echo "${build_configdirs}" | sed -e 's/build-//g'`
+
+# If we are building libgomp, bootstrap it.
+if echo " ${target_configdirs} " | grep " libgomp " > /dev/null 2>&1 ; then
+ bootstrap_target_libs=${bootstrap_target_libs}target-libgomp,
+fi
+
+# Determine whether gdb needs tk/tcl or not.
+# Use 'maybe' since enable_gdbtk might be true even if tk isn't available
+# and in that case we want gdb to be built without tk. Ugh!
+# In fact I believe gdb is the *only* package directly dependent on tk,
+# so we should be able to put the 'maybe's in unconditionally and
+# leave out the maybe dependencies when enable_gdbtk is false. I'm not
+# 100% sure that that's safe though.
+
+gdb_tk="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-libgui"
+case "$enable_gdbtk" in
+ no)
+ GDB_TK="" ;;
+ yes)
+ GDB_TK="${gdb_tk}" ;;
+ *)
+ # Only add the dependency on gdbtk when GDBtk is part of the gdb
+ # distro. Eventually someone will fix this and move Insight, nee
+ # gdbtk to a separate directory.
+ if test -d ${srcdir}/gdb/gdbtk ; then
+ GDB_TK="${gdb_tk}"
+ else
+ GDB_TK=""
+ fi
+ ;;
+esac
+CONFIGURE_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-configure-/g`
+INSTALL_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-install-/g`
+
+# Strip out unwanted targets.
+
+# While at that, we remove Makefiles if we were started for recursive
+# configuration, so that the top-level Makefile reconfigures them,
+# like we used to do when configure itself was recursive.
+
+# Loop over modules. We used to use the "$extrasub" feature from Autoconf
+# but now we're fixing up the Makefile ourselves with the additional
+# commands passed to AC_CONFIG_FILES. Use separate variables
+# extrasub-{build,host,target} not because there is any reason to split
+# the substitutions up that way, but only to remain below the limit of
+# 99 commands in a script, for HP-UX sed.
+# Do not nest @if/@endif pairs, because configure will not warn you at all.
+
+case "$enable_bootstrap:$ENABLE_GOLD: $configdirs :,$stage1_languages," in
+ yes:yes:*\ gold\ *:*,c++,*) ;;
+ yes:yes:*\ gold\ *:*)
+ AC_MSG_ERROR([in a combined tree, bootstrapping with --enable-gold requires c++ in stage1_languages])
+ ;;
+esac
+
+# Adjust the toplevel makefile according to whether bootstrap was selected.
+case $enable_bootstrap in
+ yes)
+ bootstrap_suffix=bootstrap
+ BUILD_CONFIG=bootstrap-debug
+ ;;
+ no)
+ bootstrap_suffix=no-bootstrap
+ BUILD_CONFIG=
+ ;;
+esac
+
+AC_MSG_CHECKING(for default BUILD_CONFIG)
+
+AC_ARG_WITH([build-config],
+ [AS_HELP_STRING([--with-build-config='NAME NAME2...'],
+ [use config/NAME.mk build configuration])],
+ [case $with_build_config in
+ yes) with_build_config= ;;
+ no) with_build_config= BUILD_CONFIG= ;;
+ esac])
+
+if test "x${with_build_config}" != x; then
+ BUILD_CONFIG=$with_build_config
+else
+ case $BUILD_CONFIG in
+ bootstrap-debug)
+ if echo "int f (void) { return 0; }" > conftest.c &&
+ ${CC} -c conftest.c &&
+ mv conftest.o conftest.o.g0 &&
+ ${CC} -c -g conftest.c &&
+ mv conftest.o conftest.o.g &&
+ ${srcdir}/contrib/compare-debug conftest.o.g0 conftest.o.g > /dev/null 2>&1; then
+ :
+ else
+ BUILD_CONFIG=
+ fi
+ rm -f conftest.c conftest.o conftest.o.g0 conftest.o.g
+ ;;
+ esac
+fi
+AC_MSG_RESULT($BUILD_CONFIG)
+AC_SUBST(BUILD_CONFIG)
+
+extrasub_build=
+for module in ${build_configdirs} ; do
+ if test -z "${no_recursion}" \
+ && test -f ${build_subdir}/${module}/Makefile; then
+ echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure"
+ rm -f ${build_subdir}/${module}/Makefile
+ fi
+ extrasub_build="$extrasub_build
+/^@if build-$module\$/d
+/^@endif build-$module\$/d
+/^@if build-$module-$bootstrap_suffix\$/d
+/^@endif build-$module-$bootstrap_suffix\$/d"
+done
+extrasub_host=
+for module in ${configdirs} ; do
+ if test -z "${no_recursion}"; then
+ for file in stage*-${module}/Makefile prev-${module}/Makefile ${module}/Makefile; do
+ if test -f ${file}; then
+ echo 1>&2 "*** removing ${file} to force reconfigure"
+ rm -f ${file}
+ fi
+ done
+ fi
+ extrasub_host="$extrasub_host
+/^@if $module\$/d
+/^@endif $module\$/d
+/^@if $module-$bootstrap_suffix\$/d
+/^@endif $module-$bootstrap_suffix\$/d"
+done
+extrasub_target=
+for module in ${target_configdirs} ; do
+ if test -z "${no_recursion}" \
+ && test -f ${target_subdir}/${module}/Makefile; then
+ echo 1>&2 "*** removing ${target_subdir}/${module}/Makefile to force reconfigure"
+ rm -f ${target_subdir}/${module}/Makefile
+ fi
+
+ # We only bootstrap target libraries listed in bootstrap_target_libs.
+ case $bootstrap_target_libs in
+ *,target-$module,*) target_bootstrap_suffix=$bootstrap_suffix ;;
+ *) target_bootstrap_suffix=no-bootstrap ;;
+ esac
+
+ extrasub_target="$extrasub_target
+/^@if target-$module\$/d
+/^@endif target-$module\$/d
+/^@if target-$module-$target_bootstrap_suffix\$/d
+/^@endif target-$module-$target_bootstrap_suffix\$/d"
+done
+
+# Do the final fixup along with target modules.
+extrasub_target="$extrasub_target
+/^@if /,/^@endif /d"
+
+# Create the serialization dependencies. This uses a temporary file.
+
+AC_ARG_ENABLE([serial-configure],
+[AS_HELP_STRING([[--enable-serial-[{host,target,build}-]configure]],
+ [force sequential configuration of
+ sub-packages for the host, target or build
+ machine, or all sub-packages])])
+
+case ${enable_serial_configure} in
+ yes)
+ enable_serial_build_configure=yes
+ enable_serial_host_configure=yes
+ enable_serial_target_configure=yes
+ ;;
+esac
+
+# These force 'configure's to be done one at a time, to avoid problems
+# with contention over a shared config.cache.
+rm -f serdep.tmp
+echo '# serdep.tmp' > serdep.tmp
+olditem=
+test "x${enable_serial_build_configure}" = xyes &&
+for item in ${build_configdirs} ; do
+ case ${olditem} in
+ "") ;;
+ *) echo "configure-build-${item}: configure-build-${olditem}" >> serdep.tmp ;;
+ esac
+ olditem=${item}
+done
+olditem=
+test "x${enable_serial_host_configure}" = xyes &&
+for item in ${configdirs} ; do
+ case ${olditem} in
+ "") ;;
+ *) echo "configure-${item}: configure-${olditem}" >> serdep.tmp ;;
+ esac
+ olditem=${item}
+done
+olditem=
+test "x${enable_serial_target_configure}" = xyes &&
+for item in ${target_configdirs} ; do
+ case ${olditem} in
+ "") ;;
+ *) echo "configure-target-${item}: configure-target-${olditem}" >> serdep.tmp ;;
+ esac
+ olditem=${item}
+done
+serialization_dependencies=serdep.tmp
+AC_SUBST_FILE(serialization_dependencies)
+
+# Base args. Strip norecursion, cache-file, srcdir, host, build,
+# target, nonopt, and variable assignments. These are the ones we
+# might not want to pass down to subconfigures. The exception being
+# --cache-file=/dev/null, which is used to turn off the use of cache
+# files altogether, and which should be passed on to subconfigures.
+# Also strip program-prefix, program-suffix, and program-transform-name,
+# so that we can pass down a consistent program-transform-name.
+baseargs=
+tbaseargs=
+keep_next=no
+skip_next=no
+eval "set -- $ac_configure_args"
+for ac_arg
+do
+ if test X"$skip_next" = X"yes"; then
+ skip_next=no
+ continue
+ fi
+ if test X"$keep_next" = X"yes"; then
+ case $ac_arg in
+ *\'*)
+ ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ baseargs="$baseargs '$ac_arg'"
+ tbaseargs="$tbaseargs '$ac_arg'"
+ keep_next=no
+ continue
+ fi
+
+ # Handle separated arguments. Based on the logic generated by
+ # autoconf 2.59.
+ 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)
+ separate_arg=no
+ ;;
+ -*)
+ separate_arg=yes
+ ;;
+ *)
+ separate_arg=no
+ ;;
+ esac
+
+ skip_targ=no
+ case $ac_arg in
+changequote(,)
+ --with-* | --without-*)
+ libopt=`echo "$ac_arg" | sed -e 's,^--[^-_]*[-_],,' -e 's,=.*$,,'`
+
+ case $libopt in
+ *[-_]include)
+ lib=`echo "$libopt" | sed 's,[-_]include$,,'`
+ ;;
+ *[-_]lib)
+ lib=`echo "$libopt" | sed 's,[-_]lib$,,'`
+ ;;
+ *)
+ lib=$libopt
+ ;;
+ esac
+changequote([,])
+
+ case $lib in
+ mpc | mpfr | gmp | ppl | cloog)
+ # If we're processing --with-$lib, --with-$lib-include or
+ # --with-$lib-lib, for one of the libs above, and target is
+ # different from host, don't pass the current argument to any
+ # target library's configure.
+ if test x$is_cross_compiler = xyes; then
+ skip_targ=yes
+ fi
+ ;;
+ esac
+ ;;
+ esac
+
+ case "$ac_arg" in
+ --cache-file=/dev/null | \
+ -cache-file=/dev/null )
+ # Handled here to avoid the test to skip args below.
+ baseargs="$baseargs '$ac_arg'"
+ tbaseargs="$tbaseargs '$ac_arg'"
+ # Assert: $separate_arg should always be no.
+ keep_next=$separate_arg
+ ;;
+ --no*)
+ continue
+ ;;
+ --c* | \
+ --sr* | \
+ --ho* | \
+ --bu* | \
+ --t* | \
+ --program-* | \
+ -cache_file* | \
+ -srcdir* | \
+ -host* | \
+ -build* | \
+ -target* | \
+ -program-prefix* | \
+ -program-suffix* | \
+ -program-transform-name* )
+ skip_next=$separate_arg
+ continue
+ ;;
+ -*)
+ # An option. Add it.
+ case $ac_arg in
+ *\'*)
+ ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ baseargs="$baseargs '$ac_arg'"
+ if test X"$skip_targ" = Xno; then
+ tbaseargs="$tbaseargs '$ac_arg'"
+ fi
+ keep_next=$separate_arg
+ ;;
+ *)
+ # Either a variable assignment, or a nonopt (triplet). Don't
+ # pass it down; let the Makefile handle this.
+ continue
+ ;;
+ esac
+done
+# Remove the initial space we just introduced and, as these will be
+# expanded by make, quote '$'.
+baseargs=`echo "x$baseargs" | sed -e 's/^x *//' -e 's,\\$,$$,g'`
+
+# Add in --program-transform-name, after --program-prefix and
+# --program-suffix have been applied to it. Autoconf has already
+# doubled dollar signs and backslashes in program_transform_name; we want
+# the backslashes un-doubled, and then the entire thing wrapped in single
+# quotes, because this will be expanded first by make and then by the shell.
+# Also, because we want to override the logic in subdir configure scripts to
+# choose program_transform_name, replace any s,x,x, with s,y,y,.
+sed -e "s,\\\\\\\\,\\\\,g; s,','\\\\'',g; s/s,x,x,/s,y,y,/" <<EOF_SED > conftestsed.out
+${program_transform_name}
+EOF_SED
+gcc_transform_name=`cat conftestsed.out`
+rm -f conftestsed.out
+baseargs="$baseargs --program-transform-name='${gcc_transform_name}'"
+tbaseargs="$tbaseargs --program-transform-name='${gcc_transform_name}'"
+if test "$silent" = yes; then
+ baseargs="$baseargs --silent"
+ tbaseargs="$tbaseargs --silent"
+fi
+baseargs="$baseargs --disable-option-checking"
+tbaseargs="$tbaseargs --disable-option-checking"
+
+# Record and document user additions to sub configure arguments.
+AC_ARG_VAR([build_configargs],
+ [additional configure arguments for build directories])
+AC_ARG_VAR([host_configargs],
+ [additional configure arguments for host directories])
+AC_ARG_VAR([target_configargs],
+ [additional configure arguments for target directories])
+
+# For the build-side libraries, we just need to pretend we're native,
+# and not use the same cache file. Multilibs are neither needed nor
+# desired.
+build_configargs="$build_configargs --cache-file=../config.cache ${baseargs}"
+
+# For host modules, accept cache file option, or specification as blank.
+case "${cache_file}" in
+"") # empty
+ cache_file_option="" ;;
+/* | [[A-Za-z]]:[[\\/]]* ) # absolute path
+ cache_file_option="--cache-file=${cache_file}" ;;
+*) # relative path
+ cache_file_option="--cache-file=../${cache_file}" ;;
+esac
+
+# Host dirs don't like to share a cache file either, horribly enough.
+# This seems to be due to autoconf 2.5x stupidity.
+host_configargs="$host_configargs --cache-file=./config.cache ${extra_host_args} ${baseargs}"
+
+target_configargs="$target_configargs ${tbaseargs}"
+
+# Passing a --with-cross-host argument lets the target libraries know
+# whether they are being built with a cross-compiler or being built
+# native. However, it would be better to use other mechanisms to make the
+# sorts of decisions they want to make on this basis. Please consider
+# this option to be deprecated. FIXME.
+if test x${is_cross_compiler} = xyes ; then
+ target_configargs="--with-cross-host=${host_noncanonical} ${target_configargs}"
+fi
+
+# Default to --enable-multilib.
+if test x${enable_multilib} = x ; then
+ target_configargs="--enable-multilib ${target_configargs}"
+fi
+
+# Pass --with-newlib if appropriate. Note that target_configdirs has
+# changed from the earlier setting of with_newlib.
+if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then
+ target_configargs="--with-newlib ${target_configargs}"
+fi
+
+# Different target subdirs use different values of certain variables
+# (notably CXX). Worse, multilibs use *lots* of different values.
+# Worse yet, autoconf 2.5x makes some of these 'precious', meaning that
+# it doesn't automatically accept command-line overrides of them.
+# This means it's not safe for target subdirs to share a cache file,
+# which is disgusting, but there you have it. Hopefully this can be
+# fixed in future. It's still worthwhile to use a cache file for each
+# directory. I think.
+
+# Pass the appropriate --build, --host, --target and --cache-file arguments.
+# We need to pass --target, as newer autoconf's requires consistency
+# for target_alias and gcc doesn't manage it consistently.
+target_configargs="--cache-file=./config.cache ${target_configargs}"
+
+FLAGS_FOR_TARGET=
+case " $target_configdirs " in
+ *" newlib "*)
+ case " $target_configargs " in
+ *" --with-newlib "*)
+ case "$target" in
+ *-cygwin*)
+ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup -L$$r/$(TARGET_SUBDIR)/winsup/cygwin -L$$r/$(TARGET_SUBDIR)/winsup/w32api/lib -isystem $$s/winsup/include -isystem $$s/winsup/cygwin/include -isystem $$s/winsup/w32api/include'
+ ;;
+ esac
+
+ # If we're not building GCC, don't discard standard headers.
+ if test -d ${srcdir}/gcc; then
+ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -nostdinc'
+
+ if test "${build}" != "${host}"; then
+ # On Canadian crosses, CC_FOR_TARGET will have already been set
+ # by `configure', so we won't have an opportunity to add -Bgcc/
+ # to it. This is right: we don't want to search that directory
+ # for binaries, but we want the header files in there, so add
+ # them explicitly.
+ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $$r/$(HOST_SUBDIR)/gcc/include -isystem $$r/$(HOST_SUBDIR)/gcc/include-fixed'
+
+ # Someone might think of using the pre-installed headers on
+ # Canadian crosses, in case the installed compiler is not fully
+ # compatible with the compiler being built. In this case, it
+ # would be better to flag an error than risking having
+ # incompatible object files being constructed. We can't
+ # guarantee that an error will be flagged, but let's hope the
+ # compiler will do it, when presented with incompatible header
+ # files.
+ fi
+ fi
+
+ case "${target}-${is_cross_compiler}" in
+ i[[3456789]]86-*-linux*-no)
+ # Here host == target, so we don't need to build gcc,
+ # so we don't want to discard standard headers.
+ FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'`
+ ;;
+ *)
+ # If we're building newlib, use its generic headers last, but search
+ # for any libc-related directories first (so make it the last -B
+ # switch).
+ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
+
+ # If we're building libgloss, find the startup file, simulator library
+ # and linker script.
+ case " $target_configdirs " in
+ *" libgloss "*)
+ # Look for startup file, simulator library and maybe linker script.
+ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/libgloss/'"$libgloss_dir"
+ # Look for libnosys.a in case the target needs it.
+ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/libgloss/libnosys'
+ # Most targets have the linker script in the source directory.
+ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$s/libgloss/'"$libgloss_dir"
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+esac
+
+case "$target" in
+ x86_64-*mingw* | *-w64-mingw*)
+ # MinGW-w64 does not use newlib, nor does it use winsup. It may,
+ # however, use a symlink named 'mingw' in ${prefix} .
+ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L${prefix}/${target}/lib -L${prefix}/mingw/lib -isystem ${prefix}/${target}/include -isystem ${prefix}/mingw/include'
+ ;;
+ *-mingw*)
+ # MinGW can't be handled as Cygwin above since it does not use newlib.
+ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup/mingw -L$$r/$(TARGET_SUBDIR)/winsup/w32api/lib -isystem $$s/winsup/mingw/include -isystem $$s/winsup/w32api/include'
+ ;;
+esac
+
+# Allow the user to override the flags for
+# our build compiler if desired.
+if test x"${build}" = x"${host}" ; then
+ CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}}
+ CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-${CXXFLAGS}}
+ LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}}
+fi
+
+# On Canadian crosses, we'll be searching the right directories for
+# the previously-installed cross compiler, so don't bother to add
+# flags for directories within the install tree of the compiler
+# being built; programs in there won't even run.
+if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then
+ # Search for pre-installed headers if nothing else fits.
+ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include'
+fi
+
+if test "x${use_gnu_ld}" = x &&
+ echo " ${configdirs} " | grep " ld " > /dev/null ; then
+ # Arrange for us to find uninstalled linker scripts.
+ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(HOST_SUBDIR)/ld'
+fi
+
+# Search for other target-specific linker scripts and such.
+case "${target}" in
+ mep*)
+ FLAGS_FOR_TARGET="$FLAGS_FOR_TARGET -mlibrary"
+ ;;
+esac
+
+# Makefile fragments.
+for frag in host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag;
+do
+ eval fragval=\$$frag
+ if test $fragval != /dev/null; then
+ eval $frag=${srcdir}/$fragval
+ fi
+done
+AC_SUBST_FILE(host_makefile_frag)
+AC_SUBST_FILE(target_makefile_frag)
+AC_SUBST_FILE(alphaieee_frag)
+AC_SUBST_FILE(ospace_frag)
+
+# Miscellanea: directories, flags, etc.
+AC_SUBST(RPATH_ENVVAR)
+AC_SUBST(GCC_SHLIB_SUBDIR)
+AC_SUBST(tooldir)
+AC_SUBST(build_tooldir)
+AC_SUBST(CONFIGURE_GDB_TK)
+AC_SUBST(GDB_TK)
+AC_SUBST(INSTALL_GDB_TK)
+
+# Build module lists & subconfigure args.
+AC_SUBST(build_configargs)
+AC_SUBST(build_configdirs)
+
+# Host module lists & subconfigure args.
+AC_SUBST(host_configargs)
+AC_SUBST(configdirs)
+AC_SUBST(target_configdirs)
+
+# Target module lists & subconfigure args.
+AC_SUBST(target_configargs)
+
+
+# Build tools.
+AC_SUBST(AR_FOR_BUILD)
+AC_SUBST(AS_FOR_BUILD)
+AC_SUBST(CC_FOR_BUILD)
+AC_SUBST(CFLAGS_FOR_BUILD)
+AC_SUBST(CXXFLAGS_FOR_BUILD)
+AC_SUBST(CXX_FOR_BUILD)
+AC_SUBST(DLLTOOL_FOR_BUILD)
+AC_SUBST(GCJ_FOR_BUILD)
+AC_SUBST(GFORTRAN_FOR_BUILD)
+AC_SUBST(GOC_FOR_BUILD)
+AC_SUBST(LDFLAGS_FOR_BUILD)
+AC_SUBST(LD_FOR_BUILD)
+AC_SUBST(NM_FOR_BUILD)
+AC_SUBST(RANLIB_FOR_BUILD)
+AC_SUBST(WINDMC_FOR_BUILD)
+AC_SUBST(WINDRES_FOR_BUILD)
+
+# Generate default definitions for YACC, M4, LEX and other programs that run
+# on the build machine. These are used if the Makefile can't locate these
+# programs in objdir.
+MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing
+
+AC_CHECK_PROGS([YACC], ['bison -y' byacc yacc], [$MISSING bison -y])
+case " $build_configdirs " in
+ *" bison "*) YACC='$$r/$(BUILD_SUBDIR)/bison/tests/bison -y' ;;
+esac
+
+AC_CHECK_PROGS([BISON], [bison], [$MISSING bison])
+case " $build_configdirs " in
+ *" bison "*) BISON='$$r/$(BUILD_SUBDIR)/bison/tests/bison' ;;
+esac
+
+AC_CHECK_PROGS([M4], [gm4 gnum4 m4], [$MISSING m4])
+case " $build_configdirs " in
+ *" m4 "*) M4='$$r/$(BUILD_SUBDIR)/m4/m4' ;;
+esac
+
+AC_CHECK_PROGS([LEX], [flex lex], [$MISSING flex])
+case " $build_configdirs " in
+ *" flex "*) LEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
+ *" lex "*) LEX='$$r/$(BUILD_SUBDIR)/lex/lex' ;;
+esac
+
+AC_CHECK_PROGS([FLEX], [flex], [$MISSING flex])
+case " $build_configdirs " in
+ *" flex "*) FLEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
+esac
+
+AC_CHECK_PROGS([MAKEINFO], makeinfo, [$MISSING makeinfo])
+case " $build_configdirs " in
+ *" texinfo "*) MAKEINFO='$$r/$(BUILD_SUBDIR)/texinfo/makeinfo/makeinfo' ;;
+ *)
+changequote(,)
+ # For an installed makeinfo, we require it to be from texinfo 4.7 or
+ # higher, else we use the "missing" dummy.
+ if ${MAKEINFO} --version \
+ | egrep 'texinfo[^0-9]*(4\.([7-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
+ :
+ else
+ MAKEINFO="$MISSING makeinfo"
+ fi
+ ;;
+changequote([,])
+esac
+
+# FIXME: expect and dejagnu may become build tools?
+
+AC_CHECK_PROGS(EXPECT, expect, expect)
+case " $configdirs " in
+ *" expect "*)
+ test $host = $build && EXPECT='$$r/$(HOST_SUBDIR)/expect/expect'
+ ;;
+esac
+
+AC_CHECK_PROGS(RUNTEST, runtest, runtest)
+case " $configdirs " in
+ *" dejagnu "*)
+ test $host = $build && RUNTEST='$$s/$(HOST_SUBDIR)/dejagnu/runtest'
+ ;;
+esac
+
+
+# Host tools.
+NCN_STRICT_CHECK_TOOLS(AR, ar)
+NCN_STRICT_CHECK_TOOLS(AS, as)
+NCN_STRICT_CHECK_TOOLS(DLLTOOL, dlltool)
+NCN_STRICT_CHECK_TOOLS(LD, ld)
+NCN_STRICT_CHECK_TOOLS(LIPO, lipo)
+NCN_STRICT_CHECK_TOOLS(NM, nm)
+NCN_STRICT_CHECK_TOOLS(RANLIB, ranlib, true)
+NCN_STRICT_CHECK_TOOLS(STRIP, strip, true)
+NCN_STRICT_CHECK_TOOLS(WINDRES, windres)
+NCN_STRICT_CHECK_TOOLS(WINDMC, windmc)
+NCN_STRICT_CHECK_TOOLS(OBJCOPY, objcopy)
+NCN_STRICT_CHECK_TOOLS(OBJDUMP, objdump)
+NCN_STRICT_CHECK_TOOLS(READELF, readelf)
+AC_SUBST(CC)
+AC_SUBST(CXX)
+AC_SUBST(CFLAGS)
+AC_SUBST(CXXFLAGS)
+
+# Target tools.
+AC_ARG_WITH([build-time-tools],
+ [AS_HELP_STRING([--with-build-time-tools=PATH],
+ [use given path to find target tools during the build])],
+ [case x"$withval" in
+ x/*) ;;
+ *)
+ with_build_time_tools=
+ AC_MSG_WARN([argument to --with-build-time-tools must be an absolute path])
+ ;;
+ esac],
+ [with_build_time_tools=])
+
+NCN_STRICT_CHECK_TARGET_TOOLS(CC_FOR_TARGET, cc gcc)
+NCN_STRICT_CHECK_TARGET_TOOLS(CXX_FOR_TARGET, c++ g++ cxx gxx)
+NCN_STRICT_CHECK_TARGET_TOOLS(GCC_FOR_TARGET, gcc, ${CC_FOR_TARGET})
+NCN_STRICT_CHECK_TARGET_TOOLS(GCJ_FOR_TARGET, gcj)
+NCN_STRICT_CHECK_TARGET_TOOLS(GFORTRAN_FOR_TARGET, gfortran)
+NCN_STRICT_CHECK_TARGET_TOOLS(GOC_FOR_TARGET, gccgo)
+
+ACX_CHECK_INSTALLED_TARGET_TOOL(AR_FOR_TARGET, ar)
+ACX_CHECK_INSTALLED_TARGET_TOOL(AS_FOR_TARGET, as)
+ACX_CHECK_INSTALLED_TARGET_TOOL(DLLTOOL_FOR_TARGET, dlltool)
+ACX_CHECK_INSTALLED_TARGET_TOOL(LD_FOR_TARGET, ld)
+ACX_CHECK_INSTALLED_TARGET_TOOL(LIPO_FOR_TARGET, lipo)
+ACX_CHECK_INSTALLED_TARGET_TOOL(NM_FOR_TARGET, nm)
+ACX_CHECK_INSTALLED_TARGET_TOOL(OBJDUMP_FOR_TARGET, objdump)
+ACX_CHECK_INSTALLED_TARGET_TOOL(RANLIB_FOR_TARGET, ranlib)
+ACX_CHECK_INSTALLED_TARGET_TOOL(READELF_FOR_TARGET, readelf)
+ACX_CHECK_INSTALLED_TARGET_TOOL(STRIP_FOR_TARGET, strip)
+ACX_CHECK_INSTALLED_TARGET_TOOL(WINDRES_FOR_TARGET, windres)
+ACX_CHECK_INSTALLED_TARGET_TOOL(WINDMC_FOR_TARGET, windmc)
+
+RAW_CXX_FOR_TARGET="$CXX_FOR_TARGET"
+
+GCC_TARGET_TOOL(ar, AR_FOR_TARGET, AR, [binutils/ar])
+GCC_TARGET_TOOL(as, AS_FOR_TARGET, AS, [gas/as-new])
+GCC_TARGET_TOOL(cc, CC_FOR_TARGET, CC, [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
+dnl see comments for CXX_FOR_TARGET_FLAG_TO_PASS
+GCC_TARGET_TOOL(c++, CXX_FOR_TARGET, CXX,
+ [gcc/g++ -B$$r/$(HOST_SUBDIR)/gcc/ -nostdinc++ `if test -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags; then $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/scripts/testsuite_flags --build-includes; else echo -funconfigured-libstdc++-v3 ; fi` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs],
+ c++)
+GCC_TARGET_TOOL(c++ for libstdc++, RAW_CXX_FOR_TARGET, CXX,
+ [gcc/xgcc -shared-libgcc -B$$r/$(HOST_SUBDIR)/gcc -nostdinc++ -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs],
+ c++)
+GCC_TARGET_TOOL(dlltool, DLLTOOL_FOR_TARGET, DLLTOOL, [binutils/dlltool])
+GCC_TARGET_TOOL(gcc, GCC_FOR_TARGET, , [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
+GCC_TARGET_TOOL(gcj, GCJ_FOR_TARGET, GCJ,
+ [gcc/gcj -B$$r/$(HOST_SUBDIR)/gcc/], java)
+GCC_TARGET_TOOL(gfortran, GFORTRAN_FOR_TARGET, GFORTRAN,
+ [gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/], fortran)
+GCC_TARGET_TOOL(gccgo, GOC_FOR_TARGET, GOC,
+ [gcc/gccgo -B$$r/$(HOST_SUBDIR)/gcc/], go)
+GCC_TARGET_TOOL(ld, LD_FOR_TARGET, LD, [ld/ld-new])
+GCC_TARGET_TOOL(lipo, LIPO_FOR_TARGET, LIPO)
+GCC_TARGET_TOOL(nm, NM_FOR_TARGET, NM, [binutils/nm-new])
+GCC_TARGET_TOOL(objdump, OBJDUMP_FOR_TARGET, OBJDUMP, [binutils/objdump])
+GCC_TARGET_TOOL(ranlib, RANLIB_FOR_TARGET, RANLIB, [binutils/ranlib])
+GCC_TARGET_TOOL(readelf, READELF_FOR_TARGET, READELF, [binutils/readelf])
+GCC_TARGET_TOOL(strip, STRIP_FOR_TARGET, STRIP, [binutils/strip-new])
+GCC_TARGET_TOOL(windres, WINDRES_FOR_TARGET, WINDRES, [binutils/windres])
+GCC_TARGET_TOOL(windmc, WINDMC_FOR_TARGET, WINDMC, [binutils/windmc])
+
+AC_SUBST(FLAGS_FOR_TARGET)
+AC_SUBST(RAW_CXX_FOR_TARGET)
+
+# Certain tools may need extra flags.
+AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target}
+RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
+NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
+
+# When building target libraries, except in a Canadian cross, we use
+# the same toolchain as the compiler we just built.
+COMPILER_AS_FOR_TARGET='$(AS_FOR_TARGET)'
+COMPILER_LD_FOR_TARGET='$(LD_FOR_TARGET)'
+COMPILER_NM_FOR_TARGET='$(NM_FOR_TARGET)'
+if test $host = $build; then
+ case " $configdirs " in
+ *" gcc "*)
+ COMPILER_AS_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/as'
+ COMPILER_LD_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/collect-ld'
+ COMPILER_NM_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/nm'${extra_nmflags_for_target}
+ ;;
+ esac
+fi
+
+AC_SUBST(COMPILER_AS_FOR_TARGET)
+AC_SUBST(COMPILER_LD_FOR_TARGET)
+AC_SUBST(COMPILER_NM_FOR_TARGET)
+
+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+AC_ARG_ENABLE(maintainer-mode,
+[AS_HELP_STRING([--enable-maintainer-mode],
+ [enable make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer])],
+ USE_MAINTAINER_MODE=$enableval,
+ USE_MAINTAINER_MODE=no)
+AC_MSG_RESULT($USE_MAINTAINER_MODE)
+AC_SUBST(MAINTAINER_MODE_TRUE)
+AC_SUBST(MAINTAINER_MODE_FALSE)
+if test "$USE_MAINTAINER_MODE" = yes; then
+ MAINTAINER_MODE_TRUE=
+ MAINTAINER_MODE_FALSE='#'
+else
+ MAINTAINER_MODE_TRUE='#'
+ MAINTAINER_MODE_FALSE=
+fi
+MAINT=$MAINTAINER_MODE_TRUE
+AC_SUBST(MAINT)dnl
+
+# ---------------------
+# GCC bootstrap support
+# ---------------------
+
+# Stage specific cflags for build.
+stage1_cflags="-g"
+case $build in
+ vax-*-*)
+ case ${GCC} in
+ yes) stage1_cflags="-g -Wa,-J" ;;
+ *) stage1_cflags="-g -J" ;;
+ esac ;;
+esac
+
+# This is aimed to mimic bootstrap with a non-GCC compiler to catch problems.
+if test "$GCC" = yes -a "$ENABLE_BUILD_WITH_CXX" != yes; then
+ saved_CFLAGS="$CFLAGS"
+
+ # Pass -fkeep-inline-functions for stage 1 if the GCC version supports it.
+ CFLAGS="$CFLAGS -fkeep-inline-functions"
+ AC_MSG_CHECKING([whether -fkeep-inline-functions is supported])
+ AC_TRY_COMPILE([
+#if (__GNUC__ < 3) \
+ || (__GNUC__ == 3 && (__GNUC_MINOR__ < 3 \
+ || (__GNUC_MINOR__ == 3 && __GNUC_PATCHLEVEL__ < 1)))
+#error http://gcc.gnu.org/PR29382
+#endif
+ ],,
+ [AC_MSG_RESULT([yes]); stage1_cflags="$stage1_cflags -fkeep-inline-functions"],
+ [AC_MSG_RESULT([no])])
+
+ CFLAGS="$saved_CFLAGS"
+fi
+
+AC_SUBST(stage1_cflags)
+
+# Enable --enable-checking in stage1 of the compiler.
+AC_ARG_ENABLE(stage1-checking,
+[AS_HELP_STRING([[--enable-stage1-checking[=all]]],
+ [choose additional checking for stage1 of the compiler])],
+[stage1_checking=--enable-checking=${enable_stage1_checking}],
+[if test "x$enable_checking" = xno || test "x$enable_checking" = x; then
+ stage1_checking=--enable-checking=yes,types
+else
+ stage1_checking=--enable-checking=$enable_checking,types
+fi])
+AC_SUBST(stage1_checking)
+
+# Enable -Werror in bootstrap stage2 and later.
+AC_ARG_ENABLE(werror,
+[AS_HELP_STRING([--enable-werror],
+ [enable -Werror in bootstrap stage2 and later])], [],
+[if test -d ${srcdir}/gcc && test x"`cat $srcdir/gcc/DEV-PHASE`" = xexperimental; then
+ enable_werror=yes
+else
+ enable_werror=no
+fi])
+case ${enable_werror} in
+ yes) stage2_werror_flag="--enable-werror-always" ;;
+ *) stage2_werror_flag="" ;;
+esac
+AC_SUBST(stage2_werror_flag)
+
+# If using ENABLE_BUILD_POSTSTAGE1_WITH_CXX, pass
+# --enable-build-with-cxx after stage1.
+if test "$ENABLE_BUILD_POSTSTAGE1_WITH_CXX" = "yes"; then
+ POSTSTAGE1_CONFIGURE_FLAGS=--enable-build-with-cxx
+else
+ POSTSTAGE1_CONFIGURE_FLAGS=
+fi
+AC_SUBST(POSTSTAGE1_CONFIGURE_FLAGS)
+
+# Specify what files to not compare during bootstrap.
+
+compare_exclusions="gcc/cc*-checksum\$(objext) | gcc/ada/*tools/*"
+case "$target" in
+ hppa*64*-*-hpux*) ;;
+ hppa*-*-hpux*) compare_exclusions="gcc/cc*-checksum\$(objext) | */libgcc/lib2funcs* | gcc/ada/*tools/*" ;;
+esac
+case " $configdirs " in
+*" ppl "*) compare_exclusions="$compare_exclusions | ppl/src/ppl-config.o" ;;
+esac
+AC_SUBST(compare_exclusions)
+
+AC_CONFIG_FILES([Makefile],
+ [sed "$extrasub_build" Makefile |
+ sed "$extrasub_host" |
+ sed "$extrasub_target" > mf$$
+ mv -f mf$$ Makefile],
+ [extrasub_build="$extrasub_build"
+ extrasub_host="$extrasub_host"
+ extrasub_target="$extrasub_target"])
+AC_OUTPUT
diff --git a/include/ChangeLog b/include/ChangeLog
index 4ad0de858..7a747a7cc 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,66 +1,3 @@
-2012-08-02 Sean Keys <skeys@ipdatasys.com>
-
- * elf/m68hc11.h: #define E_M68HC11_NO_BANK_WARNING
- 0x000000200
-
-2012-07-24 Stephan McCamant <smcc@cs.berkeley.edu>
- Dr David Alan Gilbert <dave@treblig.org>
-
- PR binutils/13135
- * dis-asm.h (fprintf_ftype): Add ATTRIBUTE_FPTR_PRINTF_2.
-
-2012-07-13 Doug Evans <dje@google.com>
-
- * filenames.h: #include "hashtab.h".
- (filename_hash, filename_eq): Declare.
-
-2012-07-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
-
- * elf/s390.h (START_RELOC_NUMBERS): Define R_390_IRELATIVE reloc.
-
-2012-07-05 Sean Keys <skeys@ipdatasys.com>
-
- * opcode/xgate.h: Changed the format string for mode
- XGATE_OP_DYA_MON.
-
-2012-06-18 Doug Evans <dje@google.com>
-
- * dwarf2.def (DW_OP): Add DW_OP_GNU_const_index.
-
-2012-06-12 Rafael Ávila de Espíndola <respindola@mozilla.com>
-
- * plugin-api.h (ld_plugin_output_file_type): Add LDPO_PIE.
-
-2012-06-08 Jakub Jelinek <jakub@redhat.com>
-
- * dwarf2.def (DW_FORM_GNU_ref_alt, DW_FORM_GNU_strp_alt): New
- forms.
- * dwarf2.h (enum dwarf_macro_record_type): Add
- DW_MACRO_GNU_define_indirect_alt, DW_MACRO_GNU_undef_indirect_alt
- and DW_MACRO_GNU_transparent_include_alt.
-
-2012-05-23 Doug Evans <dje@google.com>
-
- * leb128.h: #include stdint.h, inttypes.h.
- (read_uleb128_to_uint64): Renamed from read_uleb128_to_ull.
- Change to take a uint64_t * argument instead of unsigned long long.
- (read_sleb128_to_uint64): Renamed from read_sleb128_to_ll.
- Change to take an int64_t * argument instead of long long.
-
-2012-05-22 Doug Evans <dje@google.com>
-
- * leb128.h: New file.
-
-2012-05-19 Gary Funck <gary@intrepid.com>
-
- * dwarf2.def: Update comment re: UPC extensions to reference
- DWARF4 specification.
-
-2012-05-15 James Murray <jsm@jsm-net.demon.co.uk>
-
- * dis-asm.h (print_insn_m9s12x): Prototype.
- (print_insn_m9s12xg): Prototype.
-
2012-05-03 Sean Keys <skeys@ipdatasys.com>
* dis-asm.h (print_insn_xgate): Define.
diff --git a/include/dis-asm.h b/include/dis-asm.h
index 661e7cf58..203b11366 100644
--- a/include/dis-asm.h
+++ b/include/dis-asm.h
@@ -35,7 +35,7 @@ extern "C" {
#include <stdio.h>
#include "bfd.h"
- typedef int (*fprintf_ftype) (void *, const char*, ...) ATTRIBUTE_FPTR_PRINTF_2;
+ typedef int (*fprintf_ftype) (void *, const char*, ...) /*ATTRIBUTE_FPTR_PRINTF_2*/;
enum dis_insn_type
{
@@ -260,8 +260,6 @@ extern int print_insn_m32c (bfd_vma, disassemble_info *);
extern int print_insn_m32r (bfd_vma, disassemble_info *);
extern int print_insn_m68hc11 (bfd_vma, disassemble_info *);
extern int print_insn_m68hc12 (bfd_vma, disassemble_info *);
-extern int print_insn_m9s12x (bfd_vma, disassemble_info *);
-extern int print_insn_m9s12xg (bfd_vma, disassemble_info *);
extern int print_insn_m68k (bfd_vma, disassemble_info *);
extern int print_insn_m88k (bfd_vma, disassemble_info *);
extern int print_insn_mcore (bfd_vma, disassemble_info *);
diff --git a/include/dwarf2.def b/include/dwarf2.def
index 3c3dfccf3..e36ae919b 100644
--- a/include/dwarf2.def
+++ b/include/dwarf2.def
@@ -167,7 +167,7 @@ DW_TAG (DW_TAG_GNU_formal_parameter_pack, 0x4108)
are properly part of DWARF 5. */
DW_TAG (DW_TAG_GNU_call_site, 0x4109)
DW_TAG (DW_TAG_GNU_call_site_parameter, 0x410a)
-/* Extensions for UPC. See: http://dwarfstd.org/doc/DWARF4.pdf. */
+/* Extensions for UPC. See: http://upc.gwu.edu/~upc. */
DW_TAG (DW_TAG_upc_shared_type, 0x8765)
DW_TAG (DW_TAG_upc_strict_type, 0x8766)
DW_TAG (DW_TAG_upc_relaxed_type, 0x8767)
@@ -205,10 +205,6 @@ DW_FORM (DW_FORM_ref_sig8, 0x20)
/* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */
DW_FORM (DW_FORM_GNU_addr_index, 0x1f01)
DW_FORM (DW_FORM_GNU_str_index, 0x1f02)
-/* Extensions for DWZ multifile.
- See http://www.dwarfstd.org/ShowIssue.php?issue=120604.1&type=open . */
-DW_FORM (DW_FORM_GNU_ref_alt, 0x1f20)
-DW_FORM (DW_FORM_GNU_strp_alt, 0x1f21)
DW_END_FORM
DW_FIRST_AT (DW_AT_sibling, 0x01)
@@ -588,7 +584,6 @@ DW_OP (DW_OP_GNU_reinterpret, 0xf9)
DW_OP (DW_OP_GNU_parameter_ref, 0xfa)
/* Extension for Fission. See http://gcc.gnu.org/wiki/DebugFission. */
DW_OP (DW_OP_GNU_addr_index, 0xfb)
-DW_OP (DW_OP_GNU_const_index, 0xfc)
/* HP extensions. */
DW_OP_DUP (DW_OP_HP_unknown, 0xe0) /* Ouch, the same as GNU_push_tls_address. */
DW_OP (DW_OP_HP_is_value, 0xe1)
diff --git a/include/dwarf2.h b/include/dwarf2.h
index 2c1aeb6b9..0be7a99c8 100644
--- a/include/dwarf2.h
+++ b/include/dwarf2.h
@@ -333,11 +333,6 @@ enum dwarf_macro_record_type
DW_MACRO_GNU_define_indirect = 5,
DW_MACRO_GNU_undef_indirect = 6,
DW_MACRO_GNU_transparent_include = 7,
- /* Extensions for DWZ multifile.
- See http://www.dwarfstd.org/ShowIssue.php?issue=120604.1&type=open . */
- DW_MACRO_GNU_define_indirect_alt = 8,
- DW_MACRO_GNU_undef_indirect_alt = 9,
- DW_MACRO_GNU_transparent_include_alt = 10,
DW_MACRO_GNU_lo_user = 0xe0,
DW_MACRO_GNU_hi_user = 0xff
};
diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog
index ef84aa36a..ab9b2deae 100644
--- a/include/elf/ChangeLog
+++ b/include/elf/ChangeLog
@@ -1,55 +1,3 @@
-2012-06-28 Iain Sandoe <iain@codesourcery.com>
-
- * common.h (AT_L1I_CACHESHAPE, AT_L1D_CACHESHAPE,
- AT_L2_CACHESHAPE, AT_L3_CACHESHAPE): New defines.
-
-2012-05-16 Georg-Johann Lay <avr@gjlay.de>
-
- PR target/13503
- * avr.h (RELOC_NUMBERS): Rename R_AVR_8_HHI8 to R_AVR_8_HLO8.
-
-2012-05-15 James Murray <jsm@jsm-net.demon.co.uk>
-
- * m68hc11.h (R_M68HC12_16B, R_M68HC12_PCREL_9, R_M68HC12_PCREL_10)
- R_M68HC12_HI8XG, R_M68HC12_LO8XG): New relocations.
- (E_M68HC11_XGATE_RAMOFFSET): Define.
-
-2012-05-14 James Lemke <jwlemke@codesourcery.com>
- * ppc.h (SEC_PPC_VLE): Remove.
-
-2012-05-14 Catherine Moore <clm@codesourcery.com>
- James Lemke <jwlemke@codesourcery.com>
-
- * ppc.h (R_PPC_VLE_REL8): New reloction.
- (R_PPC_VLE_REL15): Likewise.
- (R_PPC_VLE_REL24): Likewise.
- (R_PPC_VLE_LO16A): Likewise.
- (R_PPC_VLE_LO16D): Likewise.
- (R_PPC_VLE_HI16A): Likewise.
- (R_PPC_VLE_HI16D): Likewise.
- (R_PPC_VLE_HA16A): Likewise.
- (R_PPC_VLE_HA16D): Likewise.
- (R_PPC_VLE_SDA21): Likewise.
- (R_PPC_VLE_SDA21_LO): Likewise.
- (R_PPC_VLE_SDAREL_LO16A): Likewise.
- (R_PPC_VLE_SDAREL_LO16D): Likewise.
- (R_PPC_VLE_SDAREL_HI16A): Likewise.
- (R_PPC_VLE_SDAREL_HI16D): Likewise.
- (R_PPC_VLE_SDAREL_HA16A): Likewise.
- (R_PPC_VLE_SDAREL_HA16D): Likewise.
- (SEC_PPC_VLE): Remove.
- (PF_PPC_VLE): New program header flag.
- (SHF_PPC_VLE): New section header flag.
- (vle_opcodes, vle_num_opcodes): New.
- (VLE_OP): New macro.
- (VLE_OP_TO_SEG): New macro.
-
-2012-05-11 Georg-Johann Lay <avr@gjlay.de
-
- PR target/13503
- * elf/avr.h (RELOC_NUMBERS): Add values for R_AVR_8_LO8,
- R_AVR_8_HI8, R_AVR_8_HHI8.
-
2012-05-03 Sean Keys <skeys@ipdatasys.com>
* xgate.h: Mininal file to support XGATE relocations.
diff --git a/include/elf/avr.h b/include/elf/avr.h
index b45d902d2..11d43f966 100644
--- a/include/elf/avr.h
+++ b/include/elf/avr.h
@@ -1,6 +1,5 @@
/* AVR ELF support for BFD.
- Copyright 1999, 2000, 2004, 2006, 2010, 2012
- Free Software Foundation, Inc.
+ Copyright 1999, 2000, 2004, 2006, 2010 Free Software Foundation, Inc.
Contributed by Denis Chertykov <denisc@overta.ru>
This file is part of BFD, the Binary File Descriptor library.
@@ -31,16 +30,16 @@
as reference for the relocations so that linker relaxation is possible. */
#define EF_AVR_LINKRELAX_PREPARED 0x80
-#define E_AVR_MACH_AVR1 1
-#define E_AVR_MACH_AVR2 2
-#define E_AVR_MACH_AVR25 25
-#define E_AVR_MACH_AVR3 3
-#define E_AVR_MACH_AVR31 31
-#define E_AVR_MACH_AVR35 35
-#define E_AVR_MACH_AVR4 4
-#define E_AVR_MACH_AVR5 5
-#define E_AVR_MACH_AVR51 51
-#define E_AVR_MACH_AVR6 6
+#define E_AVR_MACH_AVR1 1
+#define E_AVR_MACH_AVR2 2
+#define E_AVR_MACH_AVR25 25
+#define E_AVR_MACH_AVR3 3
+#define E_AVR_MACH_AVR31 31
+#define E_AVR_MACH_AVR35 35
+#define E_AVR_MACH_AVR4 4
+#define E_AVR_MACH_AVR5 5
+#define E_AVR_MACH_AVR51 51
+#define E_AVR_MACH_AVR6 6
#define E_AVR_MACH_XMEGA1 101
#define E_AVR_MACH_XMEGA2 102
#define E_AVR_MACH_XMEGA3 103
@@ -78,9 +77,6 @@ START_RELOC_NUMBERS (elf_avr_reloc_type)
RELOC_NUMBER (R_AVR_LO8_LDI_GS, 24)
RELOC_NUMBER (R_AVR_HI8_LDI_GS, 25)
RELOC_NUMBER (R_AVR_8, 26)
- RELOC_NUMBER (R_AVR_8_LO8, 27)
- RELOC_NUMBER (R_AVR_8_HI8, 28)
- RELOC_NUMBER (R_AVR_8_HLO8, 29)
END_RELOC_NUMBERS (R_AVR_max)
#endif /* _ELF_AVR_H */
diff --git a/include/elf/common.h b/include/elf/common.h
index 58e489afe..5cddc0bef 100644
--- a/include/elf/common.h
+++ b/include/elf/common.h
@@ -1,6 +1,6 @@
/* ELF support for BFD.
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
- 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
+ 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
Free Software Foundation, Inc.
Written by Fred Fish @ Cygnus Support, from information published
@@ -935,18 +935,6 @@
#define AT_SYSINFO 32
#define AT_SYSINFO_EHDR 33 /* Pointer to ELF header of system-supplied DSO. */
-/* More complete cache descriptions than AT_[DIU]CACHEBSIZE. If the
- value is -1, then the cache doesn't exist. Otherwise:
-
- bit 0-3: Cache set-associativity; 0 means fully associative.
- bit 4-7: Log2 of cacheline size.
- bit 8-31: Size of the entire cache >> 8. */
-
-#define AT_L1I_CACHESHAPE 34
-#define AT_L1D_CACHESHAPE 35
-#define AT_L2_CACHESHAPE 36
-#define AT_L3_CACHESHAPE 37
-
#define AT_SUN_UID 2000 /* Effective user ID. */
#define AT_SUN_RUID 2001 /* Real user ID. */
#define AT_SUN_GID 2002 /* Effective group ID. */
diff --git a/include/elf/m68hc11.h b/include/elf/m68hc11.h
index 58d882088..ca325d981 100644
--- a/include/elf/m68hc11.h
+++ b/include/elf/m68hc11.h
@@ -1,5 +1,5 @@
/* m68hc11 & m68hc12 ELF support for BFD.
- Copyright 1999, 2000, 2001, 2002, 2010, 2012 Free Software Foundation, Inc.
+ Copyright 1999, 2000, 2001, 2002, 2010 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -42,12 +42,6 @@ START_RELOC_NUMBERS (elf_m68hc11_reloc_type)
RELOC_NUMBER (R_M68HC11_LO16, 12)
RELOC_NUMBER (R_M68HC11_PAGE, 13)
- RELOC_NUMBER (R_M68HC12_16B, 15)
- RELOC_NUMBER (R_M68HC12_PCREL_9, 16)
- RELOC_NUMBER (R_M68HC12_PCREL_10, 17)
- RELOC_NUMBER (R_M68HC12_HI8XG, 18)
- RELOC_NUMBER (R_M68HC12_LO8XG, 19)
-
/* GNU extension for linker relaxation.
Mark beginning of a jump instruction (any form). */
RELOC_NUMBER (R_M68HC11_RL_JUMP, 20)
@@ -70,12 +64,6 @@ END_RELOC_NUMBERS (R_M68HC11_max)
/* Uses 68HC12 memory banks. */
#define E_M68HC12_BANKS 0x000000004
-/* XGATE ram offsetting. */
-#define E_M68HC11_XGATE_RAMOFFSET 0x000000100
-
-/* Suppress warnings */
-#define E_M68HC11_NO_BANK_WARNING 0x000000200
-
#define EF_M68HC11_MACH_MASK 0xF0
#define EF_M68HC11_GENERIC 0x00 /* Generic 68HC12/backward compatibility. */
#define EF_M68HC12_MACH 0x10 /* 68HC12 microcontroller. */
@@ -98,10 +86,10 @@ END_RELOC_NUMBERS (R_M68HC11_max)
/* Special values for the st_other field in the symbol table. These
are used for 68HC12 to identify far functions (must be called with
'call' and returns with 'rtc'). */
-#define STO_M68HC12_FAR 0x80
+#define STO_M68HC12_FAR 0x80
/* Identify interrupt handlers. This is used by the debugger to
correctly compute the stack frame. */
-#define STO_M68HC12_INTERRUPT 0x40
+#define STO_M68HC12_INTERRUPT 0x40
#endif
diff --git a/include/elf/ppc.h b/include/elf/ppc.h
index f80a1e8a3..8e27855be 100644
--- a/include/elf/ppc.h
+++ b/include/elf/ppc.h
@@ -131,25 +131,6 @@ START_RELOC_NUMBERS (elf_ppc_reloc_type)
RELOC_NUMBER (R_PPC_EMB_BIT_FLD, 115)
RELOC_NUMBER (R_PPC_EMB_RELSDA, 116)
-/* PowerPC VLE relocations. */
- RELOC_NUMBER (R_PPC_VLE_REL8, 216)
- RELOC_NUMBER (R_PPC_VLE_REL15, 217)
- RELOC_NUMBER (R_PPC_VLE_REL24, 218)
- RELOC_NUMBER (R_PPC_VLE_LO16A, 219)
- RELOC_NUMBER (R_PPC_VLE_LO16D, 220)
- RELOC_NUMBER (R_PPC_VLE_HI16A, 221)
- RELOC_NUMBER (R_PPC_VLE_HI16D, 222)
- RELOC_NUMBER (R_PPC_VLE_HA16A, 223)
- RELOC_NUMBER (R_PPC_VLE_HA16D, 224)
- RELOC_NUMBER (R_PPC_VLE_SDA21, 225)
- RELOC_NUMBER (R_PPC_VLE_SDA21_LO, 226)
- RELOC_NUMBER (R_PPC_VLE_SDAREL_LO16A, 227)
- RELOC_NUMBER (R_PPC_VLE_SDAREL_LO16D, 228)
- RELOC_NUMBER (R_PPC_VLE_SDAREL_HI16A, 229)
- RELOC_NUMBER (R_PPC_VLE_SDAREL_HI16D, 230)
- RELOC_NUMBER (R_PPC_VLE_SDAREL_HA16A, 231)
- RELOC_NUMBER (R_PPC_VLE_SDAREL_HA16D, 232)
-
/* Support STT_GNU_IFUNC plt calls. */
RELOC_NUMBER (R_PPC_IRELATIVE, 248)
@@ -185,11 +166,9 @@ END_RELOC_NUMBERS (R_PPC_max)
#define EF_PPC_RELOCATABLE 0x00010000 /* PowerPC -mrelocatable flag. */
#define EF_PPC_RELOCATABLE_LIB 0x00008000 /* PowerPC -mrelocatable-lib flag. */
-/* Processor specific program headers, p_flags field. */
-#define PF_PPC_VLE 0x10000000 /* PowerPC VLE. */
-
-/* Processor specific section headers, sh_flags field. */
-#define SHF_PPC_VLE 0x10000000 /* PowerPC VLE text section. */
+/* This bit is reserved by BFD for processor specific stuff. Name
+ it properly so that we can easily stay consistent elsewhere. */
+#define SEC_PPC_VLE SEC_TIC54X_BLOCK
/* Processor specific section headers, sh_type field. */
diff --git a/include/elf/s390.h b/include/elf/s390.h
index a5b4217bc..807b7e8e0 100644
--- a/include/elf/s390.h
+++ b/include/elf/s390.h
@@ -119,7 +119,6 @@ START_RELOC_NUMBERS (elf_s390_reloc_type)
RELOC_NUMBER (R_390_GOTPLT20, 59) /* 20 bit offset to jump slot. */
RELOC_NUMBER (R_390_TLS_GOTIE20, 60)/* 20 bit GOT offset for statis TLS
block offset. */
- RELOC_NUMBER (R_390_IRELATIVE, 61) /* IFUNC relocation. */
/* These are GNU extensions to enable C++ vtable garbage collection. */
RELOC_NUMBER (R_390_GNU_VTINHERIT, 250)
RELOC_NUMBER (R_390_GNU_VTENTRY, 251)
diff --git a/include/filenames.h b/include/filenames.h
index e799a51b6..75ec3302d 100644
--- a/include/filenames.h
+++ b/include/filenames.h
@@ -26,8 +26,6 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef FILENAMES_H
#define FILENAMES_H
-#include "hashtab.h" /* for hashval_t */
-
#ifdef __cplusplus
extern "C" {
#endif
@@ -86,10 +84,6 @@ extern int filename_cmp (const char *s1, const char *s2);
extern int filename_ncmp (const char *s1, const char *s2,
size_t n);
-extern hashval_t filename_hash (const void *s);
-
-extern int filename_eq (const void *s1, const void *s2);
-
#ifdef __cplusplus
}
#endif
diff --git a/include/gdb/ChangeLog b/include/gdb/ChangeLog
index 833f913ff..cb8df1cba 100644
--- a/include/gdb/ChangeLog
+++ b/include/gdb/ChangeLog
@@ -1,19 +1,3 @@
-2012-06-23 Doug Evans <dje@google.com>
-
- * gdb-index.h: New file.
-
-2012-05-24 Pedro Alves <palves@redhat.com>
-
- PR gdb/7205
-
- Replace TARGET_SIGNAL_ with GDB_SIGNAL_ throughout.
-
-2012-05-24 Pedro Alves <palves@redhat.com>
-
- PR gdb/7205
-
- Replace target_signal with gdb_signal throughout.
-
2012-04-12 Mike Frysinger <vapier@gentoo.org>
* callback.h (CB_SYS_argc, CB_SYS_argnlen, CB_SYS_argn): Define.
diff --git a/include/gdb/callback.h b/include/gdb/callback.h
index d8d14727d..5c0d2db74 100644
--- a/include/gdb/callback.h
+++ b/include/gdb/callback.h
@@ -314,7 +314,7 @@ int cb_target_to_host_open (host_callback *, int);
int cb_target_to_host_signal (host_callback *, int);
/* Translate host signal number to target. */
-int cb_host_to_gdb_signal (host_callback *, int);
+int cb_host_to_target_signal (host_callback *, int);
/* Translate host stat struct to target.
If stat struct ptr is NULL, just compute target stat struct size.
diff --git a/include/gdb/gdb-index.h b/include/gdb/gdb-index.h
deleted file mode 100644
index 92c3398b9..000000000
--- a/include/gdb/gdb-index.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Public attributes of the .gdb_index section.
- Copyright 2012 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
-
-/* This file contains values for understanding the .gdb_index section
- needed by more than just GDB, e.g. readelf. */
-
-#ifndef GDB_INDEX_H
-#define GDB_INDEX_H
-
-/* Each symbol in .gdb_index refers to a set of CUs that defines the symbol.
- Each CU is represented by a 32 bit number that is the index of the CU in
- the CU table, plus some attributes of the use of the symbol in that CU.
-
- The values are defined such that if all the bits are zero, then no
- special meaning is assigned to any of them. This is done to preserve
- compatibility with older indices. The way this is done is to specify
- that if the GDB_INDEX_SYMBOL_KIND value is zero then all other attribute
- bits must be zero.
-
- 0-23 CU index
- 24-27 reserved
- 28-30 symbol kind
- 31 0 == global, 1 == static
-
- Bits 24-27 are reserved because it's easier to relax restrictions than
- it is to impose them after the fact. At present 24 bits to represent
- the CU index is plenty. If we need more bits for the CU index or for
- attributes then we have them. */
-
-/* Whether the symbol is in GLOBAL_BLOCK (== 0) or STATIC_BLOCK (== 1). */
-#define GDB_INDEX_SYMBOL_STATIC_SHIFT 31
-#define GDB_INDEX_SYMBOL_STATIC_MASK 1
-#define GDB_INDEX_SYMBOL_STATIC_VALUE(cu_index) \
- (((cu_index) >> GDB_INDEX_SYMBOL_STATIC_SHIFT) & GDB_INDEX_SYMBOL_STATIC_MASK)
-#define GDB_INDEX_SYMBOL_STATIC_SET_VALUE(cu_index, value) \
- do { \
- (cu_index) |= (((value) & GDB_INDEX_SYMBOL_STATIC_MASK) \
- << GDB_INDEX_SYMBOL_STATIC_SHIFT); \
- } while (0)
-
-/* The kind of the symbol.
- We don't use GDB's internal values as these numbers are published
- so that other tools can build and read .gdb_index. */
-
-typedef enum {
- /* Special value to indicate no attributes are present. */
- GDB_INDEX_SYMBOL_KIND_NONE = 0,
- GDB_INDEX_SYMBOL_KIND_TYPE = 1,
- GDB_INDEX_SYMBOL_KIND_VARIABLE = 2,
- GDB_INDEX_SYMBOL_KIND_FUNCTION = 3,
- GDB_INDEX_SYMBOL_KIND_OTHER = 4,
- /* We currently allocate 3 bits to record the symbol kind.
- Give the unused bits a value so gdb will print them sensibly. */
- GDB_INDEX_SYMBOL_KIND_UNUSED5 = 5,
- GDB_INDEX_SYMBOL_KIND_UNUSED6 = 6,
- GDB_INDEX_SYMBOL_KIND_UNUSED7 = 7,
-} gdb_index_symbol_kind;
-
-#define GDB_INDEX_SYMBOL_KIND_SHIFT 28
-#define GDB_INDEX_SYMBOL_KIND_MASK 7
-#define GDB_INDEX_SYMBOL_KIND_VALUE(cu_index) \
- ((gdb_index_symbol_kind) (((cu_index) >> GDB_INDEX_SYMBOL_KIND_SHIFT) \
- & GDB_INDEX_SYMBOL_KIND_MASK))
-#define GDB_INDEX_SYMBOL_KIND_SET_VALUE(cu_index, value) \
- do { \
- (cu_index) |= (((value) & GDB_INDEX_SYMBOL_KIND_MASK) \
- << GDB_INDEX_SYMBOL_KIND_SHIFT); \
- } while (0)
-
-#define GDB_INDEX_RESERVED_SHIFT 24
-#define GDB_INDEX_RESERVED_MASK 15
-#define GDB_INDEX_RESERVED_VALUE(cu_index) \
- (((cu_index) >> GDB_INDEX_RESERVED_SHIFT) & GDB_INDEX_RESERVED_MASK)
-
-/* CU index. */
-#define GDB_INDEX_CU_BITSIZE 24
-#define GDB_INDEX_CU_MASK ((1 << GDB_INDEX_CU_BITSIZE) - 1)
-#define GDB_INDEX_CU_VALUE(cu_index) ((cu_index) & GDB_INDEX_CU_MASK)
-#define GDB_INDEX_CU_SET_VALUE(cu_index, value) \
- do { \
- (cu_index) |= (value) & GDB_INDEX_CU_MASK; \
- } while (0)
-
-#endif /* GDB_INDEX_H */
diff --git a/include/gdb/signals.def b/include/gdb/signals.def
index ef4c8d4ee..c01895ae5 100644
--- a/include/gdb/signals.def
+++ b/include/gdb/signals.def
@@ -18,173 +18,173 @@
/* Used some places (e.g. stop_signal) to record the concept that
there is no signal. */
-SET (GDB_SIGNAL_0, 0, "0", "Signal 0")
-#define GDB_SIGNAL_FIRST GDB_SIGNAL_0
-SET (GDB_SIGNAL_HUP, 1, "SIGHUP", "Hangup")
-SET (GDB_SIGNAL_INT, 2, "SIGINT", "Interrupt")
-SET (GDB_SIGNAL_QUIT, 3, "SIGQUIT", "Quit")
-SET (GDB_SIGNAL_ILL, 4, "SIGILL", "Illegal instruction")
-SET (GDB_SIGNAL_TRAP, 5, "SIGTRAP", "Trace/breakpoint trap")
-SET (GDB_SIGNAL_ABRT, 6, "SIGABRT", "Aborted")
-SET (GDB_SIGNAL_EMT, 7, "SIGEMT", "Emulation trap")
-SET (GDB_SIGNAL_FPE, 8, "SIGFPE", "Arithmetic exception")
-SET (GDB_SIGNAL_KILL, 9, "SIGKILL", "Killed")
-SET (GDB_SIGNAL_BUS, 10, "SIGBUS", "Bus error")
-SET (GDB_SIGNAL_SEGV, 11, "SIGSEGV", "Segmentation fault")
-SET (GDB_SIGNAL_SYS, 12, "SIGSYS", "Bad system call")
-SET (GDB_SIGNAL_PIPE, 13, "SIGPIPE", "Broken pipe")
-SET (GDB_SIGNAL_ALRM, 14, "SIGALRM", "Alarm clock")
-SET (GDB_SIGNAL_TERM, 15, "SIGTERM", "Terminated")
-SET (GDB_SIGNAL_URG, 16, "SIGURG", "Urgent I/O condition")
-SET (GDB_SIGNAL_STOP, 17, "SIGSTOP", "Stopped (signal)")
-SET (GDB_SIGNAL_TSTP, 18, "SIGTSTP", "Stopped (user)")
-SET (GDB_SIGNAL_CONT, 19, "SIGCONT", "Continued")
-SET (GDB_SIGNAL_CHLD, 20, "SIGCHLD", "Child status changed")
-SET (GDB_SIGNAL_TTIN, 21, "SIGTTIN", "Stopped (tty input)")
-SET (GDB_SIGNAL_TTOU, 22, "SIGTTOU", "Stopped (tty output)")
-SET (GDB_SIGNAL_IO, 23, "SIGIO", "I/O possible")
-SET (GDB_SIGNAL_XCPU, 24, "SIGXCPU", "CPU time limit exceeded")
-SET (GDB_SIGNAL_XFSZ, 25, "SIGXFSZ", "File size limit exceeded")
-SET (GDB_SIGNAL_VTALRM, 26, "SIGVTALRM", "Virtual timer expired")
-SET (GDB_SIGNAL_PROF, 27, "SIGPROF", "Profiling timer expired")
-SET (GDB_SIGNAL_WINCH, 28, "SIGWINCH", "Window size changed")
-SET (GDB_SIGNAL_LOST, 29, "SIGLOST", "Resource lost")
-SET (GDB_SIGNAL_USR1, 30, "SIGUSR1", "User defined signal 1")
-SET (GDB_SIGNAL_USR2, 31, "SIGUSR2", "User defined signal 2")
-SET (GDB_SIGNAL_PWR, 32, "SIGPWR", "Power fail/restart")
+SET (TARGET_SIGNAL_0, 0, "0", "Signal 0")
+#define TARGET_SIGNAL_FIRST TARGET_SIGNAL_0
+SET (TARGET_SIGNAL_HUP, 1, "SIGHUP", "Hangup")
+SET (TARGET_SIGNAL_INT, 2, "SIGINT", "Interrupt")
+SET (TARGET_SIGNAL_QUIT, 3, "SIGQUIT", "Quit")
+SET (TARGET_SIGNAL_ILL, 4, "SIGILL", "Illegal instruction")
+SET (TARGET_SIGNAL_TRAP, 5, "SIGTRAP", "Trace/breakpoint trap")
+SET (TARGET_SIGNAL_ABRT, 6, "SIGABRT", "Aborted")
+SET (TARGET_SIGNAL_EMT, 7, "SIGEMT", "Emulation trap")
+SET (TARGET_SIGNAL_FPE, 8, "SIGFPE", "Arithmetic exception")
+SET (TARGET_SIGNAL_KILL, 9, "SIGKILL", "Killed")
+SET (TARGET_SIGNAL_BUS, 10, "SIGBUS", "Bus error")
+SET (TARGET_SIGNAL_SEGV, 11, "SIGSEGV", "Segmentation fault")
+SET (TARGET_SIGNAL_SYS, 12, "SIGSYS", "Bad system call")
+SET (TARGET_SIGNAL_PIPE, 13, "SIGPIPE", "Broken pipe")
+SET (TARGET_SIGNAL_ALRM, 14, "SIGALRM", "Alarm clock")
+SET (TARGET_SIGNAL_TERM, 15, "SIGTERM", "Terminated")
+SET (TARGET_SIGNAL_URG, 16, "SIGURG", "Urgent I/O condition")
+SET (TARGET_SIGNAL_STOP, 17, "SIGSTOP", "Stopped (signal)")
+SET (TARGET_SIGNAL_TSTP, 18, "SIGTSTP", "Stopped (user)")
+SET (TARGET_SIGNAL_CONT, 19, "SIGCONT", "Continued")
+SET (TARGET_SIGNAL_CHLD, 20, "SIGCHLD", "Child status changed")
+SET (TARGET_SIGNAL_TTIN, 21, "SIGTTIN", "Stopped (tty input)")
+SET (TARGET_SIGNAL_TTOU, 22, "SIGTTOU", "Stopped (tty output)")
+SET (TARGET_SIGNAL_IO, 23, "SIGIO", "I/O possible")
+SET (TARGET_SIGNAL_XCPU, 24, "SIGXCPU", "CPU time limit exceeded")
+SET (TARGET_SIGNAL_XFSZ, 25, "SIGXFSZ", "File size limit exceeded")
+SET (TARGET_SIGNAL_VTALRM, 26, "SIGVTALRM", "Virtual timer expired")
+SET (TARGET_SIGNAL_PROF, 27, "SIGPROF", "Profiling timer expired")
+SET (TARGET_SIGNAL_WINCH, 28, "SIGWINCH", "Window size changed")
+SET (TARGET_SIGNAL_LOST, 29, "SIGLOST", "Resource lost")
+SET (TARGET_SIGNAL_USR1, 30, "SIGUSR1", "User defined signal 1")
+SET (TARGET_SIGNAL_USR2, 31, "SIGUSR2", "User defined signal 2")
+SET (TARGET_SIGNAL_PWR, 32, "SIGPWR", "Power fail/restart")
/* Similar to SIGIO. Perhaps they should have the same number. */
-SET (GDB_SIGNAL_POLL, 33, "SIGPOLL", "Pollable event occurred")
-SET (GDB_SIGNAL_WIND, 34, "SIGWIND", "SIGWIND")
-SET (GDB_SIGNAL_PHONE, 35, "SIGPHONE", "SIGPHONE")
-SET (GDB_SIGNAL_WAITING, 36, "SIGWAITING", "Process's LWPs are blocked")
-SET (GDB_SIGNAL_LWP, 37, "SIGLWP", "Signal LWP")
-SET (GDB_SIGNAL_DANGER, 38, "SIGDANGER", "Swap space dangerously low")
-SET (GDB_SIGNAL_GRANT, 39, "SIGGRANT", "Monitor mode granted")
-SET (GDB_SIGNAL_RETRACT, 40, "SIGRETRACT",
+SET (TARGET_SIGNAL_POLL, 33, "SIGPOLL", "Pollable event occurred")
+SET (TARGET_SIGNAL_WIND, 34, "SIGWIND", "SIGWIND")
+SET (TARGET_SIGNAL_PHONE, 35, "SIGPHONE", "SIGPHONE")
+SET (TARGET_SIGNAL_WAITING, 36, "SIGWAITING", "Process's LWPs are blocked")
+SET (TARGET_SIGNAL_LWP, 37, "SIGLWP", "Signal LWP")
+SET (TARGET_SIGNAL_DANGER, 38, "SIGDANGER", "Swap space dangerously low")
+SET (TARGET_SIGNAL_GRANT, 39, "SIGGRANT", "Monitor mode granted")
+SET (TARGET_SIGNAL_RETRACT, 40, "SIGRETRACT",
"Need to relinquish monitor mode")
-SET (GDB_SIGNAL_MSG, 41, "SIGMSG", "Monitor mode data available")
-SET (GDB_SIGNAL_SOUND, 42, "SIGSOUND", "Sound completed")
-SET (GDB_SIGNAL_SAK, 43, "SIGSAK", "Secure attention")
-SET (GDB_SIGNAL_PRIO, 44, "SIGPRIO", "SIGPRIO")
-SET (GDB_SIGNAL_REALTIME_33, 45, "SIG33", "Real-time event 33")
-SET (GDB_SIGNAL_REALTIME_34, 46, "SIG34", "Real-time event 34")
-SET (GDB_SIGNAL_REALTIME_35, 47, "SIG35", "Real-time event 35")
-SET (GDB_SIGNAL_REALTIME_36, 48, "SIG36", "Real-time event 36")
-SET (GDB_SIGNAL_REALTIME_37, 49, "SIG37", "Real-time event 37")
-SET (GDB_SIGNAL_REALTIME_38, 50, "SIG38", "Real-time event 38")
-SET (GDB_SIGNAL_REALTIME_39, 51, "SIG39", "Real-time event 39")
-SET (GDB_SIGNAL_REALTIME_40, 52, "SIG40", "Real-time event 40")
-SET (GDB_SIGNAL_REALTIME_41, 53, "SIG41", "Real-time event 41")
-SET (GDB_SIGNAL_REALTIME_42, 54, "SIG42", "Real-time event 42")
-SET (GDB_SIGNAL_REALTIME_43, 55, "SIG43", "Real-time event 43")
-SET (GDB_SIGNAL_REALTIME_44, 56, "SIG44", "Real-time event 44")
-SET (GDB_SIGNAL_REALTIME_45, 57, "SIG45", "Real-time event 45")
-SET (GDB_SIGNAL_REALTIME_46, 58, "SIG46", "Real-time event 46")
-SET (GDB_SIGNAL_REALTIME_47, 59, "SIG47", "Real-time event 47")
-SET (GDB_SIGNAL_REALTIME_48, 60, "SIG48", "Real-time event 48")
-SET (GDB_SIGNAL_REALTIME_49, 61, "SIG49", "Real-time event 49")
-SET (GDB_SIGNAL_REALTIME_50, 62, "SIG50", "Real-time event 50")
-SET (GDB_SIGNAL_REALTIME_51, 63, "SIG51", "Real-time event 51")
-SET (GDB_SIGNAL_REALTIME_52, 64, "SIG52", "Real-time event 52")
-SET (GDB_SIGNAL_REALTIME_53, 65, "SIG53", "Real-time event 53")
-SET (GDB_SIGNAL_REALTIME_54, 66, "SIG54", "Real-time event 54")
-SET (GDB_SIGNAL_REALTIME_55, 67, "SIG55", "Real-time event 55")
-SET (GDB_SIGNAL_REALTIME_56, 68, "SIG56", "Real-time event 56")
-SET (GDB_SIGNAL_REALTIME_57, 69, "SIG57", "Real-time event 57")
-SET (GDB_SIGNAL_REALTIME_58, 70, "SIG58", "Real-time event 58")
-SET (GDB_SIGNAL_REALTIME_59, 71, "SIG59", "Real-time event 59")
-SET (GDB_SIGNAL_REALTIME_60, 72, "SIG60", "Real-time event 60")
-SET (GDB_SIGNAL_REALTIME_61, 73, "SIG61", "Real-time event 61")
-SET (GDB_SIGNAL_REALTIME_62, 74, "SIG62", "Real-time event 62")
-SET (GDB_SIGNAL_REALTIME_63, 75, "SIG63", "Real-time event 63")
+SET (TARGET_SIGNAL_MSG, 41, "SIGMSG", "Monitor mode data available")
+SET (TARGET_SIGNAL_SOUND, 42, "SIGSOUND", "Sound completed")
+SET (TARGET_SIGNAL_SAK, 43, "SIGSAK", "Secure attention")
+SET (TARGET_SIGNAL_PRIO, 44, "SIGPRIO", "SIGPRIO")
+SET (TARGET_SIGNAL_REALTIME_33, 45, "SIG33", "Real-time event 33")
+SET (TARGET_SIGNAL_REALTIME_34, 46, "SIG34", "Real-time event 34")
+SET (TARGET_SIGNAL_REALTIME_35, 47, "SIG35", "Real-time event 35")
+SET (TARGET_SIGNAL_REALTIME_36, 48, "SIG36", "Real-time event 36")
+SET (TARGET_SIGNAL_REALTIME_37, 49, "SIG37", "Real-time event 37")
+SET (TARGET_SIGNAL_REALTIME_38, 50, "SIG38", "Real-time event 38")
+SET (TARGET_SIGNAL_REALTIME_39, 51, "SIG39", "Real-time event 39")
+SET (TARGET_SIGNAL_REALTIME_40, 52, "SIG40", "Real-time event 40")
+SET (TARGET_SIGNAL_REALTIME_41, 53, "SIG41", "Real-time event 41")
+SET (TARGET_SIGNAL_REALTIME_42, 54, "SIG42", "Real-time event 42")
+SET (TARGET_SIGNAL_REALTIME_43, 55, "SIG43", "Real-time event 43")
+SET (TARGET_SIGNAL_REALTIME_44, 56, "SIG44", "Real-time event 44")
+SET (TARGET_SIGNAL_REALTIME_45, 57, "SIG45", "Real-time event 45")
+SET (TARGET_SIGNAL_REALTIME_46, 58, "SIG46", "Real-time event 46")
+SET (TARGET_SIGNAL_REALTIME_47, 59, "SIG47", "Real-time event 47")
+SET (TARGET_SIGNAL_REALTIME_48, 60, "SIG48", "Real-time event 48")
+SET (TARGET_SIGNAL_REALTIME_49, 61, "SIG49", "Real-time event 49")
+SET (TARGET_SIGNAL_REALTIME_50, 62, "SIG50", "Real-time event 50")
+SET (TARGET_SIGNAL_REALTIME_51, 63, "SIG51", "Real-time event 51")
+SET (TARGET_SIGNAL_REALTIME_52, 64, "SIG52", "Real-time event 52")
+SET (TARGET_SIGNAL_REALTIME_53, 65, "SIG53", "Real-time event 53")
+SET (TARGET_SIGNAL_REALTIME_54, 66, "SIG54", "Real-time event 54")
+SET (TARGET_SIGNAL_REALTIME_55, 67, "SIG55", "Real-time event 55")
+SET (TARGET_SIGNAL_REALTIME_56, 68, "SIG56", "Real-time event 56")
+SET (TARGET_SIGNAL_REALTIME_57, 69, "SIG57", "Real-time event 57")
+SET (TARGET_SIGNAL_REALTIME_58, 70, "SIG58", "Real-time event 58")
+SET (TARGET_SIGNAL_REALTIME_59, 71, "SIG59", "Real-time event 59")
+SET (TARGET_SIGNAL_REALTIME_60, 72, "SIG60", "Real-time event 60")
+SET (TARGET_SIGNAL_REALTIME_61, 73, "SIG61", "Real-time event 61")
+SET (TARGET_SIGNAL_REALTIME_62, 74, "SIG62", "Real-time event 62")
+SET (TARGET_SIGNAL_REALTIME_63, 75, "SIG63", "Real-time event 63")
/* Used internally by Solaris threads. See signal(5) on Solaris. */
-SET (GDB_SIGNAL_CANCEL, 76, "SIGCANCEL", "LWP internal signal")
+SET (TARGET_SIGNAL_CANCEL, 76, "SIGCANCEL", "LWP internal signal")
/* Yes, this pains me, too. But LynxOS didn't have SIG32, and now
GNU/Linux does, and we can't disturb the numbering, since it's
part of the remote protocol. Note that in some GDB's
- GDB_SIGNAL_REALTIME_32 is number 76. */
-SET (GDB_SIGNAL_REALTIME_32, 77, "SIG32", "Real-time event 32")
+ TARGET_SIGNAL_REALTIME_32 is number 76. */
+SET (TARGET_SIGNAL_REALTIME_32, 77, "SIG32", "Real-time event 32")
/* Yet another pain, IRIX 6 has SIG64. */
-SET (GDB_SIGNAL_REALTIME_64, 78, "SIG64", "Real-time event 64")
+SET (TARGET_SIGNAL_REALTIME_64, 78, "SIG64", "Real-time event 64")
/* Yet another pain, GNU/Linux MIPS might go up to 128. */
-SET (GDB_SIGNAL_REALTIME_65, 79, "SIG65", "Real-time event 65")
-SET (GDB_SIGNAL_REALTIME_66, 80, "SIG66", "Real-time event 66")
-SET (GDB_SIGNAL_REALTIME_67, 81, "SIG67", "Real-time event 67")
-SET (GDB_SIGNAL_REALTIME_68, 82, "SIG68", "Real-time event 68")
-SET (GDB_SIGNAL_REALTIME_69, 83, "SIG69", "Real-time event 69")
-SET (GDB_SIGNAL_REALTIME_70, 84, "SIG70", "Real-time event 70")
-SET (GDB_SIGNAL_REALTIME_71, 85, "SIG71", "Real-time event 71")
-SET (GDB_SIGNAL_REALTIME_72, 86, "SIG72", "Real-time event 72")
-SET (GDB_SIGNAL_REALTIME_73, 87, "SIG73", "Real-time event 73")
-SET (GDB_SIGNAL_REALTIME_74, 88, "SIG74", "Real-time event 74")
-SET (GDB_SIGNAL_REALTIME_75, 89, "SIG75", "Real-time event 75")
-SET (GDB_SIGNAL_REALTIME_76, 90, "SIG76", "Real-time event 76")
-SET (GDB_SIGNAL_REALTIME_77, 91, "SIG77", "Real-time event 77")
-SET (GDB_SIGNAL_REALTIME_78, 92, "SIG78", "Real-time event 78")
-SET (GDB_SIGNAL_REALTIME_79, 93, "SIG79", "Real-time event 79")
-SET (GDB_SIGNAL_REALTIME_80, 94, "SIG80", "Real-time event 80")
-SET (GDB_SIGNAL_REALTIME_81, 95, "SIG81", "Real-time event 81")
-SET (GDB_SIGNAL_REALTIME_82, 96, "SIG82", "Real-time event 82")
-SET (GDB_SIGNAL_REALTIME_83, 97, "SIG83", "Real-time event 83")
-SET (GDB_SIGNAL_REALTIME_84, 98, "SIG84", "Real-time event 84")
-SET (GDB_SIGNAL_REALTIME_85, 99, "SIG85", "Real-time event 85")
-SET (GDB_SIGNAL_REALTIME_86, 100, "SIG86", "Real-time event 86")
-SET (GDB_SIGNAL_REALTIME_87, 101, "SIG87", "Real-time event 87")
-SET (GDB_SIGNAL_REALTIME_88, 102, "SIG88", "Real-time event 88")
-SET (GDB_SIGNAL_REALTIME_89, 103, "SIG89", "Real-time event 89")
-SET (GDB_SIGNAL_REALTIME_90, 104, "SIG90", "Real-time event 90")
-SET (GDB_SIGNAL_REALTIME_91, 105, "SIG91", "Real-time event 91")
-SET (GDB_SIGNAL_REALTIME_92, 106, "SIG92", "Real-time event 92")
-SET (GDB_SIGNAL_REALTIME_93, 107, "SIG93", "Real-time event 93")
-SET (GDB_SIGNAL_REALTIME_94, 108, "SIG94", "Real-time event 94")
-SET (GDB_SIGNAL_REALTIME_95, 109, "SIG95", "Real-time event 95")
-SET (GDB_SIGNAL_REALTIME_96, 110, "SIG96", "Real-time event 96")
-SET (GDB_SIGNAL_REALTIME_97, 111, "SIG97", "Real-time event 97")
-SET (GDB_SIGNAL_REALTIME_98, 112, "SIG98", "Real-time event 98")
-SET (GDB_SIGNAL_REALTIME_99, 113, "SIG99", "Real-time event 99")
-SET (GDB_SIGNAL_REALTIME_100, 114, "SIG100", "Real-time event 100")
-SET (GDB_SIGNAL_REALTIME_101, 115, "SIG101", "Real-time event 101")
-SET (GDB_SIGNAL_REALTIME_102, 116, "SIG102", "Real-time event 102")
-SET (GDB_SIGNAL_REALTIME_103, 117, "SIG103", "Real-time event 103")
-SET (GDB_SIGNAL_REALTIME_104, 118, "SIG104", "Real-time event 104")
-SET (GDB_SIGNAL_REALTIME_105, 119, "SIG105", "Real-time event 105")
-SET (GDB_SIGNAL_REALTIME_106, 120, "SIG106", "Real-time event 106")
-SET (GDB_SIGNAL_REALTIME_107, 121, "SIG107", "Real-time event 107")
-SET (GDB_SIGNAL_REALTIME_108, 122, "SIG108", "Real-time event 108")
-SET (GDB_SIGNAL_REALTIME_109, 123, "SIG109", "Real-time event 109")
-SET (GDB_SIGNAL_REALTIME_110, 124, "SIG110", "Real-time event 110")
-SET (GDB_SIGNAL_REALTIME_111, 125, "SIG111", "Real-time event 111")
-SET (GDB_SIGNAL_REALTIME_112, 126, "SIG112", "Real-time event 112")
-SET (GDB_SIGNAL_REALTIME_113, 127, "SIG113", "Real-time event 113")
-SET (GDB_SIGNAL_REALTIME_114, 128, "SIG114", "Real-time event 114")
-SET (GDB_SIGNAL_REALTIME_115, 129, "SIG115", "Real-time event 115")
-SET (GDB_SIGNAL_REALTIME_116, 130, "SIG116", "Real-time event 116")
-SET (GDB_SIGNAL_REALTIME_117, 131, "SIG117", "Real-time event 117")
-SET (GDB_SIGNAL_REALTIME_118, 132, "SIG118", "Real-time event 118")
-SET (GDB_SIGNAL_REALTIME_119, 133, "SIG119", "Real-time event 119")
-SET (GDB_SIGNAL_REALTIME_120, 134, "SIG120", "Real-time event 120")
-SET (GDB_SIGNAL_REALTIME_121, 135, "SIG121", "Real-time event 121")
-SET (GDB_SIGNAL_REALTIME_122, 136, "SIG122", "Real-time event 122")
-SET (GDB_SIGNAL_REALTIME_123, 137, "SIG123", "Real-time event 123")
-SET (GDB_SIGNAL_REALTIME_124, 138, "SIG124", "Real-time event 124")
-SET (GDB_SIGNAL_REALTIME_125, 139, "SIG125", "Real-time event 125")
-SET (GDB_SIGNAL_REALTIME_126, 140, "SIG126", "Real-time event 126")
-SET (GDB_SIGNAL_REALTIME_127, 141, "SIG127", "Real-time event 127")
+SET (TARGET_SIGNAL_REALTIME_65, 79, "SIG65", "Real-time event 65")
+SET (TARGET_SIGNAL_REALTIME_66, 80, "SIG66", "Real-time event 66")
+SET (TARGET_SIGNAL_REALTIME_67, 81, "SIG67", "Real-time event 67")
+SET (TARGET_SIGNAL_REALTIME_68, 82, "SIG68", "Real-time event 68")
+SET (TARGET_SIGNAL_REALTIME_69, 83, "SIG69", "Real-time event 69")
+SET (TARGET_SIGNAL_REALTIME_70, 84, "SIG70", "Real-time event 70")
+SET (TARGET_SIGNAL_REALTIME_71, 85, "SIG71", "Real-time event 71")
+SET (TARGET_SIGNAL_REALTIME_72, 86, "SIG72", "Real-time event 72")
+SET (TARGET_SIGNAL_REALTIME_73, 87, "SIG73", "Real-time event 73")
+SET (TARGET_SIGNAL_REALTIME_74, 88, "SIG74", "Real-time event 74")
+SET (TARGET_SIGNAL_REALTIME_75, 89, "SIG75", "Real-time event 75")
+SET (TARGET_SIGNAL_REALTIME_76, 90, "SIG76", "Real-time event 76")
+SET (TARGET_SIGNAL_REALTIME_77, 91, "SIG77", "Real-time event 77")
+SET (TARGET_SIGNAL_REALTIME_78, 92, "SIG78", "Real-time event 78")
+SET (TARGET_SIGNAL_REALTIME_79, 93, "SIG79", "Real-time event 79")
+SET (TARGET_SIGNAL_REALTIME_80, 94, "SIG80", "Real-time event 80")
+SET (TARGET_SIGNAL_REALTIME_81, 95, "SIG81", "Real-time event 81")
+SET (TARGET_SIGNAL_REALTIME_82, 96, "SIG82", "Real-time event 82")
+SET (TARGET_SIGNAL_REALTIME_83, 97, "SIG83", "Real-time event 83")
+SET (TARGET_SIGNAL_REALTIME_84, 98, "SIG84", "Real-time event 84")
+SET (TARGET_SIGNAL_REALTIME_85, 99, "SIG85", "Real-time event 85")
+SET (TARGET_SIGNAL_REALTIME_86, 100, "SIG86", "Real-time event 86")
+SET (TARGET_SIGNAL_REALTIME_87, 101, "SIG87", "Real-time event 87")
+SET (TARGET_SIGNAL_REALTIME_88, 102, "SIG88", "Real-time event 88")
+SET (TARGET_SIGNAL_REALTIME_89, 103, "SIG89", "Real-time event 89")
+SET (TARGET_SIGNAL_REALTIME_90, 104, "SIG90", "Real-time event 90")
+SET (TARGET_SIGNAL_REALTIME_91, 105, "SIG91", "Real-time event 91")
+SET (TARGET_SIGNAL_REALTIME_92, 106, "SIG92", "Real-time event 92")
+SET (TARGET_SIGNAL_REALTIME_93, 107, "SIG93", "Real-time event 93")
+SET (TARGET_SIGNAL_REALTIME_94, 108, "SIG94", "Real-time event 94")
+SET (TARGET_SIGNAL_REALTIME_95, 109, "SIG95", "Real-time event 95")
+SET (TARGET_SIGNAL_REALTIME_96, 110, "SIG96", "Real-time event 96")
+SET (TARGET_SIGNAL_REALTIME_97, 111, "SIG97", "Real-time event 97")
+SET (TARGET_SIGNAL_REALTIME_98, 112, "SIG98", "Real-time event 98")
+SET (TARGET_SIGNAL_REALTIME_99, 113, "SIG99", "Real-time event 99")
+SET (TARGET_SIGNAL_REALTIME_100, 114, "SIG100", "Real-time event 100")
+SET (TARGET_SIGNAL_REALTIME_101, 115, "SIG101", "Real-time event 101")
+SET (TARGET_SIGNAL_REALTIME_102, 116, "SIG102", "Real-time event 102")
+SET (TARGET_SIGNAL_REALTIME_103, 117, "SIG103", "Real-time event 103")
+SET (TARGET_SIGNAL_REALTIME_104, 118, "SIG104", "Real-time event 104")
+SET (TARGET_SIGNAL_REALTIME_105, 119, "SIG105", "Real-time event 105")
+SET (TARGET_SIGNAL_REALTIME_106, 120, "SIG106", "Real-time event 106")
+SET (TARGET_SIGNAL_REALTIME_107, 121, "SIG107", "Real-time event 107")
+SET (TARGET_SIGNAL_REALTIME_108, 122, "SIG108", "Real-time event 108")
+SET (TARGET_SIGNAL_REALTIME_109, 123, "SIG109", "Real-time event 109")
+SET (TARGET_SIGNAL_REALTIME_110, 124, "SIG110", "Real-time event 110")
+SET (TARGET_SIGNAL_REALTIME_111, 125, "SIG111", "Real-time event 111")
+SET (TARGET_SIGNAL_REALTIME_112, 126, "SIG112", "Real-time event 112")
+SET (TARGET_SIGNAL_REALTIME_113, 127, "SIG113", "Real-time event 113")
+SET (TARGET_SIGNAL_REALTIME_114, 128, "SIG114", "Real-time event 114")
+SET (TARGET_SIGNAL_REALTIME_115, 129, "SIG115", "Real-time event 115")
+SET (TARGET_SIGNAL_REALTIME_116, 130, "SIG116", "Real-time event 116")
+SET (TARGET_SIGNAL_REALTIME_117, 131, "SIG117", "Real-time event 117")
+SET (TARGET_SIGNAL_REALTIME_118, 132, "SIG118", "Real-time event 118")
+SET (TARGET_SIGNAL_REALTIME_119, 133, "SIG119", "Real-time event 119")
+SET (TARGET_SIGNAL_REALTIME_120, 134, "SIG120", "Real-time event 120")
+SET (TARGET_SIGNAL_REALTIME_121, 135, "SIG121", "Real-time event 121")
+SET (TARGET_SIGNAL_REALTIME_122, 136, "SIG122", "Real-time event 122")
+SET (TARGET_SIGNAL_REALTIME_123, 137, "SIG123", "Real-time event 123")
+SET (TARGET_SIGNAL_REALTIME_124, 138, "SIG124", "Real-time event 124")
+SET (TARGET_SIGNAL_REALTIME_125, 139, "SIG125", "Real-time event 125")
+SET (TARGET_SIGNAL_REALTIME_126, 140, "SIG126", "Real-time event 126")
+SET (TARGET_SIGNAL_REALTIME_127, 141, "SIG127", "Real-time event 127")
-SET (GDB_SIGNAL_INFO, 142, "SIGINFO", "Information request")
+SET (TARGET_SIGNAL_INFO, 142, "SIGINFO", "Information request")
/* Some signal we don't know about. */
-SET (GDB_SIGNAL_UNKNOWN, 143, NULL, "Unknown signal")
+SET (TARGET_SIGNAL_UNKNOWN, 143, NULL, "Unknown signal")
/* Use whatever signal we use when one is not specifically specified
(for passing to proceed and so on). */
-SET (GDB_SIGNAL_DEFAULT, 144, NULL,
- "Internal error: printing GDB_SIGNAL_DEFAULT")
+SET (TARGET_SIGNAL_DEFAULT, 144, NULL,
+ "Internal error: printing TARGET_SIGNAL_DEFAULT")
/* Mach exceptions. In versions of GDB before 5.2, these were just before
- GDB_SIGNAL_INFO if you were compiling on a Mach host (and missing
+ TARGET_SIGNAL_INFO if you were compiling on a Mach host (and missing
otherwise). */
SET (TARGET_EXC_BAD_ACCESS, 145, "EXC_BAD_ACCESS", "Could not access memory")
SET (TARGET_EXC_BAD_INSTRUCTION, 146, "EXC_BAD_INSTRUCTION",
@@ -197,4 +197,4 @@ SET (TARGET_EXC_BREAKPOINT, 150, "EXC_BREAKPOINT", "Breakpoint")
/* If you are adding a new signal, add it just above this comment. */
/* Last and unused enum value, for sizing arrays, etc. */
-SET (GDB_SIGNAL_LAST, 151, NULL, "GDB_SIGNAL_MAGIC")
+SET (TARGET_SIGNAL_LAST, 151, NULL, "TARGET_SIGNAL_MAGIC")
diff --git a/include/gdb/signals.h b/include/gdb/signals.h
index a59d3b5c6..67902c617 100644
--- a/include/gdb/signals.h
+++ b/include/gdb/signals.h
@@ -45,9 +45,9 @@
etc. are doing to address these issues. */
/* For an explanation of what each signal means, see
- gdb_signal_to_string. */
+ target_signal_to_string. */
-enum gdb_signal
+enum target_signal
{
#define SET(symbol, constant, name, string) \
symbol = constant,
diff --git a/include/leb128.h b/include/leb128.h
deleted file mode 100644
index f584f72e5..000000000
--- a/include/leb128.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/* Utilities for reading leb128 values.
- Copyright (C) 2012 Free Software Foundation, Inc.
-
-This file is part of the libiberty library.
-Libiberty is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public
-License as published by the Free Software Foundation; either
-version 2 of the License, or (at your option) any later version.
-
-Libiberty is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB. If not, write
-to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA. */
-
-/* The functions defined here can be speed critical.
- Since they are all pretty small we keep things simple and just define
- them all as "static inline".
-
- WARNING: This file is used by GDB which is stuck at C90. :-(
- Though it can use stdint.h, inttypes.h.
- Therefore if you want to add support for "long long" you need
- to wrap it in #ifdef CC_HAS_LONG_LONG. */
-
-#ifndef LEB128_H
-#define LEB128_H
-
-/* Get a definition for inline. */
-#include "ansidecl.h"
-
-/* Get a definition for NULL, size_t. */
-#include <stddef.h>
-
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-#include <inttypes.h>
-#endif
-
-/* Decode the unsigned LEB128 constant at BUF into the variable pointed to
- by R, and return the number of bytes read.
- If we read off the end of the buffer, zero is returned,
- and nothing is stored in R.
-
- Note: The result is an int instead of a pointer to the next byte to be
- read to avoid const-vs-non-const problems. */
-
-static inline size_t
-read_uleb128_to_uint64 (const unsigned char *buf, const unsigned char *buf_end,
- uint64_t *r)
-{
- const unsigned char *p = buf;
- unsigned int shift = 0;
- uint64_t result = 0;
- unsigned char byte;
-
- while (1)
- {
- if (p >= buf_end)
- return 0;
-
- byte = *p++;
- result |= ((uint64_t) (byte & 0x7f)) << shift;
- if ((byte & 0x80) == 0)
- break;
- shift += 7;
- }
-
- *r = result;
- return p - buf;
-}
-
-/* Decode the signed LEB128 constant at BUF into the variable pointed to
- by R, and return the number of bytes read.
- If we read off the end of the buffer, zero is returned,
- and nothing is stored in R.
-
- Note: The result is an int instead of a pointer to the next byte to be
- read to avoid const-vs-non-const problems. */
-
-static inline size_t
-read_sleb128_to_int64 (const unsigned char *buf, const unsigned char *buf_end,
- int64_t *r)
-{
- const unsigned char *p = buf;
- unsigned int shift = 0;
- int64_t result = 0;
- unsigned char byte;
-
- while (1)
- {
- if (p >= buf_end)
- return 0;
-
- byte = *p++;
- result |= ((uint64_t) (byte & 0x7f)) << shift;
- shift += 7;
- if ((byte & 0x80) == 0)
- break;
- }
- if (shift < (sizeof (*r) * 8) && (byte & 0x40) != 0)
- result |= -(((uint64_t) 1) << shift);
-
- *r = result;
- return p - buf;
-}
-
-/* Return the number of bytes to read to skip past an LEB128 number in BUF.
- If the end isn't found before reaching BUF_END, return zero.
-
- Note: The result is an int instead of a pointer to the next byte to be
- read to avoid const-vs-non-const problems. */
-
-static inline size_t
-skip_leb128 (const unsigned char *buf, const unsigned char *buf_end)
-{
- const unsigned char *p = buf;
- unsigned char byte;
-
- while (1)
- {
- if (p == buf_end)
- return 0;
-
- byte = *p++;
- if ((byte & 0x80) == 0)
- return p - buf;
- }
-}
-
-#endif /* LEB128_H */
diff --git a/include/mach-o/ChangeLog b/include/mach-o/ChangeLog
new file mode 100644
index 000000000..19eacd0c5
--- /dev/null
+++ b/include/mach-o/ChangeLog
@@ -0,0 +1,51 @@
+2012-02-23 Iain Sandoe <idsandoe@googlemail.com>
+
+ * external.h: Add comments about relocations fields. Add macros
+ for non-scattered relocations. Move scattered relocation macros to
+ here.
+ * reloc.h: Remove macros related to external representation of reloc
+ fields.
+
+2012-01-12 Iain Sandoe <idsandoe@googlemail.com>
+
+ * loader.h (BFD_MACH_O_INDIRECT_SYM_LOCAL): New.
+ (BFD_MACH_O_INDIRECT_SYM_ABS): New
+
+2012-01-04 Tristan Gingold <gingold@adacore.com>
+
+ * external.h (mach_o_fvmlib_command_external): New structure.
+
+2012-01-04 Tristan Gingold <gingold@adacore.com>
+
+ * loader.h: Update copyright year.
+ (bfd_mach_o_cpu_subtype): Add ARM subtypes.
+
+2012-01-04 Tristan Gingold <gingold@adacore.com>
+
+ * external.h: Update copyright year.
+ (mach_o_symtab_command_external): Add comments.
+ (mach_o_encryption_info_command_external): New structure.
+
+2011-12-16 Tristan Gingold <gingold@adacore.com>
+
+ * codesign.h: New file.
+
+2011-08-08 Tristan Gingold <gingold@adacore.com>
+
+ * loader.h (bfd_mach_o_load_command_type): Add
+ BFD_MACH_O_LC_LOAD_UPWARD_DYLIB, BFD_MACH_O_LC_VERSION_MIN_MACOSX,
+ BFD_MACH_O_LC_VERSION_MIN_IPHONEOS, BFD_MACH_O_LC_FUNCTION_STARTS,
+ and BFD_MACH_O_LC_DYLD_ENVIRONMENT.
+ * external.h (mach_o_version_min_command_external): New structure.
+
+2011-08-08 Tristan Gingold <gingold@adacore.com>
+
+ * loader.h: Reorder declarations.
+ * x86-64.h: New file.
+ * external.h: New file.
+ * reloc.h: New file.
+
+2011-07-06 Tristan Gingold <gingold@adacore.com>
+
+ * loader.h: New file.
+
diff --git a/include/mach-o/codesign.h b/include/mach-o/codesign.h
new file mode 100644
index 000000000..ee2f792ac
--- /dev/null
+++ b/include/mach-o/codesign.h
@@ -0,0 +1,85 @@
+/* Mach-O support for BFD.
+ Copyright 2011
+ Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _MACH_O_CODESIGN_H
+#define _MACH_O_CODESIGN_H
+
+/* Codesign blob magics. */
+
+/* Superblob containing all the components. */
+#define BFD_MACH_O_CS_MAGIC_EMBEDDED_SIGNATURE 0xfade0cc0
+
+/* Individual code requirement. */
+#define BFD_MACH_O_CS_MAGIC_REQUIREMENT 0xfade0c00
+
+/* Collection of code requirements, indexed by type. */
+#define BFD_MACH_O_CS_MAGIC_REQUIREMENTS 0xfade0c01
+
+/* Directory. */
+#define BFD_MACH_O_CS_MAGIC_CODEDIRECTORY 0xfade0c02
+
+/* Entitlements blob. */
+#define BFD_MACH_O_CS_MAGIC_EMBEDDED_ENTITLEMENTS 0xfade7171
+
+/* Blob container. */
+#define BFD_MACH_O_CS_MAGIC_BLOB_WRAPPER 0xfade0b01
+
+struct mach_o_codesign_codedirectory_external_v1
+{
+ /* All the fields are in network byte order (big endian). */
+ unsigned char version[4];
+ unsigned char flags[4];
+ unsigned char hash_offset[4];
+ unsigned char ident_offset[4];
+ unsigned char nbr_special_slots[4];
+ unsigned char nbr_code_slots[4];
+ unsigned char code_limit[4];
+ unsigned char hash_size[1];
+ unsigned char hash_type[1];
+ unsigned char spare1[1];
+ unsigned char page_size[1];
+ unsigned char spare2[4];
+};
+
+struct mach_o_codesign_codedirectory_v1
+{
+ unsigned int version;
+ unsigned int flags;
+ unsigned int hash_offset;
+ unsigned int ident_offset;
+ unsigned int nbr_special_slots;
+ unsigned int nbr_code_slots;
+ unsigned int code_limit;
+ unsigned char hash_size;
+ unsigned char hash_type;
+ unsigned char spare1;
+ unsigned char page_size;
+ unsigned int spare2;
+};
+
+/* Value for hash_type. */
+#define BFD_MACH_O_CS_NO_HASH 0
+#define BFD_MACH_O_CS_HASH_SHA1 1
+#define BFD_MACH_O_CS_HASH_SHA256 2
+#define BFD_MACH_O_CS_HASH_PRESTANDARD_SKEIN_160x256 32 /* Skein, 160 bits */
+#define BFD_MACH_O_CS_HASH_PRESTANDARD_SKEIN_256x512 33 /* Skein, 256 bits */
+
+#endif /* _MACH_O_CODESIGN_H */
diff --git a/include/mach-o/external.h b/include/mach-o/external.h
new file mode 100644
index 000000000..41a293250
--- /dev/null
+++ b/include/mach-o/external.h
@@ -0,0 +1,326 @@
+/* Mach-O support for BFD.
+ Copyright 2011, 2012
+ Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _MACH_O_EXTERNAL_H
+#define _MACH_O_EXTERNAL_H
+
+struct mach_o_header_external
+{
+ unsigned char magic[4]; /* Magic number. */
+ unsigned char cputype[4]; /* CPU that this object is for. */
+ unsigned char cpusubtype[4]; /* CPU subtype. */
+ unsigned char filetype[4]; /* Type of file. */
+ unsigned char ncmds[4]; /* Number of load commands. */
+ unsigned char sizeofcmds[4]; /* Total size of load commands. */
+ unsigned char flags[4]; /* Flags. */
+ unsigned char reserved[4]; /* Reserved (on 64-bit version only). */
+};
+
+#define BFD_MACH_O_HEADER_SIZE 28
+#define BFD_MACH_O_HEADER_64_SIZE 32
+
+/* 32-bit section header. */
+
+struct mach_o_section_32_external
+{
+ unsigned char sectname[16]; /* Section name. */
+ unsigned char segname[16]; /* Segment that the section belongs to. */
+ unsigned char addr[4]; /* Address of this section in memory. */
+ unsigned char size[4]; /* Size in bytes of this section. */
+ unsigned char offset[4]; /* File offset of this section. */
+ unsigned char align[4]; /* log2 of this section's alignment. */
+ unsigned char reloff[4]; /* File offset of this section's relocs. */
+ unsigned char nreloc[4]; /* Number of relocs for this section. */
+ unsigned char flags[4]; /* Section flags/attributes. */
+ unsigned char reserved1[4];
+ unsigned char reserved2[4];
+};
+#define BFD_MACH_O_SECTION_SIZE 68
+
+/* 64-bit section header. */
+
+struct mach_o_section_64_external
+{
+ unsigned char sectname[16]; /* Section name. */
+ unsigned char segname[16]; /* Segment that the section belongs to. */
+ unsigned char addr[8]; /* Address of this section in memory. */
+ unsigned char size[8]; /* Size in bytes of this section. */
+ unsigned char offset[4]; /* File offset of this section. */
+ unsigned char align[4]; /* log2 of this section's alignment. */
+ unsigned char reloff[4]; /* File offset of this section's relocs. */
+ unsigned char nreloc[4]; /* Number of relocs for this section. */
+ unsigned char flags[4]; /* Section flags/attributes. */
+ unsigned char reserved1[4];
+ unsigned char reserved2[4];
+ unsigned char reserved3[4];
+};
+#define BFD_MACH_O_SECTION_64_SIZE 80
+
+struct mach_o_load_command_external
+{
+ unsigned char cmd[4]; /* The type of load command. */
+ unsigned char cmdsize[4]; /* Size in bytes of entire command. */
+};
+#define BFD_MACH_O_LC_SIZE 8
+
+struct mach_o_segment_command_32_external
+{
+ unsigned char segname[16]; /* Name of this segment. */
+ unsigned char vmaddr[4]; /* Virtual memory address of this segment. */
+ unsigned char vmsize[4]; /* Size there, in bytes. */
+ unsigned char fileoff[4]; /* Offset in bytes of the data to be mapped. */
+ unsigned char filesize[4]; /* Size in bytes on disk. */
+ unsigned char maxprot[4]; /* Maximum permitted vm protection. */
+ unsigned char initprot[4]; /* Initial vm protection. */
+ unsigned char nsects[4]; /* Number of sections in this segment. */
+ unsigned char flags[4]; /* Flags that affect the loading. */
+};
+#define BFD_MACH_O_LC_SEGMENT_SIZE 56 /* Include the header. */
+
+struct mach_o_segment_command_64_external
+{
+ unsigned char segname[16]; /* Name of this segment. */
+ unsigned char vmaddr[8]; /* Virtual memory address of this segment. */
+ unsigned char vmsize[8]; /* Size there, in bytes. */
+ unsigned char fileoff[8]; /* Offset in bytes of the data to be mapped. */
+ unsigned char filesize[8]; /* Size in bytes on disk. */
+ unsigned char maxprot[4]; /* Maximum permitted vm protection. */
+ unsigned char initprot[4]; /* Initial vm protection. */
+ unsigned char nsects[4]; /* Number of sections in this segment. */
+ unsigned char flags[4]; /* Flags that affect the loading. */
+};
+#define BFD_MACH_O_LC_SEGMENT_64_SIZE 72 /* Include the header. */
+
+struct mach_o_reloc_info_external
+{
+ unsigned char r_address[4];
+ unsigned char r_symbolnum[4];
+};
+#define BFD_MACH_O_RELENT_SIZE 8
+
+/* Relocations are based on 'address' being a section offset and an assumption
+ that sections are never more than 2^24-1 bytes in size. Relocation data
+ also carry information on type/size/PC-relative/extern and whether scattered
+ or not [stored in the MSB of the r_address]. */
+
+#define BFD_MACH_O_SR_SCATTERED 0x80000000
+
+/* For a non-scattered reloc, the relocation info is found in r_symbolnum.
+ Bytes 1 to 3 contain the symbol number (0xffffff, in a non-scattered PAIR).
+ Byte 4 contains the relocation info - but with differing bit-positions
+ dependent on target endian-ness - as below. */
+
+#define BFD_MACH_O_LE_PCREL 0x01
+#define BFD_MACH_O_LE_LENGTH_SHIFT 1
+#define BFD_MACH_O_LE_EXTERN 0x08
+#define BFD_MACH_O_LE_TYPE_SHIFT 4
+
+#define BFD_MACH_O_BE_PCREL 0x80
+#define BFD_MACH_O_BE_LENGTH_SHIFT 5
+#define BFD_MACH_O_BE_EXTERN 0x10
+#define BFD_MACH_O_BE_TYPE_SHIFT 0
+
+/* The field sizes are the same for both BE and LE. */
+#define BFD_MACH_O_LENGTH_MASK 0x03
+#define BFD_MACH_O_TYPE_MASK 0x0f
+
+/* For a scattered reloc entry the info is contained in r_address. There
+ is no need to discriminate on target endian-ness, since the design was
+ arranged to produce the same layout on both. Scattered relocations are
+ only used for local items, therefore there is no 'extern' field. */
+
+#define BFD_MACH_O_SR_PCREL 0x40000000
+#define BFD_MACH_O_GET_SR_LENGTH(s) (((s) >> 28) & 0x3)
+#define BFD_MACH_O_GET_SR_TYPE(s) (((s) >> 24) & 0x0f)
+#define BFD_MACH_O_GET_SR_ADDRESS(s) ((s) & 0x00ffffff)
+#define BFD_MACH_O_SET_SR_LENGTH(l) (((l) & 0x3) << 28)
+#define BFD_MACH_O_SET_SR_TYPE(t) (((t) & 0xf) << 24)
+#define BFD_MACH_O_SET_SR_ADDRESS(s) ((s) & 0x00ffffff)
+
+struct mach_o_symtab_command_external
+{
+ unsigned char symoff[4]; /* File offset of the symbol table. */
+ unsigned char nsyms[4]; /* Number of symbols. */
+ unsigned char stroff[4]; /* File offset of the string table. */
+ unsigned char strsize[4]; /* String table size. */
+};
+
+struct mach_o_nlist_external
+{
+ unsigned char n_strx[4];
+ unsigned char n_type[1];
+ unsigned char n_sect[1];
+ unsigned char n_desc[2];
+ unsigned char n_value[4];
+};
+#define BFD_MACH_O_NLIST_SIZE 12
+
+struct mach_o_nlist_64_external
+{
+ unsigned char n_strx[4];
+ unsigned char n_type[1];
+ unsigned char n_sect[1];
+ unsigned char n_desc[2];
+ unsigned char n_value[8];
+};
+#define BFD_MACH_O_NLIST_64_SIZE 16
+
+struct mach_o_thread_command_external
+{
+ unsigned char flavour[4];
+ unsigned char count[4];
+};
+
+/* For commands that just have a string or a path. */
+struct mach_o_str_command_external
+{
+ unsigned char str[4];
+};
+
+struct mach_o_dylib_command_external
+{
+ unsigned char name[4];
+ unsigned char timestamp[4];
+ unsigned char current_version[4];
+ unsigned char compatibility_version[4];
+};
+
+struct mach_o_dysymtab_command_external
+{
+ unsigned char ilocalsym[4]; /* Index of. */
+ unsigned char nlocalsym[4]; /* Number of. */
+ unsigned char iextdefsym[4];
+ unsigned char nextdefsym[4];
+ unsigned char iundefsym[4];
+ unsigned char nundefsym[4];
+ unsigned char tocoff[4];
+ unsigned char ntoc[4];
+ unsigned char modtaboff[4];
+ unsigned char nmodtab[4];
+ unsigned char extrefsymoff[4];
+ unsigned char nextrefsyms[4];
+ unsigned char indirectsymoff[4];
+ unsigned char nindirectsyms[4];
+ unsigned char extreloff[4];
+ unsigned char nextrel[4];
+ unsigned char locreloff[4];
+ unsigned char nlocrel[4];
+};
+
+struct mach_o_dylib_module_external
+{
+ unsigned char module_name[4];
+ unsigned char iextdefsym[4];
+ unsigned char nextdefsym[4];
+ unsigned char irefsym[4];
+ unsigned char nrefsym[4];
+ unsigned char ilocalsym[4];
+ unsigned char nlocalsym[4];
+ unsigned char iextrel[4];
+ unsigned char nextrel[4];
+ unsigned char iinit_iterm[4];
+ unsigned char ninit_nterm[4];
+ unsigned char objc_module_info_addr[4];
+ unsigned char objc_module_info_size[4];
+};
+#define BFD_MACH_O_DYLIB_MODULE_SIZE 52
+
+struct mach_o_dylib_module_64_external
+{
+ unsigned char module_name[4];
+ unsigned char iextdefsym[4];
+ unsigned char nextdefsym[4];
+ unsigned char irefsym[4];
+ unsigned char nrefsym[4];
+ unsigned char ilocalsym[4];
+ unsigned char nlocalsym[4];
+ unsigned char iextrel[4];
+ unsigned char nextrel[4];
+ unsigned char iinit_iterm[4];
+ unsigned char ninit_nterm[4];
+ unsigned char objc_module_info_size[4];
+ unsigned char objc_module_info_addr[8];
+};
+#define BFD_MACH_O_DYLIB_MODULE_64_SIZE 56
+
+struct mach_o_dylib_table_of_contents_external
+{
+ unsigned char symbol_index[4];
+ unsigned char module_index[4];
+};
+#define BFD_MACH_O_TABLE_OF_CONTENT_SIZE 8
+
+struct mach_o_linkedit_data_command_external
+{
+ unsigned char dataoff[4];
+ unsigned char datasize[4];
+};
+
+struct mach_o_dyld_info_command_external
+{
+ unsigned char rebase_off[4];
+ unsigned char rebase_size[4];
+ unsigned char bind_off[4];
+ unsigned char bind_size[4];
+ unsigned char weak_bind_off[4];
+ unsigned char weak_bind_size[4];
+ unsigned char lazy_bind_off[4];
+ unsigned char lazy_bind_size[4];
+ unsigned char export_off[4];
+ unsigned char export_size[4];
+};
+
+struct mach_o_version_min_command_external
+{
+ unsigned char version[4];
+ unsigned char reserved[4];
+};
+
+struct mach_o_encryption_info_command_external
+{
+ unsigned char cryptoff[4]; /* File offset of the encrypted area. */
+ unsigned char cryptsize[4]; /* Size of the encrypted area. */
+ unsigned char cryptid[4]; /* Encryption method. */
+};
+
+struct mach_o_fvmlib_command_external
+{
+ unsigned char name[4]; /* Offset of the name. */
+ unsigned char minor_version[4];
+ unsigned char header_addr[4];
+};
+
+struct mach_o_fat_header_external
+{
+ unsigned char magic[4];
+ unsigned char nfat_arch[4]; /* Number of components. */
+};
+
+struct mach_o_fat_arch_external
+{
+ unsigned char cputype[4];
+ unsigned char cpusubtype[4];
+ unsigned char offset[4]; /* File offset of the member. */
+ unsigned char size[4]; /* Size of the member. */
+ unsigned char align[4]; /* Power of 2. */
+};
+
+#endif /* _MACH_O_EXTERNAL_H */
diff --git a/include/mach-o/loader.h b/include/mach-o/loader.h
new file mode 100644
index 000000000..1b9b15efe
--- /dev/null
+++ b/include/mach-o/loader.h
@@ -0,0 +1,360 @@
+/* Mach-O support for BFD.
+ Copyright 2011, 2012
+ Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _MACH_O_LOADER_H
+#define _MACH_O_LOADER_H
+
+/* Constants for header. */
+
+typedef enum bfd_mach_o_mach_header_magic
+{
+ BFD_MACH_O_MH_MAGIC = 0xfeedface,
+ BFD_MACH_O_MH_CIGAM = 0xcefaedfe,
+ BFD_MACH_O_MH_MAGIC_64 = 0xfeedfacf,
+ BFD_MACH_O_MH_CIGAM_64 = 0xcffaedfe
+}
+bfd_mach_o_mach_header_magic;
+
+#define BFD_MACH_O_CPU_IS64BIT 0x1000000
+
+typedef enum bfd_mach_o_cpu_type
+{
+ BFD_MACH_O_CPU_TYPE_VAX = 1,
+ BFD_MACH_O_CPU_TYPE_MC680x0 = 6,
+ BFD_MACH_O_CPU_TYPE_I386 = 7,
+ BFD_MACH_O_CPU_TYPE_MIPS = 8,
+ BFD_MACH_O_CPU_TYPE_MC98000 = 10,
+ BFD_MACH_O_CPU_TYPE_HPPA = 11,
+ BFD_MACH_O_CPU_TYPE_ARM = 12,
+ BFD_MACH_O_CPU_TYPE_MC88000 = 13,
+ BFD_MACH_O_CPU_TYPE_SPARC = 14,
+ BFD_MACH_O_CPU_TYPE_I860 = 15,
+ BFD_MACH_O_CPU_TYPE_ALPHA = 16,
+ BFD_MACH_O_CPU_TYPE_POWERPC = 18,
+ BFD_MACH_O_CPU_TYPE_POWERPC_64 = (BFD_MACH_O_CPU_TYPE_POWERPC | BFD_MACH_O_CPU_IS64BIT),
+ BFD_MACH_O_CPU_TYPE_X86_64 = (BFD_MACH_O_CPU_TYPE_I386 | BFD_MACH_O_CPU_IS64BIT)
+}
+bfd_mach_o_cpu_type;
+
+typedef enum bfd_mach_o_cpu_subtype
+{
+ /* i386. */
+ BFD_MACH_O_CPU_SUBTYPE_X86_ALL = 3,
+
+ /* arm. */
+ BFD_MACH_O_CPU_SUBTYPE_ARM_ALL = 0,
+ BFD_MACH_O_CPU_SUBTYPE_ARM_V4T = 5,
+ BFD_MACH_O_CPU_SUBTYPE_ARM_V6 = 6,
+ BFD_MACH_O_CPU_SUBTYPE_ARM_V5TEJ = 7,
+ BFD_MACH_O_CPU_SUBTYPE_ARM_XSCALE = 8,
+ BFD_MACH_O_CPU_SUBTYPE_ARM_V7 = 9
+}
+bfd_mach_o_cpu_subtype;
+
+typedef enum bfd_mach_o_filetype
+{
+ BFD_MACH_O_MH_OBJECT = 0x01,
+ BFD_MACH_O_MH_EXECUTE = 0x02,
+ BFD_MACH_O_MH_FVMLIB = 0x03,
+ BFD_MACH_O_MH_CORE = 0x04,
+ BFD_MACH_O_MH_PRELOAD = 0x05,
+ BFD_MACH_O_MH_DYLIB = 0x06,
+ BFD_MACH_O_MH_DYLINKER = 0x07,
+ BFD_MACH_O_MH_BUNDLE = 0x08,
+ BFD_MACH_O_MH_DYLIB_STUB = 0x09,
+ BFD_MACH_O_MH_DSYM = 0x0a,
+ BFD_MACH_O_MH_KEXT_BUNDLE = 0x0b
+}
+bfd_mach_o_filetype;
+
+typedef enum bfd_mach_o_header_flags
+{
+ BFD_MACH_O_MH_NOUNDEFS = 0x0000001,
+ BFD_MACH_O_MH_INCRLINK = 0x0000002,
+ BFD_MACH_O_MH_DYLDLINK = 0x0000004,
+ BFD_MACH_O_MH_BINDATLOAD = 0x0000008,
+ BFD_MACH_O_MH_PREBOUND = 0x0000010,
+ BFD_MACH_O_MH_SPLIT_SEGS = 0x0000020,
+ BFD_MACH_O_MH_LAZY_INIT = 0x0000040,
+ BFD_MACH_O_MH_TWOLEVEL = 0x0000080,
+ BFD_MACH_O_MH_FORCE_FLAT = 0x0000100,
+ BFD_MACH_O_MH_NOMULTIDEFS = 0x0000200,
+ BFD_MACH_O_MH_NOFIXPREBINDING = 0x0000400,
+ BFD_MACH_O_MH_PREBINDABLE = 0x0000800,
+ BFD_MACH_O_MH_ALLMODSBOUND = 0x0001000,
+ BFD_MACH_O_MH_SUBSECTIONS_VIA_SYMBOLS = 0x0002000,
+ BFD_MACH_O_MH_CANONICAL = 0x0004000,
+ BFD_MACH_O_MH_WEAK_DEFINES = 0x0008000,
+ BFD_MACH_O_MH_BINDS_TO_WEAK = 0x0010000,
+ BFD_MACH_O_MH_ALLOW_STACK_EXECUTION = 0x0020000,
+ BFD_MACH_O_MH_ROOT_SAFE = 0x0040000,
+ BFD_MACH_O_MH_SETUID_SAFE = 0x0080000,
+ BFD_MACH_O_MH_NO_REEXPORTED_DYLIBS = 0x0100000,
+ BFD_MACH_O_MH_PIE = 0x0200000,
+ BFD_MACH_O_MH_DEAD_STRIPPABLE_DYLIB = 0x0400000,
+ BFD_MACH_O_MH_HAS_TLV_DESCRIPTORS = 0x0800000,
+ BFD_MACH_O_MH_NO_HEAP_EXECUTION = 0x1000000
+}
+bfd_mach_o_header_flags;
+
+/* Load command constants. */
+#define BFD_MACH_O_LC_REQ_DYLD 0x80000000
+
+typedef enum bfd_mach_o_load_command_type
+{
+ BFD_MACH_O_LC_SEGMENT = 0x1, /* File segment to be mapped. */
+ BFD_MACH_O_LC_SYMTAB = 0x2, /* Link-edit stab symbol table info (obsolete). */
+ BFD_MACH_O_LC_SYMSEG = 0x3, /* Link-edit gdb symbol table info. */
+ BFD_MACH_O_LC_THREAD = 0x4, /* Thread. */
+ BFD_MACH_O_LC_UNIXTHREAD = 0x5, /* UNIX thread (includes a stack). */
+ BFD_MACH_O_LC_LOADFVMLIB = 0x6, /* Load a fixed VM shared library. */
+ BFD_MACH_O_LC_IDFVMLIB = 0x7, /* Fixed VM shared library id. */
+ BFD_MACH_O_LC_IDENT = 0x8, /* Object identification information (obsolete). */
+ BFD_MACH_O_LC_FVMFILE = 0x9, /* Fixed VM file inclusion. */
+ BFD_MACH_O_LC_PREPAGE = 0xa, /* Prepage command (internal use). */
+ BFD_MACH_O_LC_DYSYMTAB = 0xb, /* Dynamic link-edit symbol table info. */
+ BFD_MACH_O_LC_LOAD_DYLIB = 0xc, /* Load a dynamically linked shared library. */
+ BFD_MACH_O_LC_ID_DYLIB = 0xd, /* Dynamically linked shared lib identification. */
+ BFD_MACH_O_LC_LOAD_DYLINKER = 0xe, /* Load a dynamic linker. */
+ BFD_MACH_O_LC_ID_DYLINKER = 0xf, /* Dynamic linker identification. */
+ BFD_MACH_O_LC_PREBOUND_DYLIB = 0x10, /* Modules prebound for a dynamically. */
+ BFD_MACH_O_LC_ROUTINES = 0x11, /* Image routines. */
+ BFD_MACH_O_LC_SUB_FRAMEWORK = 0x12, /* Sub framework. */
+ BFD_MACH_O_LC_SUB_UMBRELLA = 0x13, /* Sub umbrella. */
+ BFD_MACH_O_LC_SUB_CLIENT = 0x14, /* Sub client. */
+ BFD_MACH_O_LC_SUB_LIBRARY = 0x15, /* Sub library. */
+ BFD_MACH_O_LC_TWOLEVEL_HINTS = 0x16, /* Two-level namespace lookup hints. */
+ BFD_MACH_O_LC_PREBIND_CKSUM = 0x17, /* Prebind checksum. */
+ /* Load a dynamically linked shared library that is allowed to be
+ missing (weak). */
+ BFD_MACH_O_LC_LOAD_WEAK_DYLIB = 0x18,
+ BFD_MACH_O_LC_SEGMENT_64 = 0x19, /* 64-bit segment of this file to be
+ mapped. */
+ BFD_MACH_O_LC_ROUTINES_64 = 0x1a, /* Address of the dyld init routine
+ in a dylib. */
+ BFD_MACH_O_LC_UUID = 0x1b, /* 128-bit UUID of the executable. */
+ BFD_MACH_O_LC_RPATH = 0x1c, /* Run path addiions. */
+ BFD_MACH_O_LC_CODE_SIGNATURE = 0x1d, /* Local of code signature. */
+ BFD_MACH_O_LC_SEGMENT_SPLIT_INFO = 0x1e, /* Local of info to split seg. */
+ BFD_MACH_O_LC_REEXPORT_DYLIB = 0x1f, /* Load and re-export lib. */
+ BFD_MACH_O_LC_LAZY_LOAD_DYLIB = 0x20, /* Delay load of lib until use. */
+ BFD_MACH_O_LC_ENCRYPTION_INFO = 0x21, /* Encrypted segment info. */
+ BFD_MACH_O_LC_DYLD_INFO = 0x22, /* Compressed dyld information. */
+ BFD_MACH_O_LC_LOAD_UPWARD_DYLIB = 0x23, /* Load upward dylib. */
+ BFD_MACH_O_LC_VERSION_MIN_MACOSX = 0x24, /* Minimal MacOSX version. */
+ BFD_MACH_O_LC_VERSION_MIN_IPHONEOS = 0x25, /* Minimal IOS version. */
+ BFD_MACH_O_LC_FUNCTION_STARTS = 0x26, /* Compressed table of func start. */
+ BFD_MACH_O_LC_DYLD_ENVIRONMENT = 0x27 /* Env variable string for dyld. */
+}
+bfd_mach_o_load_command_type;
+
+/* Section constants. */
+/* Constants for the type of a section. */
+
+typedef enum bfd_mach_o_section_type
+{
+ /* Regular section. */
+ BFD_MACH_O_S_REGULAR = 0x0,
+
+ /* Zero fill on demand section. */
+ BFD_MACH_O_S_ZEROFILL = 0x1,
+
+ /* Section with only literal C strings. */
+ BFD_MACH_O_S_CSTRING_LITERALS = 0x2,
+
+ /* Section with only 4 byte literals. */
+ BFD_MACH_O_S_4BYTE_LITERALS = 0x3,
+
+ /* Section with only 8 byte literals. */
+ BFD_MACH_O_S_8BYTE_LITERALS = 0x4,
+
+ /* Section with only pointers to literals. */
+ BFD_MACH_O_S_LITERAL_POINTERS = 0x5,
+
+ /* For the two types of symbol pointers sections and the symbol stubs
+ section they have indirect symbol table entries. For each of the
+ entries in the section the indirect symbol table entries, in
+ corresponding order in the indirect symbol table, start at the index
+ stored in the reserved1 field of the section structure. Since the
+ indirect symbol table entries correspond to the entries in the
+ section the number of indirect symbol table entries is inferred from
+ the size of the section divided by the size of the entries in the
+ section. For symbol pointers sections the size of the entries in
+ the section is 4 bytes and for symbol stubs sections the byte size
+ of the stubs is stored in the reserved2 field of the section
+ structure. */
+
+ /* Section with only non-lazy symbol pointers. */
+ BFD_MACH_O_S_NON_LAZY_SYMBOL_POINTERS = 0x6,
+
+ /* Section with only lazy symbol pointers. */
+ BFD_MACH_O_S_LAZY_SYMBOL_POINTERS = 0x7,
+
+ /* Section with only symbol stubs, byte size of stub in the reserved2
+ field. */
+ BFD_MACH_O_S_SYMBOL_STUBS = 0x8,
+
+ /* Section with only function pointers for initialization. */
+ BFD_MACH_O_S_MOD_INIT_FUNC_POINTERS = 0x9,
+
+ /* Section with only function pointers for termination. */
+ BFD_MACH_O_S_MOD_FINI_FUNC_POINTERS = 0xa,
+
+ /* Section contains symbols that are coalesced by the linkers. */
+ BFD_MACH_O_S_COALESCED = 0xb,
+
+ /* Zero fill on demand section (possibly larger than 4 GB). */
+ BFD_MACH_O_S_GB_ZEROFILL = 0xc,
+
+ /* Section with only pairs of function pointers for interposing. */
+ BFD_MACH_O_S_INTERPOSING = 0xd,
+
+ /* Section with only 16 byte literals. */
+ BFD_MACH_O_S_16BYTE_LITERALS = 0xe,
+
+ /* Section contains DTrace Object Format. */
+ BFD_MACH_O_S_DTRACE_DOF = 0xf,
+
+ /* Section with only lazy symbol pointers to lazy loaded dylibs. */
+ BFD_MACH_O_S_LAZY_DYLIB_SYMBOL_POINTERS = 0x10
+}
+bfd_mach_o_section_type;
+
+/* The flags field of a section structure is separated into two parts a section
+ type and section attributes. The section types are mutually exclusive (it
+ can only have one type) but the section attributes are not (it may have more
+ than one attribute). */
+
+#define BFD_MACH_O_SECTION_TYPE_MASK 0x000000ff
+
+/* Constants for the section attributes part of the flags field of a section
+ structure. */
+#define BFD_MACH_O_SECTION_ATTRIBUTES_MASK 0xffffff00
+/* System setable attributes. */
+#define BFD_MACH_O_SECTION_ATTRIBUTES_SYS 0x00ffff00
+/* User attributes. */
+#define BFD_MACH_O_SECTION_ATTRIBUTES_USR 0xff000000
+
+typedef enum bfd_mach_o_section_attribute
+{
+ /* Section has no specified attibutes. */
+ BFD_MACH_O_S_ATTR_NONE = 0,
+
+ /* Section has local relocation entries. */
+ BFD_MACH_O_S_ATTR_LOC_RELOC = 0x00000100,
+
+ /* Section has external relocation entries. */
+ BFD_MACH_O_S_ATTR_EXT_RELOC = 0x00000200,
+
+ /* Section contains some machine instructions. */
+ BFD_MACH_O_S_ATTR_SOME_INSTRUCTIONS = 0x00000400,
+
+ /* A debug section. */
+ BFD_MACH_O_S_ATTR_DEBUG = 0x02000000,
+
+ /* Used with i386 stubs. */
+ BFD_MACH_O_S_SELF_MODIFYING_CODE = 0x04000000,
+
+ /* Blocks are live if they reference live blocks. */
+ BFD_MACH_O_S_ATTR_LIVE_SUPPORT = 0x08000000,
+
+ /* No dead stripping. */
+ BFD_MACH_O_S_ATTR_NO_DEAD_STRIP = 0x10000000,
+
+ /* Section symbols can be stripped in files with MH_DYLDLINK flag. */
+ BFD_MACH_O_S_ATTR_STRIP_STATIC_SYMS = 0x20000000,
+
+ /* Section contains coalesced symbols that are not to be in the TOC of an
+ archive. */
+ BFD_MACH_O_S_ATTR_NO_TOC = 0x40000000,
+
+ /* Section contains only true machine instructions. */
+ BFD_MACH_O_S_ATTR_PURE_INSTRUCTIONS = 0x80000000
+}
+bfd_mach_o_section_attribute;
+
+/* Symbol constants. */
+
+/* Symbol n_type values. */
+#define BFD_MACH_O_N_STAB 0xe0 /* If any of these bits set, a symbolic debugging entry. */
+#define BFD_MACH_O_N_PEXT 0x10 /* Private external symbol bit. */
+#define BFD_MACH_O_N_TYPE 0x0e /* Mask for the type bits. */
+#define BFD_MACH_O_N_EXT 0x01 /* External symbol bit, set for external symbols. */
+#define BFD_MACH_O_N_UNDF 0x00 /* Undefined, n_sect == NO_SECT. */
+#define BFD_MACH_O_N_ABS 0x02 /* Absolute, n_sect == NO_SECT. */
+#define BFD_MACH_O_N_INDR 0x0a /* Indirect. */
+#define BFD_MACH_O_N_PBUD 0x0c /* Prebound undefined (defined in a dylib). */
+#define BFD_MACH_O_N_SECT 0x0e /* Defined in section number n_sect. */
+
+#define BFD_MACH_O_NO_SECT 0 /* Symbol not in any section of the image. */
+
+/* Symbol n_desc reference flags. */
+#define BFD_MACH_O_REFERENCE_MASK 0x0f
+#define BFD_MACH_O_REFERENCE_FLAG_UNDEFINED_NON_LAZY 0x00
+#define BFD_MACH_O_REFERENCE_FLAG_UNDEFINED_LAZY 0x01
+#define BFD_MACH_O_REFERENCE_FLAG_DEFINED 0x02
+#define BFD_MACH_O_REFERENCE_FLAG_PRIVATE_DEFINED 0x03
+#define BFD_MACH_O_REFERENCE_FLAG_PRIVATE_UNDEFINED_NON_LAZY 0x04
+#define BFD_MACH_O_REFERENCE_FLAG_PRIVATE_UNDEFINED_LAZY 0x05
+
+#define BFD_MACH_O_REFERENCED_DYNAMICALLY 0x10
+#define BFD_MACH_O_N_DESC_DISCARDED 0x20
+#define BFD_MACH_O_N_NO_DEAD_STRIP 0x20
+#define BFD_MACH_O_N_WEAK_REF 0x40
+#define BFD_MACH_O_N_WEAK_DEF 0x80
+
+#define BFD_MACH_O_INDIRECT_SYM_LOCAL 0x80000000
+#define BFD_MACH_O_INDIRECT_SYM_ABS 0x40000000
+
+/* Thread constants. */
+
+typedef enum bfd_mach_o_ppc_thread_flavour
+{
+ BFD_MACH_O_PPC_THREAD_STATE = 1,
+ BFD_MACH_O_PPC_FLOAT_STATE = 2,
+ BFD_MACH_O_PPC_EXCEPTION_STATE = 3,
+ BFD_MACH_O_PPC_VECTOR_STATE = 4,
+ BFD_MACH_O_PPC_THREAD_STATE64 = 5,
+ BFD_MACH_O_PPC_EXCEPTION_STATE64 = 6,
+ BFD_MACH_O_PPC_THREAD_STATE_NONE = 7
+}
+bfd_mach_o_ppc_thread_flavour;
+
+/* Defined in <mach/i386/thread_status.h> */
+typedef enum bfd_mach_o_i386_thread_flavour
+{
+ BFD_MACH_O_x86_THREAD_STATE32 = 1,
+ BFD_MACH_O_x86_FLOAT_STATE32 = 2,
+ BFD_MACH_O_x86_EXCEPTION_STATE32 = 3,
+ BFD_MACH_O_x86_THREAD_STATE64 = 4,
+ BFD_MACH_O_x86_FLOAT_STATE64 = 5,
+ BFD_MACH_O_x86_EXCEPTION_STATE64 = 6,
+ BFD_MACH_O_x86_THREAD_STATE = 7,
+ BFD_MACH_O_x86_FLOAT_STATE = 8,
+ BFD_MACH_O_x86_EXCEPTION_STATE = 9,
+ BFD_MACH_O_x86_DEBUG_STATE32 = 10,
+ BFD_MACH_O_x86_DEBUG_STATE64 = 11,
+ BFD_MACH_O_x86_DEBUG_STATE = 12,
+ BFD_MACH_O_x86_THREAD_STATE_NONE = 13
+}
+bfd_mach_o_i386_thread_flavour;
+
+#endif /* _MACH_O_LOADER_H */
diff --git a/include/mach-o/reloc.h b/include/mach-o/reloc.h
new file mode 100644
index 000000000..bab31efeb
--- /dev/null
+++ b/include/mach-o/reloc.h
@@ -0,0 +1,33 @@
+/* Mach-O support for BFD.
+ Copyright 2011, 2012
+ Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _MACH_O_RELOC_H
+#define _MACH_O_RELOC_H
+
+/* Generic relocation types (used by i386). */
+#define BFD_MACH_O_GENERIC_RELOC_VANILLA 0
+#define BFD_MACH_O_GENERIC_RELOC_PAIR 1
+#define BFD_MACH_O_GENERIC_RELOC_SECTDIFF 2
+#define BFD_MACH_O_GENERIC_RELOC_PB_LA_PTR 3
+#define BFD_MACH_O_GENERIC_RELOC_LOCAL_SECTDIFF 4
+#define BFD_MACH_O_GENERIC_RELOC_TLV 5
+
+#endif /* _MACH_O_RELOC_H */
diff --git a/include/mach-o/x86-64.h b/include/mach-o/x86-64.h
new file mode 100644
index 000000000..d06bc26a7
--- /dev/null
+++ b/include/mach-o/x86-64.h
@@ -0,0 +1,37 @@
+/* Mach-O support for BFD.
+ Copyright 2011
+ Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _MACH_O_X86_64_H
+#define _MACH_O_X86_64_H
+
+/* X86-64 relocations. */
+#define BFD_MACH_O_X86_64_RELOC_UNSIGNED 0 /* Absolute addresses. */
+#define BFD_MACH_O_X86_64_RELOC_SIGNED 1 /* 32-bit disp. */
+#define BFD_MACH_O_X86_64_RELOC_BRANCH 2 /* 32-bit pcrel disp. */
+#define BFD_MACH_O_X86_64_RELOC_GOT_LOAD 3 /* Movq load of a GOT entry. */
+#define BFD_MACH_O_X86_64_RELOC_GOT 4 /* GOT reference. */
+#define BFD_MACH_O_X86_64_RELOC_SUBTRACTOR 5 /* Symbol difference. */
+#define BFD_MACH_O_X86_64_RELOC_SIGNED_1 6 /* 32-bit signed disp -1. */
+#define BFD_MACH_O_X86_64_RELOC_SIGNED_2 7 /* 32-bit signed disp -2. */
+#define BFD_MACH_O_X86_64_RELOC_SIGNED_4 8 /* 32-bit signed disp -4. */
+#define BFD_MACH_O_X86_64_RELOC_TLV 9 /* Thread local variables. */
+
+#endif /* _MACH_O_X86_64_H */
diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog
index 1091973b2..af70340d6 100644
--- a/include/opcode/ChangeLog
+++ b/include/opcode/ChangeLog
@@ -1,48 +1,3 @@
-2012-07-31 Chao-Ying Fu <fu@mips.com>
- Catherine Moore <clm@codesourcery.com>
- Maciej W. Rozycki <macro@codesourcery.com>
-
- * mips.h: Document microMIPS DSP ASE usage.
- (MICROMIPSOP_MASK_DSPACC, MICROMIPSOP_SH_DSPACC): Update for
- microMIPS DSP ASE support.
- (MICROMIPSOP_MASK_DSPSFT, MICROMIPSOP_SH_DSPSFT): Likewise.
- (MICROMIPSOP_MASK_SA3, MICROMIPSOP_SH_SA3): Likewise.
- (MICROMIPSOP_MASK_SA4, MICROMIPSOP_SH_SA4): Likewise.
- (MICROMIPSOP_MASK_IMM8, MICROMIPSOP_SH_IMM8): Likewise.
- (MICROMIPSOP_MASK_IMM10, MICROMIPSOP_SH_IMM10): Likewise.
- (MICROMIPSOP_MASK_WRDSP, MICROMIPSOP_SH_WRDSP): Likewise.
- (MICROMIPSOP_MASK_BP, MICROMIPSOP_SH_BP): Likewise.
-
-2012-07-06 Maciej W. Rozycki <macro@codesourcery.com>
-
- * mips.h: Fix a typo in description.
-
-2012-06-07 Georg-Johann Lay <avr@gjlay.de>
-
- * avr.h: (AVR_ISA_XCH): New define.
- (AVR_ISA_XMEGA): Use it.
- (XCH, LAS, LAT, LAC): New XMEGA opcodes.
-
-2012-05-15 James Murray <jsm@jsm-net.demon.co.uk>
-
- * m68hc11.h: Add XGate definitions.
- (struct m68hc11_opcode): Add xg_mask field.
-
-2012-05-14 Catherine Moore <clm@codesourcery.com>
- Maciej W. Rozycki <macro@codesourcery.com>
- Rhonda Wittels <rhonda@codesourcery.com>
-
- * ppc.h (PPC_OPCODE_VLE): New definition.
- (PPC_OP_SA): New macro.
- (PPC_OP_SE_VLE): New macro.
- (PPC_OP): Use a variable shift amount.
- (powerpc_operand): Update comments.
- (PPC_OPSHIFT_INV): New macro.
- (PPC_OPERAND_CR): Replace with...
- (PPC_OPERAND_CR_BIT): ...this and
- (PPC_OPERAND_CR_REG): ...this.
-
-
2012-05-03 Sean Keys <skeys@ipdatasys.com>
* xgate.h: Header file for XGATE assembler.
diff --git a/include/opcode/avr.h b/include/opcode/avr.h
index 6e86c07ba..a6d7b478d 100644
--- a/include/opcode/avr.h
+++ b/include/opcode/avr.h
@@ -1,6 +1,6 @@
/* Opcode table for the Atmel AVR micro controllers.
- Copyright 2000, 2001, 2004, 2006, 2008, 2010, 2012 Free Software Foundation, Inc.
+ Copyright 2000, 2001, 2004, 2006, 2008, 2010 Free Software Foundation, Inc.
Contributed by Denis Chertykov <denisc@overta.ru>
This program is free software; you can redistribute it and/or modify
@@ -33,7 +33,6 @@
#define AVR_ISA_MOVW 0x1000 /* device has MOVW */
#define AVR_ISA_SPMX 0x2000 /* device has SPM Z[+] */
#define AVR_ISA_DES 0x4000 /* device has DES */
-#define AVR_ISA_XCH 0x8000 /* device has XCH, LAC, LAS, LAT */
#define AVR_ISA_TINY1 (AVR_ISA_1200 | AVR_ISA_LPM)
#define AVR_ISA_2xxx (AVR_ISA_TINY1 | AVR_ISA_SRAM)
@@ -53,7 +52,7 @@
#define AVR_ISA_M323 (AVR_ISA_M161 | AVR_ISA_BRK)
#define AVR_ISA_M128 (AVR_ISA_M323 | AVR_ISA_ELPM | AVR_ISA_ELPMX)
#define AVR_ISA_M256 (AVR_ISA_M128 | AVR_ISA_EIND)
-#define AVR_ISA_XMEGA (AVR_ISA_M256 | AVR_ISA_SPMX | AVR_ISA_DES | AVR_ISA_XCH)
+#define AVR_ISA_XMEGA (AVR_ISA_M256 | AVR_ISA_SPMX | AVR_ISA_DES)
#define AVR_ISA_AVR1 AVR_ISA_TINY1
#define AVR_ISA_AVR2 AVR_ISA_2xxx
@@ -125,6 +124,7 @@
0x0001...0x00ff (255) (known to be decoded as `nop' by the old core)
"100100xxxxxxx011" (128) 0x9[0-3][0-9a-f][3b]
"100100xxxxxx1000" (64) 0x9[0-3][0-9a-f]8
+ "1001001xxxxx01xx" (128) 0x9[23][0-9a-f][4-7]
"1001010xxxxx0100" (32) 0x9[45][0-9a-f]4
"1001010x001x1001" (4) 0x9[45][23]9
"1001010x01xx1001" (8) 0x9[45][4-7]9
@@ -265,12 +265,6 @@ AVR_INSN (push, "r", "1001001rrrrr1111", 1, AVR_ISA_2xxx, 0x920f)
AVR_INSN (ror, "r", "1001010rrrrr0111", 1, AVR_ISA_1200, 0x9407)
AVR_INSN (swap, "r", "1001010rrrrr0010", 1, AVR_ISA_1200, 0x9402)
- /* Atomic memory operations for XMEGA. List before `sts'. */
-AVR_INSN (xch, "z,r", "1001001rrrrr0100", 1, AVR_ISA_XCH, 0x9204)
-AVR_INSN (las, "z,r", "1001001rrrrr0101", 1, AVR_ISA_XCH, 0x9205)
-AVR_INSN (lac, "z,r", "1001001rrrrr0110", 1, AVR_ISA_XCH, 0x9206)
-AVR_INSN (lat, "z,r", "1001001rrrrr0111", 1, AVR_ISA_XCH, 0x9207)
-
/* Known to be decoded as `nop' by the old core. */
AVR_INSN (movw, "v,v", "00000001ddddrrrr", 1, AVR_ISA_MOVW, 0x0100)
AVR_INSN (muls, "d,d", "00000010ddddrrrr", 1, AVR_ISA_MUL, 0x0200)
diff --git a/include/opcode/m68hc11.h b/include/opcode/m68hc11.h
index 1a002008c..83f5a9a65 100644
--- a/include/opcode/m68hc11.h
+++ b/include/opcode/m68hc11.h
@@ -1,6 +1,5 @@
/* m68hc11.h -- Header file for Motorola 68HC11 & 68HC12 opcode table
- Copyright 1999, 2000, 2002, 2003, 2010, 2012
- Free Software Foundation, Inc.
+ Copyright 1999, 2000, 2002, 2003, 2010 Free Software Foundation, Inc.
Written by Stephane Carrez (stcarrez@nerim.fr)
This file is part of GDB, GAS, and the GNU binutils.
@@ -38,7 +37,8 @@
of the M6811_INIT register. At init time, the I/O registers are
mapped at 0x1000. Address of registers is then:
- 0x1000 + M6811_xxx. */
+ 0x1000 + M6811_xxx
+*/
#define M6811_PORTA 0x00 /* Port A register */
#define M6811__RES1 0x01 /* Unused/Reserved */
#define M6811_PIOC 0x02 /* Parallel I/O Control register */
@@ -364,26 +364,6 @@
#define M6812_INDEXED 0x20000000 /* n,r n = 5, 9 or 16-bits */
#define M6812_OP_IDX_P2 0x40000000
-/* XGATE defines.
- These overlap with HC11/12 as above but not used at the same time. */
-#define M68XG_OP_NONE 0x0001
-#define M68XG_OP_IMM3 0x0002
-#define M68XG_OP_R 0x0004
-#define M68XG_OP_R_R 0x0008
-#define M68XG_OP_R_IMM4 0x0010
-#define M68XG_OP_R_R_R 0x0020
-#define M68XG_OP_REL9 0x0040
-#define M68XG_OP_REL10 0x0080
-#define M68XG_OP_R_R_OFFS5 0x0100
-#define M68XG_OP_RD_RB_RI 0x0200
-#define M68XG_OP_RD_RB_RIp 0x0400
-#define M68XG_OP_RD_RB_mRI 0x0800
-#define M68XG_OP_R_IMM8 0x1000
-#define M68XG_OP_R_IMM16 0x2000
-#define M68XG_OP_REG 0x4000 /* Register operand 1. */
-#define M68XG_OP_REG_2 0x8000 /* Register operand 2. */
-#define M68XG_MAX_OPERANDS 3 /* Max operands of triadic r1, r2, r3. */
-
/* Markers to identify some instructions. */
#define M6812_OP_EXG_MARKER 0x01000000 /* exg r1,r2 */
#define M6812_OP_TFR_MARKER 0x02000000 /* tfr r1,r2 */
@@ -394,43 +374,35 @@
#define M6812_OP_IBCC_MARKER 0x02000000 /* ibeq/ibne */
#define M6812_OP_TBCC_MARKER 0x01000000
-/* XGATE markers. */
-#define M68XG_OP_B_MARKER 0x04000000 /* bXX rel9 */
-#define M68XG_OP_BRA_MARKER 0x02000000 /* bra rel10 */
-
#define M6812_OP_TRAP_ID 0x80000000 /* trap #N */
#define M6811_OP_HIGH_ADDR 0x01000000 /* Used internally by gas. */
#define M6811_OP_LOW_ADDR 0x02000000
-#define M68HC12_BANK_VIRT 0x010000
-#define M68HC12_BANK_MASK 0x00003fff
-#define M68HC12_BANK_BASE 0x00008000
-#define M68HC12_BANK_SHIFT 14
-#define M68HC12_BANK_PAGE_MASK 0x0ff
+#define M68HC12_BANK_VIRT 0x010000
+#define M68HC12_BANK_MASK 0x00003fff
+#define M68HC12_BANK_BASE 0x00008000
+#define M68HC12_BANK_SHIFT 14
+#define M68HC12_BANK_PAGE_MASK 0x0ff
/* CPU identification. */
#define cpu6811 0x01
#define cpu6812 0x02
#define cpu6812s 0x04
-#define cpu9s12x 0x08 /* 9S12X main cpu. */
-#define cpuxgate 0x10 /* The XGATE module itself. */
/* The opcode table is an array of struct m68hc11_opcode. */
-struct m68hc11_opcode
-{
- const char * name; /* Op-code name. */
+struct m68hc11_opcode {
+ const char* name; /* Op-code name */
long format;
unsigned char size;
- unsigned int opcode;
+ unsigned char opcode;
unsigned char cycles_low;
unsigned char cycles_high;
unsigned char set_flags_mask;
unsigned char clr_flags_mask;
unsigned char chg_flags_mask;
unsigned char arch;
- unsigned int xg_mask; /* Mask with zero in register place for xgate. */
};
/* Alias definition for 68HC12. */
diff --git a/include/opcode/mips.h b/include/opcode/mips.h
index 857fc7173..fb9094c26 100644
--- a/include/opcode/mips.h
+++ b/include/opcode/mips.h
@@ -1494,24 +1494,6 @@ extern const int bfd_mips16_num_opcodes;
#define MICROMIPSOP_MASK_IMMY 0x1ff
#define MICROMIPSOP_SH_IMMY 1
-/* MIPS DSP ASE */
-#define MICROMIPSOP_MASK_DSPACC 0x3
-#define MICROMIPSOP_SH_DSPACC 14
-#define MICROMIPSOP_MASK_DSPSFT 0x3f
-#define MICROMIPSOP_SH_DSPSFT 16
-#define MICROMIPSOP_MASK_SA3 0x7
-#define MICROMIPSOP_SH_SA3 13
-#define MICROMIPSOP_MASK_SA4 0xf
-#define MICROMIPSOP_SH_SA4 12
-#define MICROMIPSOP_MASK_IMM8 0xff
-#define MICROMIPSOP_SH_IMM8 13
-#define MICROMIPSOP_MASK_IMM10 0x3ff
-#define MICROMIPSOP_SH_IMM10 16
-#define MICROMIPSOP_MASK_WRDSP 0x3f
-#define MICROMIPSOP_SH_WRDSP 14
-#define MICROMIPSOP_MASK_BP 0x3
-#define MICROMIPSOP_SH_BP 14
-
/* Placeholders for fields that only exist in the traditional 32-bit
instruction encoding; see the comment above for details. */
#define MICROMIPSOP_MASK_CODE20 0
@@ -1526,12 +1508,28 @@ extern const int bfd_mips16_num_opcodes;
#define MICROMIPSOP_SH_VECBYTE 0
#define MICROMIPSOP_MASK_VECALIGN 0
#define MICROMIPSOP_SH_VECALIGN 0
+#define MICROMIPSOP_MASK_DSPACC 0
+#define MICROMIPSOP_SH_DSPACC 0
#define MICROMIPSOP_MASK_DSPACC_S 0
#define MICROMIPSOP_SH_DSPACC_S 0
+#define MICROMIPSOP_MASK_DSPSFT 0
+#define MICROMIPSOP_SH_DSPSFT 0
#define MICROMIPSOP_MASK_DSPSFT_7 0
#define MICROMIPSOP_SH_DSPSFT_7 0
+#define MICROMIPSOP_MASK_SA3 0
+#define MICROMIPSOP_SH_SA3 0
+#define MICROMIPSOP_MASK_SA4 0
+#define MICROMIPSOP_SH_SA4 0
+#define MICROMIPSOP_MASK_IMM8 0
+#define MICROMIPSOP_SH_IMM8 0
+#define MICROMIPSOP_MASK_IMM10 0
+#define MICROMIPSOP_SH_IMM10 0
+#define MICROMIPSOP_MASK_WRDSP 0
+#define MICROMIPSOP_SH_WRDSP 0
#define MICROMIPSOP_MASK_RDDSP 0
#define MICROMIPSOP_SH_RDDSP 0
+#define MICROMIPSOP_MASK_BP 0
+#define MICROMIPSOP_SH_BP 0
#define MICROMIPSOP_MASK_MT_U 0
#define MICROMIPSOP_SH_MT_U 0
#define MICROMIPSOP_MASK_MT_H 0
@@ -1648,7 +1646,7 @@ extern const int bfd_mips16_num_opcodes;
"y" 5-bit source 3 register for ALNV.PS (MICROMIPSOP_*_RS3)
"z" must be zero register
"C" 23-bit coprocessor function code (MICROMIPSOP_*_COPZ)
- "B" 10-bit syscall/wait function code (MICROMIPSOP_*_CODE10)
+ "B" 8-bit syscall/wait function code (MICROMIPSOP_*_CODE10)
"K" 5-bit Hardware Register (RDHWR instruction) (MICROMIPSOP_*_RS)
"+A" 5-bit INS/EXT/DINS/DEXT/DINSM/DEXTM position, which becomes
@@ -1704,18 +1702,6 @@ extern const int bfd_mips16_num_opcodes;
"f" 32-bit floating point constant
"l" 32-bit floating point constant in .lit4
- DSP ASE usage:
- "2" 2-bit unsigned immediate for byte align (MICROMIPSOP_*_BP)
- "3" 3-bit unsigned immediate (MICROMIPSOP_*_SA3)
- "4" 4-bit unsigned immediate (MICROMIPSOP_*_SA4)
- "5" 8-bit unsigned immediate (MICROMIPSOP_*_IMM8)
- "6" 5-bit unsigned immediate (MICROMIPSOP_*_RS)
- "7" 2-bit DSP accumulator register (MICROMIPSOP_*_DSPACC)
- "8" 6-bit unsigned immediate (MICROMIPSOP_*_WRDSP)
- "0" 6-bit signed immediate (MICROMIPSOP_*_DSPSFT)
- "@" 10-bit signed immediate (MICROMIPSOP_*_IMM10)
- "^" 5-bit unsigned immediate (MICROMIPSOP_*_RD)
-
Other:
"()" parens surrounding optional value
"," separates operands
@@ -1723,8 +1709,8 @@ extern const int bfd_mips16_num_opcodes;
"m" start of microMIPS extension sequence
Characters used so far, for quick reference when adding more:
- "12345678 0"
- "<>(),+.@\^|~"
+ "1234567890"
+ "<>(),+.\|~"
"ABCDEFGHI KLMN RST V "
"abcd f hijklmnopqrstuvw yz"
diff --git a/include/opcode/ppc.h b/include/opcode/ppc.h
index 2e789d6ff..e672502e3 100644
--- a/include/opcode/ppc.h
+++ b/include/opcode/ppc.h
@@ -65,8 +65,6 @@ struct powerpc_opcode
instructions. */
extern const struct powerpc_opcode powerpc_opcodes[];
extern const int powerpc_num_opcodes;
-extern const struct powerpc_opcode vle_opcodes[];
-extern const int vle_num_opcodes;
/* Values defined for the flags field of a struct powerpc_opcode. */
@@ -185,20 +183,8 @@ extern const int vle_num_opcodes;
/* Opcode is supported by Thread management APU */
#define PPC_OPCODE_TMR 0x800000000ull
-/* Opcode which is supported by the VLE extension. */
-#define PPC_OPCODE_VLE 0x1000000000ull
-
/* A macro to extract the major opcode from an instruction. */
#define PPC_OP(i) (((i) >> 26) & 0x3f)
-
-/* A macro to determine if the instruction is a 2-byte VLE insn. */
-#define PPC_OP_SE_VLE(m) ((m) <= 0xffff)
-
-/* A macro to extract the major opcode from a VLE instruction. */
-#define VLE_OP(i,m) (((i) >> ((m) <= 0xffff ? 10 : 26)) & 0x3f)
-
-/* A macro to convert a VLE opcode to a VLE opcode segment. */
-#define VLE_OP_TO_SEG(i) ((i) >> 1)
/* The operands table is an array of struct powerpc_operand. */
@@ -207,22 +193,16 @@ struct powerpc_operand
/* A bitmask of bits in the operand. */
unsigned int bitm;
- /* The shift operation to be applied to the operand. No shift
- is made if this is zero. For positive values, the operand
- is shifted left by SHIFT. For negative values, the operand
- is shifted right by -SHIFT. Use PPC_OPSHIFT_INV to indicate
- that BITM and SHIFT cannot be used to determine where the
- operand goes in the insn. */
+ /* How far the operand is left shifted in the instruction.
+ -1 to indicate that BITM and SHIFT cannot be used to determine
+ where the operand goes in the insn. */
int shift;
/* Insertion function. This is used by the assembler. To insert an
operand value into an instruction, check this field.
If it is NULL, execute
- if (o->shift >= 0)
- i |= (op & o->bitm) << o->shift;
- else
- i |= (op & o->bitm) >> -o->shift;
+ i |= (op & o->bitm) << o->shift;
(i is the instruction which we are filling in, o is a pointer to
this structure, and op is the operand value).
@@ -240,10 +220,7 @@ struct powerpc_operand
extract this operand type from an instruction, check this field.
If it is NULL, compute
- if (o->shift >= 0)
- op = (i >> o->shift) & o->bitm;
- else
- op = (i << -o->shift) & o->bitm;
+ op = (i >> o->shift) & o->bitm;
if ((o->flags & PPC_OPERAND_SIGNED) != 0)
sign_extend (op);
(i is the instruction, o is a pointer to this structure, and op
@@ -267,11 +244,6 @@ struct powerpc_operand
extern const struct powerpc_operand powerpc_operands[];
extern const unsigned int num_powerpc_operands;
-/* Use with the shift field of a struct powerpc_operand to indicate
- that BITM and SHIFT cannot be used to determine where the operand
- goes in the insn. */
-#define PPC_OPSHIFT_INV (-1 << 31)
-
/* Values defined for the flags field of a struct powerpc_operand. */
/* This operand takes signed values. */
@@ -305,7 +277,7 @@ extern const unsigned int num_powerpc_operands;
cr4 4 cr5 5 cr6 6 cr7 7
These may be combined arithmetically, as in cr2*4+gt. These are
only supported on the PowerPC, not the POWER. */
-#define PPC_OPERAND_CR_BIT (0x10)
+#define PPC_OPERAND_CR (0x10)
/* This operand names a register. The disassembler uses this to print
register names with a leading 'r'. */
@@ -370,9 +342,6 @@ extern const unsigned int num_powerpc_operands;
/* This operand names a vector-scalar unit register. The disassembler
prints these with a leading 'vs'. */
#define PPC_OPERAND_VSR (0x100000)
-
-/* This is a CR FIELD that does not use symbolic names. */
-#define PPC_OPERAND_CR_REG (0x200000)
/* The POWER and PowerPC assemblers use a few macros. We keep them
with the operands table for simplicity. The macro table is an
diff --git a/include/opcode/xgate.h b/include/opcode/xgate.h
index 77a521f83..c51673342 100644
--- a/include/opcode/xgate.h
+++ b/include/opcode/xgate.h
@@ -77,7 +77,7 @@
#define XGATE_OP_IDO5 "r,r,i5"
#define XGATE_OP_REL9 "b9"
#define XGATE_OP_REL10 "ba"
-#define XGATE_OP_DYA_MON "=r"
+#define XGATE_OP_DYA_MON "=r,r"
/* Macro definitions. */
#define XGATE_OP_IMM16mADD "r,if; addl addh"
#define XGATE_OP_IMM16mAND "r,if; andl andh"
diff --git a/include/plugin-api.h b/include/plugin-api.h
index 3220142dd..122424c6c 100644
--- a/include/plugin-api.h
+++ b/include/plugin-api.h
@@ -66,8 +66,7 @@ enum ld_plugin_output_file_type
{
LDPO_REL,
LDPO_EXEC,
- LDPO_DYN,
- LDPO_PIE
+ LDPO_DYN
};
/* An input file managed by the plugin library. */
diff --git a/ltgcc.m4 b/ltgcc.m4
new file mode 100644
index 000000000..844e2bc16
--- /dev/null
+++ b/ltgcc.m4
@@ -0,0 +1,60 @@
+# _LT_LANG_GCJ_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Java Compiler compiler
+# are suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'. Locally modified to
+# run its tests on C programs, because we cannot link Java programs until
+# we have finished building libjava.
+AC_DEFUN([_LT_LANG_GCJ_CONFIG],
+[AC_REQUIRE([LT_PROG_GCJ])dnl
+AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=c
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+GCC=yes
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+ _LT_COMPILER_NO_RTTI($1)
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+
+ _LT_CONFIG($1)
+fi
+
+_LT_TAGVAR(compiler, $1)=${GCJ-gcj}
+AC_LANG_RESTORE
+])# _LT_LANG_GCJ_CONFIG
diff --git a/ltoptions.m4 b/ltoptions.m4
new file mode 100644
index 000000000..5ef12ced2
--- /dev/null
+++ b/ltoptions.m4
@@ -0,0 +1,369 @@
+# Helper functions for option handling. -*- Autoconf -*-
+#
+# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltoptions.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
+
+
+# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
+# ------------------------------------------
+m4_define([_LT_MANGLE_OPTION],
+[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
+
+
+# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
+# ---------------------------------------
+# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
+# matching handler defined, dispatch to it. Other OPTION-NAMEs are
+# saved as a flag.
+m4_define([_LT_SET_OPTION],
+[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
+m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
+ _LT_MANGLE_DEFUN([$1], [$2]),
+ [m4_warning([Unknown $1 option `$2'])])[]dnl
+])
+
+
+# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
+# ------------------------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+m4_define([_LT_IF_OPTION],
+[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
+
+
+# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
+# -------------------------------------------------------
+# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
+# are set.
+m4_define([_LT_UNLESS_OPTIONS],
+[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+ [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
+ [m4_define([$0_found])])])[]dnl
+m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
+])[]dnl
+])
+
+
+# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
+# ----------------------------------------
+# OPTION-LIST is a space-separated list of Libtool options associated
+# with MACRO-NAME. If any OPTION has a matching handler declared with
+# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
+# the unknown option and exit.
+m4_defun([_LT_SET_OPTIONS],
+[# Set options
+m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+ [_LT_SET_OPTION([$1], _LT_Option)])
+
+m4_if([$1],[LT_INIT],[
+ dnl
+ dnl Simply set some default values (i.e off) if boolean options were not
+ dnl specified:
+ _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
+ ])
+ _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
+ ])
+ dnl
+ dnl If no reference was made to various pairs of opposing options, then
+ dnl we run the default mode handler for the pair. For example, if neither
+ dnl `shared' nor `disable-shared' was passed, we enable building of shared
+ dnl archives by default:
+ _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
+ _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
+ _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
+ _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
+ [_LT_ENABLE_FAST_INSTALL])
+ ])
+])# _LT_SET_OPTIONS
+
+
+## --------------------------------- ##
+## Macros to handle LT_INIT options. ##
+## --------------------------------- ##
+
+# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
+# -----------------------------------------
+m4_define([_LT_MANGLE_DEFUN],
+[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
+
+
+# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
+# -----------------------------------------------
+m4_define([LT_OPTION_DEFINE],
+[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
+])# LT_OPTION_DEFINE
+
+
+# dlopen
+# ------
+LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
+])
+
+AU_DEFUN([AC_LIBTOOL_DLOPEN],
+[_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `dlopen' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
+
+
+# win32-dll
+# ---------
+# Declare package support for building win32 dll's.
+LT_OPTION_DEFINE([LT_INIT], [win32-dll],
+[enable_win32_dll=yes
+
+case $host in
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
+ AC_CHECK_TOOL(AS, as, false)
+ AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+ AC_CHECK_TOOL(OBJDUMP, objdump, false)
+ ;;
+esac
+
+test -z "$AS" && AS=as
+_LT_DECL([], [AS], [1], [Assembler program])dnl
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
+])# win32-dll
+
+AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `win32-dll' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
+
+
+# _LT_ENABLE_SHARED([DEFAULT])
+# ----------------------------
+# implement the --enable-shared flag, and supports the `shared' and
+# `disable-shared' LT_INIT options.
+# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_SHARED],
+[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([shared],
+ [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+ [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac],
+ [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
+
+ _LT_DECL([build_libtool_libs], [enable_shared], [0],
+ [Whether or not to build shared libraries])
+])# _LT_ENABLE_SHARED
+
+LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
+])
+
+AC_DEFUN([AC_DISABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], [disable-shared])
+])
+
+AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_SHARED], [])
+dnl AC_DEFUN([AM_DISABLE_SHARED], [])
+
+
+
+# _LT_ENABLE_STATIC([DEFAULT])
+# ----------------------------
+# implement the --enable-static flag, and support the `static' and
+# `disable-static' LT_INIT options.
+# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_STATIC],
+[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([static],
+ [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+ [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac],
+ [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
+
+ _LT_DECL([build_old_libs], [enable_static], [0],
+ [Whether or not to build static libraries])
+])# _LT_ENABLE_STATIC
+
+LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
+])
+
+AC_DEFUN([AC_DISABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], [disable-static])
+])
+
+AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_STATIC], [])
+dnl AC_DEFUN([AM_DISABLE_STATIC], [])
+
+
+
+# _LT_ENABLE_FAST_INSTALL([DEFAULT])
+# ----------------------------------
+# implement the --enable-fast-install flag, and support the `fast-install'
+# and `disable-fast-install' LT_INIT options.
+# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_FAST_INSTALL],
+[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([fast-install],
+ [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+ [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac],
+ [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
+
+_LT_DECL([fast_install], [enable_fast_install], [0],
+ [Whether or not to optimize for fast installation])dnl
+])# _LT_ENABLE_FAST_INSTALL
+
+LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
+
+# Old names:
+AU_DEFUN([AC_ENABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `fast-install' option into LT_INIT's first parameter.])
+])
+
+AU_DEFUN([AC_DISABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `disable-fast-install' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
+dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
+
+
+# _LT_WITH_PIC([MODE])
+# --------------------
+# implement the --with-pic flag, and support the `pic-only' and `no-pic'
+# LT_INIT options.
+# MODE is either `yes' or `no'. If omitted, it defaults to `both'.
+m4_define([_LT_WITH_PIC],
+[AC_ARG_WITH([pic],
+ [AS_HELP_STRING([--with-pic],
+ [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+ [pic_mode="$withval"],
+ [pic_mode=default])
+
+test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
+
+_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
+])# _LT_WITH_PIC
+
+LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
+
+# Old name:
+AU_DEFUN([AC_LIBTOOL_PICMODE],
+[_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `pic-only' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
+
+## ----------------- ##
+## LTDL_INIT Options ##
+## ----------------- ##
+
+m4_define([_LTDL_MODE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
+ [m4_define([_LTDL_MODE], [nonrecursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [recursive],
+ [m4_define([_LTDL_MODE], [recursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [subproject],
+ [m4_define([_LTDL_MODE], [subproject])])
+
+m4_define([_LTDL_TYPE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [installable],
+ [m4_define([_LTDL_TYPE], [installable])])
+LT_OPTION_DEFINE([LTDL_INIT], [convenience],
+ [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/ltversion.m4 b/ltversion.m4
new file mode 100644
index 000000000..bf87f7713
--- /dev/null
+++ b/ltversion.m4
@@ -0,0 +1,23 @@
+# ltversion.m4 -- version numbers -*- Autoconf -*-
+#
+# Copyright (C) 2004 Free Software Foundation, Inc.
+# Written by Scott James Remnant, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# Generated from ltversion.in.
+
+# serial 3134 ltversion.m4
+# This file is part of GNU Libtool
+
+m4_define([LT_PACKAGE_VERSION], [2.2.7a])
+m4_define([LT_PACKAGE_REVISION], [1.3134])
+
+AC_DEFUN([LTVERSION_VERSION],
+[macro_version='2.2.7a'
+macro_revision='1.3134'
+_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
+_LT_DECL(, macro_revision, 0)
+])
diff --git a/lt~obsolete.m4 b/lt~obsolete.m4
new file mode 100644
index 000000000..bf92b5e07
--- /dev/null
+++ b/lt~obsolete.m4
@@ -0,0 +1,98 @@
+# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
+#
+# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
+# Written by Scott James Remnant, 2004.
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 4 lt~obsolete.m4
+
+# These exist entirely to fool aclocal when bootstrapping libtool.
+#
+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
+# which have later been changed to m4_define as they aren't part of the
+# exported API, or moved to Autoconf or Automake where they belong.
+#
+# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN
+# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
+# using a macro with the same name in our local m4/libtool.m4 it'll
+# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
+# and doesn't know about Autoconf macros at all.)
+#
+# So we provide this file, which has a silly filename so it's always
+# included after everything else. This provides aclocal with the
+# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
+# because those macros already exist, or will be overwritten later.
+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
+#
+# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
+# Yes, that means every name once taken will need to remain here until
+# we give up compatibility with versions before 1.7, at which point
+# we need to keep only those names which we still refer to.
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
+
+m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
+m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])])
+m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])])
+m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
+m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])])
+m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])])
+m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
+m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])])
+m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])])
+m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])])
+m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
+m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
+m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
+m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
+m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
+m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
+m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
+m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])])
+m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])])
+m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
+m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
+m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
+m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
+m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])])
+m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])])
+m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])])
+m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
+m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
+m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])])
+m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])])
+m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
+m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
+m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])])
+m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
+m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
+m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
+m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
+m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
+m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
+m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
+m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
+m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
+m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
+m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
+m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
+m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
+m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
+m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
+m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
+m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
+m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index cc8e7dccc..930e3f6b0 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,201 +1,3 @@
-2012-08-09 Corinna Vinschen <vinschen@redhat.com>
-
- * libc/stdio/vfwprintf.c (_VFWPRINTF_R): Fix guard around state to
- allow usage in !FLOATING_POINT && _WANT_IO_C99_FORMATS case.
-
-2012-08-08 Eric Blake <eblake@redhat.com>
-
- * libc/posix/engine.c(dissect): Guard diagnostic pragma for right
- versions of GCC only.
- * libc/string/strcasestr.c: Ditto.
-
-2012-08-08 Corinna Vinschen <vinschen@redhat.com>
-
- Throughout, run newlib with -Wall -Werror option and fix bugs and
- compiler warnings found this way.
-
- * libc/stdio/freopen.c (_freopen_r): Fix bug setting _flags.
-
- * libc/include/stdio.h (_rename): Define when building newlib.
- * libc/include/sys/signal.h (_kill): Ditto.
- * libc/include/sys/stat.h (_mkdir): Ditto.
- * libc/include/sys/time.h (_gettimeofday): Ditto.
- * libc/include/sys/times.h (_times): Ditto.
- * libc/include/sys/wait.h (_wait): Ditto.
- * libc/locale/lmessages.c (empty): Don't define for Cygwin.
- * libc/locale/lmonetary.c (cnv): Ditto.
- * libc/locale/nl_langinfo.c (nl_langinfo): Ditto for variable s.
- * libc/posix/collate.c: Throughout cast to avoid compiler warning.
- * libc/posix/engine.c (matcher): Initialize dp to avoid compiler
- warning.
- (dissect): Deliberately silence gcc compiler warning. Add comment to
- explain why.
- * libc/posix/glob.c: Disable on Cygwin. Explain why.
- * libc/posix/regcomp.c: Fix "uninitialized" compiler warnings.
- * libc/posix/wordexp.c (wordexp): Remove num_bytes variable since result
- is never used.
- * libc/posix/popen.c (popen): Ditto for variable last.
- * libc/reent/mkdirr.c: Include sys/stat.h.
- * libc/reent/renamer.c: Include stdio.h.
- * libc/search/hash.c: Throughout use underscored variants of the stat
- function family.
- (init_hash): Add missing definition for the __USE_INTERNAL_STAT64 case.
- * libc/search/hash_bigkey.c (__big_insert): Add parenthesis to avoid
- compiler warning.
- * libc/search/hash_page.c (overflow_page): Initalize freep to NULL to
- avoid compiler warning.
- * libc/stdio/asiprintf.c (_asiprintf_r): Cast unsigned char * to char *
- to avoid compiler warning.
- (asiprintf): Ditto.
- * libc/stdio/asprintf.c (_asprintf_r): Ditto.
- (asprintf): Ditto.
- * libc/stdio/vasiprintf.c (_vasiprintf_r): Ditto.
- * libc/stdio/vasprintf.c (_vasprintf_r): Ditto.
- * libc/stdio/mktemp.c (_gettemp): Cast to unsigned char in call to
- isdigit to avoid compiler warning.
- * libc/stdio/vfprintf.c (_VFPRINTF_R): Initialize variables used for
- grouping to avoid compiler warning. Only define and set nseps and
- nrepeats if they are really used.
- * libc/stdio/vfwprintf.c (_VFWPRINTF_R): Ditto. Only define state if
- it is really used.
- * libc/stdio/vfscanf.c (u_char): Revert to be defined as unsigned char.
- (__SVFSCANF_R): Cast fmt in call to __mbtowc.
- * libc/stdlib/mbtowc_r.c (JIS_state_table): Disable when building
- Cygwin.
- (JIS_action_table): Ditto.
- * libc/stdlib/wctomb_r.c (__utf8_wctomb): Add parenthesis to avoid
- compiler warning.
- * libc/string/strcasestr.c: Deliberately silence gcc compiler warning.
- Add comment to explain why.
- * libc/time/strptime.c (strptime): Cast to unsigned char in calls to
- isspace to avoid compiler warning.
- * libm/math/e_atan2.c (__ieee754_atan2): Add parenthesis to avoid
- compiler warning.
- * libm/math/e_exp.c (__ieee754_exp): Initialize k to 0 to avoid
- compiler warning. Drop setting it to 0 later.
- * libm/math/ef_exp.c (__ieee754_expf): Ditto.
- * libm/math/e_pow.c (__ieee754_pow): Add braces to avoid compiler
- warning.
- * libm/math/ef_pow.c (__ieee754_powf): Ditto.
- * libm/math/er_lgamma.c (__ieee754_lgamma_r): Initialize nadj to 0 to
- avoid compiler warning.
- * libm/math/erf_lgamma.c (__ieee754_lgammaf_r): Ditto.
- * libm/math/e_rem_pio2.c (__ieee754_rem_pio2): Ditto for variable z.
- * libm/common/sf_round.c (roundf): Remove signbit variable since result
- is never used.
-
-2012-08-07 Corinna Vinschen <vinschen@redhat.com>
-
- * libc/stdlib/mprec.h (Storeinc): Add parenthesis to avoid compiler
- warning.
-
-2012-07-30 Kevin Buettner <kevinb@redhat.com>
-
- * libc/sys/sysnecv850/crt0.S (_start): Use v850e-specific
- start up code for v850e2 and v850e2v3 too.
-
-2012-07-20 Eric Blake <eblake@redhat.com>
-
- * libc/posix/readdir.c (readdir): Drop bogus attempt to catch
- bogus pointers.
-
-2012-07-18 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/sys/rtems/machine/_types.h (_ssize_t): Use signed int for
- __v850__, __851__.
-
-2012-07-17 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/search/hcreate_r.c (hdestroy_r): #ifdef 0 unused vars ie, idx.
-
-2012-07-16 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/posix/telldir.c: Conditionally build dd_hash_lock.
-
-2012-07-13 Ralf Corsépius <ralf.corsepius@rtems.org>
-
- * libc/sys/rtems/machine/_types.h (_ssize_t): Add __ARM_EABI__,
- __v850__, __851__.
-
-2012-07-09 Corinna Vinschen <vinschen@redhat.com>
-
- * libc/stdio/fileno.c (fileno): Check if f is a valid stream. If not,
- return -1 and set errno to EBADF per POSIX.
-
-2012-07-06 Corinna Vinschen <vinschen@redhat.com>
-
- Allow building of Cygwin using Mingw64 SDK headers:
- * libc/include/sys/time.h: Drop _WINSOCK_H guard. Just use
- _TIMEVAL_DEFINED instead.
- * libc/include/sys/types.h: Check for _WINSOCKAPI_ along with
- _WINSOCK_H.
- * libc/include/sys/unistd.h: Ditto.
-
-2012-06-28 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
-
- * doc/Makefile.am (makedoc): Use LDFLAGS_FOR_BUILD not LDFLAGS.
- * doc/Makefile.in: Regenerate.
-
-2012-06-26 Christopher Faylor <me.newlib2012@cgf.cx>
-
- * libc/include/sys/types.h: Don't use the same preprocessor guard for
- time_t, timespec, and itimerspec. Add a separate guard specifically
- for timespec and always unconditionally define itimerspec.
-
-2012-06-05 Corinna Vinschen <vinschen@redhat.com>
-
- * libc/stdio/findfp.c (__sinit): Avoid infinite recursion on
- _REENT_SMALL targets. Add comment to explain.
-
-2012-05-31 Corinna Vinschen <vinschen@redhat.com>
-
- * libc/stdio/local.h (_newlib_sfp_lock_exit): Fix typo in non-pthread
- version.
-
-2012-05-30 Corinna Vinschen <vinschen@redhat.com>
-
- * libc/stdio/fgetws.c (_fgetws_r): Call _mbsnrtowcs_r rather than
- _mbsrtowcs_r and restrict number of wide chars to n - 1.
-
-2012-05-30 Corinna Vinschen <vinschen@redhat.com>
-
- * libc/stdio/local.h (_newlib_flockfile_start): New macro to
- secure stream related critical section against thread cancellation.
- (_newlib_flockfile_exit): Ditto.
- (_newlib_sfp_lock_end): Ditto.
- (_newlib_sfp_lock_start): Ditto for the list of streams.
- (_newlib_sfp_lock_exit): Ditto.
- (_newlib_sfp_lock_end): Ditto.
- Use aforementioned macros in place of _flockfile/_funlockfile
- and __sfp_lock_acquire/__sfp_lock_release throughout the code.
- * libc/stdio/fclose.c: Explicitely disable and re-enable thread
- cancellation. Explain why.
- * libc/stdio/freopen.c: Ditto.
- * libc/stdio64/freopen64.c: Ditto.
-
-2012-05-21 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
-
- * libc/machine/cr16/sys/asm.h: Added some missing instructions
- and removed few unsupported instructions of cr16 target.
-
-2012-05-10 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
-
- * libc/include/string.h (memrchr): Declare.
- * libc/string/Makefile.am (ELIX_4_SOURCES): Add memrchr.c.
- (CHEWOUT_FILES): Add memrchr.def.
- * libc/string/Makefile.in: Regenerate.
- * libc/string/memrchr.c: New file.
-
-2012-05-10 Joel Sherrill <joel.sherrill@oarcorp.com>
-
- * libc/sys/rtems/machine/_types.h: Add Microblaze.
-
-2012-05-09 Joel Sherrill <joel.sherrill@oarcorp.com>
-
- * libc/sys/rtems/crt0.c: Add stubs for access(), ftruncate(),
- _getpid_r(), geteuid(), getgid, _getgid_r, getpid(), getppid(),
- and _getpid_r().
-
2012-05-03 Greta Yorsh <Greta.Yorsh@arm.com>
* testsuite/newlib.string/strcmp-1.c (LONG_TEST): New macro.
diff --git a/newlib/doc/Makefile.am b/newlib/doc/Makefile.am
index c86300780..5bf13599a 100644
--- a/newlib/doc/Makefile.am
+++ b/newlib/doc/Makefile.am
@@ -12,7 +12,7 @@ MKDOC = makedoc$(EXEEXT_FOR_BUILD)
# -Os, which CC_FOR_BUILD may not recognize.
$(MKDOC): makedoc.o
- $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $(MKDOC) makedoc.o
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS) -o $(MKDOC) makedoc.o
makedoc.o: makedoc.c
$(CC_FOR_BUILD) -g $(CFLAGS_FOR_BUILD) -c $(srcdir)/makedoc.c
diff --git a/newlib/doc/Makefile.in b/newlib/doc/Makefile.in
index b9e3ad361..62378354b 100644
--- a/newlib/doc/Makefile.in
+++ b/newlib/doc/Makefile.in
@@ -324,7 +324,7 @@ uninstall-am:
# -Os, which CC_FOR_BUILD may not recognize.
$(MKDOC): makedoc.o
- $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $(MKDOC) makedoc.o
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS) -o $(MKDOC) makedoc.o
makedoc.o: makedoc.c
$(CC_FOR_BUILD) -g $(CFLAGS_FOR_BUILD) -c $(srcdir)/makedoc.c
diff --git a/newlib/libc/include/stdio.h b/newlib/libc/include/stdio.h
index 305e409b8..2912eafa9 100644
--- a/newlib/libc/include/stdio.h
+++ b/newlib/libc/include/stdio.h
@@ -227,9 +227,6 @@ int _EXFUN(sprintf, (char *, const char *, ...)
_ATTRIBUTE ((__format__ (__printf__, 2, 3))));
int _EXFUN(remove, (const char *));
int _EXFUN(rename, (const char *, const char *));
-#ifdef _COMPILING_NEWLIB
-int _EXFUN(_rename, (const char *, const char *));
-#endif
#endif
#if !defined(__STRICT_ANSI__) || defined(__USE_XOPEN2K)
#ifdef _COMPILING_NEWLIB
diff --git a/newlib/libc/include/string.h b/newlib/libc/include/string.h
index ef0402fb8..cd80ce76b 100644
--- a/newlib/libc/include/string.h
+++ b/newlib/libc/include/string.h
@@ -58,7 +58,6 @@ char *_EXFUN(index,(const char *, int));
_PTR _EXFUN(memccpy,(_PTR, const _PTR, int, size_t));
_PTR _EXFUN(mempcpy,(_PTR, const _PTR, size_t));
_PTR _EXFUN(memmem, (const _PTR, size_t, const _PTR, size_t));
-_PTR _EXFUN(memrchr,(const _PTR, int, size_t));
char *_EXFUN(rindex,(const char *, int));
char *_EXFUN(stpcpy,(char *, const char *));
char *_EXFUN(stpncpy,(char *, const char *, size_t));
diff --git a/newlib/libc/include/sys/signal.h b/newlib/libc/include/sys/signal.h
index 4e3be1ccf..881df8334 100644
--- a/newlib/libc/include/sys/signal.h
+++ b/newlib/libc/include/sys/signal.h
@@ -143,9 +143,6 @@ int _EXFUN(pthread_sigmask, (int how, const sigset_t *set, sigset_t *oset));
#undef sigfillset
#undef sigismember
-#ifdef _COMPILING_NEWLIB
-int _EXFUN(_kill, (pid_t, int));
-#endif
int _EXFUN(kill, (pid_t, int));
int _EXFUN(killpg, (pid_t, int));
int _EXFUN(sigaction, (int, const struct sigaction *, struct sigaction *));
diff --git a/newlib/libc/include/sys/stat.h b/newlib/libc/include/sys/stat.h
index fa2036dd3..f00caa661 100644
--- a/newlib/libc/include/sys/stat.h
+++ b/newlib/libc/include/sys/stat.h
@@ -170,10 +170,8 @@ int _EXFUN(futimens, (int, const struct timespec *));
#ifdef _COMPILING_NEWLIB
int _EXFUN(_fstat,( int __fd, struct stat *__sbuf ));
int _EXFUN(_stat,( const char *__path, struct stat *__sbuf ));
-int _EXFUN(_mkdir,( const char *_path, mode_t __mode ));
#ifdef __LARGE64_FILES
struct stat64;
-int _EXFUN(_stat64,( const char *__path, struct stat64 *__sbuf ));
int _EXFUN(_fstat64,( int __fd, struct stat64 *__sbuf ));
#endif
#endif
diff --git a/newlib/libc/include/sys/time.h b/newlib/libc/include/sys/time.h
index b388b2c5f..d48839f6e 100644
--- a/newlib/libc/include/sys/time.h
+++ b/newlib/libc/include/sys/time.h
@@ -12,7 +12,7 @@
extern "C" {
#endif
-#ifndef _TIMEVAL_DEFINED
+#ifndef _WINSOCK_H
#define _TIMEVAL_DEFINED
struct timeval {
time_t tv_sec;
@@ -28,7 +28,7 @@ struct timezone {
#include <cygwin/sys_time.h>
#endif /* __CYGWIN__ */
-#endif /* !_TIMEVAL_DEFINED */
+#endif /* _WINSOCK_H */
#define ITIMER_REAL 0
#define ITIMER_VIRTUAL 1
@@ -71,10 +71,6 @@ struct itimerval {
} while (0)
#endif /* defined (__rtems__) || defined (__CYGWIN__) */
-#ifdef _COMPILING_NEWLIB
-int _EXFUN(_gettimeofday, (struct timeval *__p, void *__tz));
-#endif
-
int _EXFUN(gettimeofday, (struct timeval *__p, void *__tz));
int _EXFUN(settimeofday, (const struct timeval *, const struct timezone *));
int _EXFUN(utimes, (const char *__path, const struct timeval *__tvp));
diff --git a/newlib/libc/include/sys/times.h b/newlib/libc/include/sys/times.h
index 927812cb8..9375cb19d 100644
--- a/newlib/libc/include/sys/times.h
+++ b/newlib/libc/include/sys/times.h
@@ -21,9 +21,6 @@ struct tms {
};
clock_t _EXFUN(times,(struct tms *));
-#ifdef _COMPILING_NEWLIB
-clock_t _EXFUN(_times,(struct tms *));
-#endif
#ifdef __cplusplus
}
diff --git a/newlib/libc/include/sys/types.h b/newlib/libc/include/sys/types.h
index ba24929f3..9723d92d3 100644
--- a/newlib/libc/include/sys/types.h
+++ b/newlib/libc/include/sys/types.h
@@ -109,22 +109,19 @@ typedef _CLOCK_T_ clock_t;
#ifndef __time_t_defined
typedef _TIME_T_ time_t;
#define __time_t_defined
-#endif
-#ifndef __timespec_defined
-#define __timespec_defined
/* Time Value Specification Structures, P1003.1b-1993, p. 261 */
struct timespec {
time_t tv_sec; /* Seconds */
long tv_nsec; /* Nanoseconds */
};
-#endif
struct itimerspec {
struct timespec it_interval; /* Timer period */
struct timespec it_value; /* Timer expiration */
};
+#endif
typedef long daddr_t;
typedef char * caddr_t;
@@ -210,7 +207,7 @@ typedef unsigned short nlink_t;
includes the W32api winsock[2].h header must know what it is doing;
it must not call the cygwin32 select function.
*/
-# if !(defined (_POSIX_SOURCE) || defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS))
+# if !(defined (_POSIX_SOURCE) || defined (_WINSOCK_H) || defined (__USE_W32_SOCKETS))
# define _SYS_TYPES_FD_SET
# define NBBY 8 /* number of bits in a byte */
/*
@@ -247,7 +244,7 @@ typedef struct _types_fd_set {
*__tmp++ = 0; \
}))
-# endif /* !(defined (_POSIX_SOURCE) || defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) */
+# endif /* !(defined (_POSIX_SOURCE) || defined (_WINSOCK_H) || defined (__USE_W32_SOCKETS)) */
#undef __MS_types__
#undef _ST_INT32
diff --git a/newlib/libc/include/sys/unistd.h b/newlib/libc/include/sys/unistd.h
index a5f66c0b7..6bae77483 100644
--- a/newlib/libc/include/sys/unistd.h
+++ b/newlib/libc/include/sys/unistd.h
@@ -233,7 +233,7 @@ int _EXFUN(truncate, (const char *, off_t __length));
int _EXFUN(getdtablesize, (void));
int _EXFUN(setdtablesize, (int));
useconds_t _EXFUN(ualarm, (useconds_t __useconds, useconds_t __interval));
-#if !(defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS))
+#if !(defined (_WINSOCK_H) || defined (__USE_W32_SOCKETS))
/* winsock[2].h defines as __stdcall, and with int as 2nd arg */
int _EXFUN(gethostname, (char *__name, size_t __len));
#endif
diff --git a/newlib/libc/include/sys/wait.h b/newlib/libc/include/sys/wait.h
index 73fe37202..0e4a33945 100644
--- a/newlib/libc/include/sys/wait.h
+++ b/newlib/libc/include/sys/wait.h
@@ -29,10 +29,6 @@ extern "C" {
pid_t wait (int *);
pid_t waitpid (pid_t, int *, int);
-#ifdef _COMPILING_NEWLIB
-pid_t _wait (int *);
-#endif
-
/* Provide prototypes for most of the _<systemcall> names that are
provided in newlib for some compilers. */
pid_t _wait (int *);
diff --git a/newlib/libc/locale/lmessages.c b/newlib/libc/locale/lmessages.c
index 9fb1df4a9..33a4a5a21 100644
--- a/newlib/libc/locale/lmessages.c
+++ b/newlib/libc/locale/lmessages.c
@@ -35,9 +35,7 @@
#define LCMESSAGES_SIZE_MIN \
(offsetof(struct lc_messages_T, yesstr) / sizeof(char *))
-#ifndef __CYGWIN__
static char empty[] = "";
-#endif
static const struct lc_messages_T _C_messages_locale = {
"^[yY]" , /* yesexpr */
diff --git a/newlib/libc/locale/lmonetary.c b/newlib/libc/locale/lmonetary.c
index 80c2d0442..f1101a902 100644
--- a/newlib/libc/locale/lmonetary.c
+++ b/newlib/libc/locale/lmonetary.c
@@ -79,7 +79,6 @@ static struct lc_monetary_T _monetary_locale;
static int _monetary_using_locale;
static char *_monetary_locale_buf;
-#ifndef __CYGWIN__
static char
cnv(const char *str) {
int i = strtol(str, NULL, 10);
@@ -87,7 +86,6 @@ cnv(const char *str) {
i = CHAR_MAX;
return (char)i;
}
-#endif
int
__monetary_load_locale(const char *name , void *f_wctomb, const char *charset)
diff --git a/newlib/libc/locale/nl_langinfo.c b/newlib/libc/locale/nl_langinfo.c
index 4b7e983f0..392a7cbbb 100644
--- a/newlib/libc/locale/nl_langinfo.c
+++ b/newlib/libc/locale/nl_langinfo.c
@@ -182,10 +182,7 @@ char *
_DEFUN(nl_langinfo, (item),
nl_item item) {
- char *ret, *cs;
-#ifndef __CYGWIN__
- char *s;
-#endif
+ char *ret, *s, *cs;
static char *csym = NULL;
#ifdef TRANSITION_PERIOD_HACK
static char *cset = NULL;
diff --git a/newlib/libc/machine/cr16/sys/asm.h b/newlib/libc/machine/cr16/sys/asm.h
index cfc53e6f8..3618bec3b 100644
--- a/newlib/libc/machine/cr16/sys/asm.h
+++ b/newlib/libc/machine/cr16/sys/asm.h
@@ -1,6 +1,6 @@
/* asm.h -- CR16 architecture intrinsic functions
*
- * Copyright (c) 2012 National Semiconductor Corporation
+ * Copyright (c) 2004 National Semiconductor Corporation
*
* The authors hereby grant permission to use, copy, modify, distribute,
* and license this software and its documentation for any purpose, provided
@@ -20,6 +20,14 @@
the user's responsibility to use the intrinsic functions with appropriate
immediate values. */
+/* Absolute Instructions */
+#define _absb_(src, dest) __asm__("absb %1, %0" : "=r" (dest) : \
+ "r" ((char)src) , "0" (dest))
+#define _absw_(src, dest) __asm__("absw %1,%0" : "=r" (dest) : \
+ "r" ((short)src) , "0" (dest))
+#define _absd_(src, dest) __asm__("absd %1, %0" : "=r" (dest) : \
+ "r" ((int)src) , "0" (dest))
+
/* Addition Instructions */
#define _addb_(src, dest) __asm__("addb %1, %0" : "=r" (dest) : \
"ri" ((unsigned char)src), "0" (dest) : "cc")
@@ -30,97 +38,166 @@
#define _adduw_(src, dest) __asm__("adduw %1, %0" : "=r" (dest) : \
"ri" ((unsigned short)src), "0" (dest) : "cc")
#define _addd_(src, dest) __asm__("addd %1, %0" : "=r" (dest) : \
- "ri" ((unsigned long)src), "0" (dest) : "cc")
-
+ "ri" ((unsigned int)src), "0" (dest) : "cc")
+#define _addud_(src, dest) __asm__("addud %1, %0" : "=r" (dest) : \
+ "ri" ((unsigned int)src), "0" (dest) : "cc")
/* Add with Carry */
#define _addcb_(src, dest) __asm__("addcb %1, %0" : "=r" (dest) : \
"ri" ((unsigned char)src), "0" (dest) : "cc")
#define _addcw_(src, dest) __asm__("addcw %1, %0" : "=r" (dest) : \
"ri" ((unsigned short)src), "0" (dest) : "cc")
-
+#define _addcd_(src, dest) __asm__("addcd %1, %0" : "=r" (dest) : \
+ "ri" ((unsigned int)src), "0" (dest) : "cc")
+/* Q-format Add */
+#define _addqb_(src, dest) __asm__("addqb %1, %0" : "=r" (dest) : \
+ "r" ((unsigned char)src), "0" (dest) : "cc")
+#define _addqw_(src, dest) __asm__("addqw %1, %0" : "=r" (dest) : \
+ "r" ((unsigned short)src), "0" (dest) : "cc")
+#define _addqd_(src, dest) __asm__("addqd %1, %0" : "=r" (dest) : \
+ "r" ((unsigned int)src), "0" (dest) : "cc")
+
/* Bitwise Logical AND */
-#define _andb_(src, dest) __asm__("andb %1,%0" : "=r" (dest) : \
- "ri" ((unsigned char)src) , "0" (dest))
-#define _andw_(src, dest) __asm__("andw %1,%0" : "=r" (dest) : \
- "ri" ((unsigned short)src) , "0" (dest))
-#define _andd_(src, dest) __asm__("andd %1,%0" : "=r" (dest) : \
- "ri" ((unsigned long)src) , "0" (dest))
-/* Arithmetic shift Instructions */
-#define _ashub_(count, dest) __asm__("ashub %1,%0" : "=r" (dest) : \
- "ri" ((char)count) , "0" (dest) )
-#define _ashuw_(count, dest) __asm__("ashuw %1,%0" : "=r" (dest) : \
- "ri" ((char)count) , "0" (dest) )
-#define _ashud_(count, dest) __asm__("ashud %1,%0" : "=r" (dest) : \
- "ri" ((char)count) , "0" (dest) )
+#define _andb_(src, dest) __asm__("andb %1,%0" : "=r" (dest) : \
+ "ri" ((unsigned char)src) , "0" (dest))
+#define _andw_(src, dest) __asm__("andw %1,%0" : "=r" (dest) : \
+ "ri" ((unsigned short)src) , "0" (dest))
+#define _andd_(src, dest) __asm__("andd %1,%0" : "=r" (dest) : \
+ "ri" ((unsigned int)src) , "0" (dest))
+/* bswap Instruction */
+#define _bswap_(src, dest) __asm__("bswap %1,%0" : "=r" (dest) : \
+ "r" ((unsigned int)src) , "0" (dest))
/* cbit (clear bit) Instructions */
-#define _cbitb_(pos, dest) __asm__("cbitb %1,%0" : "=mr" (dest) : \
- "i" ((unsigned char)pos) , "0" (dest) : "cc")
-#define _cbitw_(pos, dest) __asm__("cbitw %1,%0" : "=mr" (dest) : \
- "i" ((unsigned char)pos) , "0" (dest) : "cc")
+#define _cbitb_(pos, dest) __asm__("cbitb %1,%0" : "=mr" (dest) : \
+ "i" ((unsigned char)pos) , "0" (dest) : "cc")
+#define _cbitw_(pos, dest) __asm__("cbitw %1,%0" : "=mr" (dest) : \
+ "i" ((unsigned char)pos) , "0" (dest) : "cc")
+#define _cbitd_(pos, dest) __asm__("cbitd %1,%0" : "=r" (dest) : \
+ "i" ((unsigned char)pos) , "0" (dest) : "cc")
/* Compare Instructions */
-#define _cmpb_(src1, src2) __asm__("cmpb %0,%1" : /* no output */ : \
- "ri" ((unsigned char)src1) , "r" (src2) : "cc")
-#define _cmpw_(src1, src2) __asm__("cmpw %0,%1" : /* no output */ : \
- "ri" ((unsigned short)src1) , "r" (src2) : "cc")
-#define _cmpd_(src1, src2) __asm__("cmpd %0,%1" : /* no output */ : \
- "ri" ((unsigned long)src1) , "r" (src2) : "cc")
+#define _cmpb_(src1, src2) __asm__("cmpb %0,%1" : /* no output */ : \
+ "ri" ((unsigned char)src1) , "r" (src2) : "cc")
+#define _cmpw_(src1,src2) __asm__("cmpw %0,%1" : /* no output */ \
+ : "ri" ((unsigned short)src1) , "r" (src2) : "cc")
+#define _cmpd_(src1,src2) __asm__("cmpd %0,%1" : /* no output */ \
+ : "ri" ((unsigned int)src1) , "r" (src2) : "cc")
+
+/* cntl Count Leading Ones Instructions */
+#define _cntl1b_(src, dest) __asm__("cntl1b %1,%0" : "=r" (dest) : \
+ "r" ((char)src) , "0" (dest))
+#define _cntl1w_(src, dest) __asm__("cntl1w %1,%0" : "=r" (dest) : \
+ "r" ((short)src) , "0" (dest))
+#define _cntl1d_(src, dest) __asm__("cntl1d %1,%0" : "=r" (dest) : \
+ "r" ((int)src) , "0" (dest))
+
+/* cntl Count Leading Zeros Instructions */
+#define _cntl0b_(src, dest) __asm__("cntl0b %1,%0" : "=r" (dest) : \
+ "r" ((char)src) , "0" (dest))
+#define _cntl0w_(src, dest) __asm__("cntl0w %1,%0" : "=r" (dest) : \
+ "r" ((short)src) , "0" (dest))
+#define _cntl0d_(src, dest) __asm__("cntl0d %1,%0" : "=r" (dest) : \
+ "r" ((int)src) , "0" (dest))
+
+/* cntl Count Leading Signs Instructions */
+#define _cntlsb_(src, dest) __asm__("cntlsb %1,%0" : "=r" (dest) : \
+ "r" ((char)src) , "0" (dest))
+#define _cntlsw_(src, dest) __asm__("cntlsw %1,%0" : "=r" (dest) : \
+ "r" ((short)src) , "0" (dest))
+#define _cntlsd_(src, dest) __asm__("cntlsd %1,%0" : "=r" (dest) : \
+ "r" ((int)src) , "0" (dest))
/* Disable Inerrupts instructions */
-#define _di_() __asm__ volatile ("di\n" : : : "cc")
-#define _disable_() __asm__ volatile ("di\n" : : : "cc")
-#define _disable_interrupt_() _di_
+#define _di_() __asm__ volatile ("di\n" : : : "cc")
+#define _disable_() __asm__ volatile ("di\n" : : : "cc")
/* Enable Inerrupts instructions */
-#define _ei_() __asm__ volatile ("ei\n" : : : "cc")
-#define _enable_() __asm__ volatile ("ei\n" : : : "cc")
-#define _enable_interrupt_() _ei_
+#define _ei_() __asm__ volatile ("ei\n" : : : "cc")
+#define _enable_() __asm__ volatile ("ei\n" : : : "cc")
/* Enable Inerrupts instructions and Wait */
-#define _eiwait_() __asm__ volatile ("eiwait" : : : "cc")
+#define _eiwait_() __asm__ volatile ("eiwait" : : : "cc")
/* excp Instructions */
-#define _excp_(vector) __asm__ volatile ("excp " # vector)
-
-/* lpr and lprd Instructions */
-#define _lpr_(procreg, src) __asm__("lpr\t%0," procreg : \
- /* no output */ : "r" (src) : "cc")
-#define _lprd_(procregd, src) __asm__("lprd\t%0," procregd : \
- /* no output */ : "r" (src) : "cc")
-/* Left Shift Instructions */
-#define _lshb_(count, dest) __asm__("lshb %1,%0" : "=r" (dest) : \
- "ri" ((char)count) , "0" (dest) )
-#define _lshw_(count, dest) __asm__("lshw %1,%0" : "=r" (dest) : \
- "ri" ((char)count) , "0" (dest) )
-#define _lshd_(count, dest) __asm__("lshd %1,%0" : "=r" (dest) : \
- "ri" ((char)count) , "0" (dest) )
-
+#define _excp_(vector) __asm__ volatile ("excp " # vector)
+
+/* getpid Instruction */
+#define _getrfid_(dest) __asm__("getrfid %0" : "=r" (dest) : \
+ /* No input */ : "cc")
+
/* Load Instructions */
-#define _loadb_(base, dest) __asm__("loadb %1,%0" : "=r" (dest) : \
+#define _loadb_(base,dest) __asm__("loadb %1,%0" : "=r" (dest) : \
"m" (base) , "0" (dest))
-#define _loadw_(base, dest) __asm__("loadw %1,%0" : "=r" (dest) : \
- "m" (base) , "0" (dest))
-#define _loadd_(base, dest) __asm__("loadd %1,%0" : "=r" (dest) : \
+#define _loadw_(base,dest) __asm__("loadw %1,%0" : "=r" (dest) : \
+ "m" (base) , "0" (dest))
+#define _loadd_(base,dest) __asm__("loadd %1,%0" : "=r" (dest) : \
"m" (base) , "0" (dest))
/* Load Multiple Instructions */
-#define _loadm_(src, mask) __asm__("loadm %0,%1" : /* No output */ : \
+#define _loadm_(src, mask) __asm__("loadm %0,%1" : /* No output */ : \
"r" ((unsigned int)src) , "i" (mask))
-#define _loadmp_(src, mask) __asm__("loadmp %0,%1" : /* No output */ : \
+#define _loadmp_(src, mask) __asm__("loadmp %0,%1" : /* No output */ : \
"r" ((unsigned int)src) , "i" (mask))
/* Multiply Accumulate Instrutions */
-#define _macsw_(hi, lo, src1, src2) __asm__("macsw %1,%0" \
- : =l (lo), =h (hi) \
- : "r" ((short)src1) , "r" (src2))
-#define _macuw_(hi, lo, src1, src2) __asm__("macuw %1,%0" \
- : =l (lo), =h (hi) \
- : "r" ((unsigned short)src1) , "r" (src2))
-#define _macqw_(src1, src2) __asm__("macqw %1,%0" \
- : =l (lo), =h (hi) \
- :"r" ((short)src1) , "r" (src2))
+#define _macsb_(hi, lo, src1, src2) __asm__("macsb %1,%0" \
+ : =l (lo), =h (hi) \
+ : "r" ((char)src1) , "r" (src2))
+#define _macsw_(hi, lo, src1, src2) __asm__("macsw %1,%0" \
+ : =l (lo), =h (hi) \
+ : "r" ((short)src1) , "r" (src2))
+#define _macsd_(hi, lo, src1, src2) __asm__("macsd %1,%0" \
+ : =l (lo), =h (hi) \
+ : "r" ((int)src1) , "r" (src2))
+#define _macub_(hi, lo, src1, src2) __asm__("macub %1,%0" \
+ : =l (lo), =h (hi) \
+ :"r" ((unsigned char)src1) , "r" (src2))
+#define _macuw_(hi, lo, src1, src2) __asm__("macuw %1,%0" \
+ : =l (lo), =h (hi) \
+ : "r" ((unsigned short)src1) , "r" (src2))
+#define _macud_(hi, lo, src1, src2) __asm__("macud %1,%0" \
+ : =l (lo), =h (hi) \
+ : "r" ((unsigned int)src1) , "r" (src2))
+
+/* Q-Format Multiply Accumulate Instrutions */
+#define _macqb_(src1, src2) __asm__("macqb %1,%0" \
+ : =l (lo), =h (hi) \
+ :"r" ((char)src1) , "r" (src2))
+#define _macqw_(src1, src2) __asm__("macqw %1,%0" \
+ : =l (lo), =h (hi) \
+ :"r" ((short)src1) , "r" (src2))
+#define _macqd_(src1, src2) __asm__("macqd %1,%0" \
+ : =l (lo), =h (hi) \
+ :"r" ((int)src1) , "r" (src2))
+
+/* Maximum Instructions */
+#define _maxsb_(src, dest) __asm__("maxsb %1,%0" : "=r" (dest) : \
+ "r" ((char)src) , "0" (dest))
+#define _maxsw_(src, dest) __asm__("maxsw %1,%0" : "=r" (dest) : \
+ "r" ((short)src) , "0" (dest))
+#define _maxsd_(src, dest) __asm__("maxsd %1,%0" : "=r" (dest) : \
+ "r" ((int)src) , "0" (dest))
+#define _maxub_(src, dest) __asm__("maxub %1,%0" : "=r" (dest) : \
+ "r" ((unsigned char)src) , "0" (dest))
+#define _maxuw_(src, dest) __asm__("maxuw %1,%0" : "=r" (dest) : \
+ "r" ((unsigned short)src) , "0" (dest))
+#define _maxud_(src, dest) __asm__("maxud %1,%0" : "=r" (dest) : \
+ "r" ((unsigned int)src) , "0" (dest))
+
+/* Minimum Instructions */
+#define _minsb_(src, dest) __asm__("minsb %1,%0" : "=r" (dest) : \
+ "r" ((char)src) , "0" (dest))
+#define _minsw_(src, dest) __asm__("minsw %1,%0" : "=r" (dest) : \
+ "r" ((short)src) , "0" (dest))
+#define _minsd_(src, dest) __asm__("minsd %1,%0" : "=r" (dest) : \
+ "r" ((int)src) , "0" (dest))
+#define _minub_(src, dest) __asm__("minub %1,%0" : "=r" (dest) : \
+ "r" ((unsigned char)src) , "0" (dest))
+#define _minuw_(src, dest) __asm__("minuw %1,%0" : "=r" (dest) : \
+ "r" ((unsigned short)src) , "0" (dest))
+#define _minud_(src, dest) __asm__("minud %1,%0" : "=r" (dest) : \
+ "r" ((unsigned int)src) , "0" (dest))
/* Move Instructions */
#define _movb_(src, dest) __asm__("movb %1,%0" : "=r" (dest) : \
@@ -129,59 +206,152 @@
"ri" ((unsigned short)src) , "0" (dest))
#define _movd_(src, dest) __asm__("movd %1,%0" : "=r" (dest) : \
"ri" ((unsigned int)src) , "0" (dest))
-#define _movxb_(src, dest) __asm__("movxb %1,%0" : "=r" (dest) : \
- "r" (src), "0" (dest) )
-#define _movzb_(src, dest) __asm__("movzb %1,%0" : "=r" (dest) : \
- "r" (src), "0" (dest) )
-#define _movxw_(src, dest) __asm__("movxw %1,%0" : "=r" (dest) : \
- "r" (src), "0" (dest) )
-#define _movzw_(src, dest) __asm__("movzw %1,%0" : "=r" (dest) : \
- "r" (src), "0" (dest) )
-
+
+/* mtpr and mfpr Insturctions */
+#define _mtpr_(procregd, src) __asm__("mtpr\t%0," procregd : /* no output */ : \
+ "r" (src) : "cc")
+#define _mfpr_(procregd, dest) __asm__("mfpr\t" procregd ",%0" : "=r" (dest) : \
+ /* no input */ "0" (dest) : "cc")
+
/* Multiplication Instructions */
+#define _mulsbw_(src, dest) __asm__("mulsbw %1,%0" : "=r" (dest) : \
+ "r" ((char)src) , "0" (dest))
+#define _mulubw_(src, dest) __asm__("mulubw %1,%0" : "=r" (dest) : \
+ "r" ((unsigned char)src) , "0" (dest))
+#define _mulswd_(src, dest) __asm__("mulswd %1,%0" : "=r" (dest) : \
+ "r" ((short)src) , "0" (dest))
+#define _muluwd_(src, dest) __asm__("muluwd %1,%0" : "=r" (dest) : \
+ "r" ((unsigned short)src) , "0" (dest))
#define _mulb_(src, dest) __asm__("mulb %1,%0" : "=r" (dest) : \
"ri" ((char)src) , "0" (dest))
#define _mulw_(src, dest) __asm__("mulw %1,%0" : "=r" (dest) : \
"ri" ((short)src) , "0" (dest))
-#define _mulsb_(src, dest) __asm__("mulsb %1,%0" : "=r" (dest) : \
+#define _muld_(src, dest) __asm__("muld %1,%0" : "=r" (dest) : \
+ "ri" ((int)src) , "0" (dest))
+#define _mullsd_(hi, lo, src1, src2) __asm__("mullsd %2,%3" \
+ : =l (lo), =h (hi) \
+ : "r" ((unsigned int)src1) , "r" ((unsigned int)src2))
+#define _mullud_(hi, lo, src1, src2) __asm__("mullud %2,%3" \
+ : =l (lo), =h (hi) \
+ : "r" ((int)src1) , "r" ((int)src2))
+
+/* Q-Format Multiplication Instructions */
+#define _mulqb_(src, dest) __asm__("mulqb %1,%0" : "=r" (dest) : \
"r" ((char)src) , "0" (dest))
-#define _mulsw_(src, dest) __asm__("mulsw %1,%0" : "=r" (dest) : \
+#define _mulqw_(src, dest) __asm__("mulqw %1,%0" : "=r" (dest) : \
"r" ((short)src) , "0" (dest))
-#define _muluw_(src, dest) __asm__("muluw %1,%0" : "=r" (dest) : \
- "r" ((unsigned short)src) , "0" (dest))
/* nop Instruction */
-#define _nop_() __asm__("nop")
+#define _nop_() __asm__("nop")
+
+/* Negate Instructions */
+#define _negb_(src, dest) __asm__("negb %1,%0" : "=r" (dest) : \
+ "r" ((char)src) , "0" (dest))
+#define _negw_(src, dest) __asm__("negw %1,%0" : "=r" (dest) : \
+ "r" ((short)src) , "0" (dest))
+#define _negd_(src, dest) __asm__("negd %1,%0" : "=r" (dest) : \
+ "r" ((int)src) , "0" (dest))
/* or Instructions */
#define _orb_(src, dest) __asm__("orb %1,%0" : "=r" (dest) : \
- "ri" ((unsigned char)src) , "0" (dest))
+ "ri" ((unsigned char)src) , "0" (dest))
#define _orw_(src, dest) __asm__("orw %1,%0" : "=r" (dest) : \
- "ri" ((unsigned short)src) , "0" (dest))
+ "ri" ((unsigned short)src) , "0" (dest))
#define _ord_(src, dest) __asm__("ord %1,%0" : "=r" (dest) : \
- "ri" ((unsigned int)src) , "0" (dest))
+ "ri" ((unsigned int)src) , "0" (dest))
+
+/* Pop 1's Count Instructions */
+#define _popcntb_(src, dest) __asm__("popcntb %1,%0" : "=r" (dest) : \
+ "r" ((char)src) , "0" (dest))
+#define _popcntw_(src, dest) __asm__("popcntw %1,%0" : "=r" (dest) : \
+ "r" ((short)src) , "0" (dest))
+#define _popcntd_(src, dest) __asm__("popcntd %1,%0" : "=r" (dest) : \
+ "r" ((int)src) , "0" (dest))
+
+/* Rotate and Mask Instructions */
+#define _ram_(shift, end, begin, dest, src) __asm__("ram %1, %2, %3, %0, %4" : \
+ "=r" (dest) : \
+ "i" ((unsigned char) shift), \
+ "i" (end), "i" (begin), \
+ "r" (src), "0" (dest))
+#define _rim_(shift, end, begin, dest, src) __asm__("rim %1, %2, %3, %0, %4" : \
+ "=r" (dest) : \
+ "i" ((unsigned char) shift), \
+ "i" (end), "i" (begin), \
+ "r" (src), "0" (dest))
/* retx Instruction */
-#define _retx_() __asm__("retx")
+#define _retx_() __asm__("retx")
+
+/* Rotate Instructions */
+#define _rotb_(shift, dest) __asm__("rotb %1,%0" : "=r" (dest) : \
+ "i" ((unsigned char)shift) , "0" (dest))
+#define _rotw_(shift, dest) __asm__("rotw %1,%0" : "=r" (dest) : \
+ "i" ((unsigned char)shift) , "0" (dest))
+#define _rotd_(shift, dest) __asm__("rotd %1,%0" : "=r" (dest) : \
+ "i" ((unsigned char)shift) , "0" (dest))
+#define _rotlb_(shift, dest) __asm__("rotlb %1,%0" : "=r" (dest) : \
+ "r" ((unsigned char)shift) , "0" (dest))
+#define _rotlw_(shift, dest) __asm__("rotlw %1,%0" : "=r" (dest) : \
+ "r" ((unsigned char)shift) , "0" (dest))
+#define _rotld_(shift, dest) __asm__("rotld %1,%0" : "=r" (dest) : \
+ "r" ((unsigned char)shift) , "0" (dest))
+#define _rotrb_(shift, dest) __asm__("rotrb %1,%0" : "=r" (dest) : \
+ "r" ((unsigned char)shift) , "0" (dest))
+#define _rotrw_(shift, dest) __asm__("rotrw %1,%0" : "=r" (dest) : \
+ "r" ((unsigned char)shift) , "0" (dest))
+#define _rotrd_(shift, dest) __asm__("rotrd %1,%0" : "=r" (dest) : \
+ "r" ((unsigned char)shift) , "0" (dest))
/* Set Bit Instructions */
-#define _sbitb_(pos, dest) __asm__("sbitb %1,%0" : "=mr" (dest) : \
- "i" ((unsigned char)pos) , "0" (dest) : "cc")
-#define _sbitw_(pos, dest) __asm__("sbitw %1,%0" : "=mr" (dest) : \
- "i" ((unsigned char)pos) , "0" (dest) : "cc")
-
-/* spr and sprd Instructions */
-#define _spr_(procreg, dest) __asm__("spr\t" procreg ",%0" : \
- "=r" (dest) : /* no input */ "0" (dest) : "cc")
-#define _sprd_(procregd, dest) __asm__("sprd\t" procregd ",%0" : \
- "=r" (dest) : /* no input */ "0" (dest) : "cc")
+#define _sbitb_(pos,dest) __asm__("sbitb %1,%0" : "=mr" (dest) : \
+ "i" ((unsigned char)pos) , "0" (dest) : "cc")
+#define _sbitw_(pos,dest) __asm__("sbitw %1,%0" : "=mr" (dest) : \
+ "i" ((unsigned char)pos) , "0" (dest) : "cc")
+#define _sbitd_(pos,dest) __asm__("sbitd %1,%0" : "=mr" (dest) : \
+ "i" ((unsigned char)pos) , "0" (dest) : "cc")
+
+/* setrfid Instruction */
+#define _setrfid_(src) __asm__("setrfid %0" : /* No output */ : \
+ "r" (src) : "cc")
+
+/* Sign Extend Instructions */
+#define _sextbw_(src, dest) __asm__("sextbw %1,%0" : "=r" (dest) : \
+ "r" ((char)src) , "0" (dest) )
+#define _sextbd_(src, dest) __asm__("sextbd %1,%0" : "=r" (dest) : \
+ "r" ((char)src) , "0" (dest) )
+#define _sextwd_(src, dest) __asm__("sextwd %1,%0" : "=r" (dest) : \
+ "r" ((short)src) , "0" (dest) )
+
+/* Shift Left Logical Instructions */
+#define _sllb_(src, dest) __asm__("sllb %1,%0" : "=r" (dest) : \
+ "ri" ((unsigned char)src) , "0" (dest))
+#define _sllw_(src, dest) __asm__("sllw %1,%0" : "=r" (dest) : \
+ "ri" ((unsigned char)src) , "0" (dest))
+#define _slld_(src, dest) __asm__("slld %1,%0" : "=r" (dest) : \
+ "ri" ((unsigned char)src) , "0" (dest))
+/* Shift Right Arithmetic Instructions */
+#define _srab_(src, dest) __asm__("srab %1,%0" : "=r" (dest) : \
+ "ri" ((unsigned char)src) , "0" (dest))
+#define _sraw_(src, dest) __asm__("sraw %1,%0" : "=r" (dest) : \
+ "ri" ((unsigned char)src) , "0" (dest))
+#define _srad_(src, dest) __asm__("srad %1,%0" : "=r" (dest) : \
+ "ri" ((unsigned char)src) , "0" (dest))
+/* Shift Right Logical Instructions */
+#define _srlb_(src, dest) __asm__("srlb %1,%0" : "=r" (dest) : \
+ "ri" ((unsigned char)src) , "0" (dest))
+#define _srlw_(src, dest) __asm__("srlw %1,%0" : "=r" (dest) : \
+ "ri" ((unsigned char)src) , "0" (dest))
+#define _srld_(src, dest) __asm__("srld %1,%0" : "=r" (dest) : \
+ "ri" ((unsigned char)src) , "0" (dest))
+
/* Store Instructions */
-#define _storb_(src, address) __asm__("storb %1,%0" : "=m" (address) : \
+#define _storb_(src,address) __asm__("storb %1,%0" : "=m" (address) : \
"ri" ((unsigned int)src))
-#define _storw_(src, address) __asm__("storw %1,%0" : "=m" (address) : \
+#define _storw_(src,address) __asm__("storw %1,%0" : "=m" (address) : \
"ri" ((unsigned int)src))
-#define _stord_(src, address) __asm__("stord %1,%0" : "=m" (address) : \
+#define _stord_(src,address) __asm__("stord %1,%0" : "=m" (address) : \
"ri" ((unsigned int)src))
/* Store Multiple Instructions */
@@ -191,90 +361,61 @@
"i" (mask) , "r" ((unsigned int)src))
/* Substruct Instructions */
-#define _subb_(src, dest) __asm__("subb %1, %0" : "=r" (dest) : \
- "ri" ((unsigned char)src), "0" (dest) : "cc")
-#define _subw_(src, dest) __asm__("subw %1, %0" : "=r" (dest) : \
- "ri" ((unsigned short)src), "0" (dest) : "cc")
-#define _subd_(src, dest) __asm__("subd %1, %0" : "=r" (dest) : \
- "ri" ((unsigned long)src), "0" (dest) : "cc")
+#define _subb_(src, dest) __asm__("subb %1, %0" : "=r" (dest) : \
+ "ri" ((unsigned char)src), "0" (dest) : "cc")
+#define _subw_(src, dest) __asm__("subw %1, %0" : "=r" (dest) : \
+ "ri" ((unsigned short)src), "0" (dest) : "cc")
+#define _subd_(src, dest) __asm__("subd %1, %0" : "=r" (dest) : \
+ "ri" ((unsigned int)src), "0" (dest) : "cc")
/* Substruct with Carry Instructions */
-#define _subcb_(src, dest) __asm__("subcb %1, %0" : "=r" (dest) : \
- "ri" ((unsigned char)src), "0" (dest) : "cc")
-#define _subcw_(src, dest) __asm__("subcw %1, %0" : "=r" (dest) : \
- "ri" ((unsigned short)src), "0" (dest) : "cc")
-
+#define _subcb_(src, dest) __asm__("subcb %1, %0" : "=r" (dest) : \
+ "ri" ((unsigned char)src), "0" (dest) : "cc")
+#define _subcw_(src, dest) __asm__("subcw %1, %0" : "=r" (dest) : \
+ "ri" ((unsigned short)src), "0" (dest) : "cc")
+#define _subcd_(src, dest) __asm__("subcd %1, %0" : "=r" (dest) : \
+ "ri" ((unsigned int)src), "0" (dest) : "cc")
+
+/* Q-Format Substruct Instructions */
+#define _subqb_(src, dest) __asm__("subqw %1,%0" : "=r" (dest) : \
+ "r" ((char)src) , "0" (dest))
+#define _subqw_(src, dest) __asm__("subqw %1,%0" : "=r" (dest) : \
+ "r" ((short)src) , "0" (dest))
+#define _subqd_(src, dest) __asm__("subqd %1,%0" : "=r" (dest) : \
+ "r" ((short)src) , "0" (dest))
+
/* Test Bit Instructions */
-#define _tbit_(offset, base) __asm__("tbit %0,%1" : /* no output */ : \
- "ri" ((unsigned char)offset) , "r" (base) : "cc")
-#define _tbitb_(pos, dest) __asm__("tbitb %0,%1" : /* No output */ : \
- "i" ((unsigned char)pos) , "m" (dest) : "cc")
-#define _tbitw_(pos, dest) __asm__("tbitw %0,%1" : /* No output */ : \
- "i" ((unsigned char)pos) , "m" (dest) : "cc")
+#define _tbitb_(pos,dest) __asm__("tbitb %0,%1" : /* No output */ : \
+ "i" ((unsigned char)pos) , "rm" (dest) : "cc")
+#define _tbitw_(pos,dest) __asm__("tbitw %0,%1" : /* No output */ : \
+ "i" ((unsigned char)pos) , "rm" (dest) : "cc")
+#define _tbitd_(pos,dest) __asm__("tbitd %0,%1" : /* No output */ : \
+ "i" ((unsigned char)pos) , "rm" (dest) : "cc")
/* wait Instruction*/
#define _wait_() __asm__ volatile ("wait" : : : "cc")
/* xor Instructions */
#define _xorb_(src, dest) __asm__("xorb %1,%0" : "=r" (dest) : \
- "ri" ((unsigned char)src) , "0" (dest))
+ "ri" ((unsigned char)src) , "0" (dest))
#define _xorw_(src, dest) __asm__("xorw %1,%0" : "=r" (dest) : \
- "ri" ((unsigned short)src) , "0" (dest))
+ "ri" ((unsigned short)src) , "0" (dest))
#define _xord_(src, dest) __asm__("xord %1,%0" : "=r" (dest) : \
- "ri" ((unsigned long)src) , "0" (dest))
-
-#if !defined (__CR16C__)
-#define _di_() __asm__ volatile ("di\n" : : : "cc")
-#else
-/* In CR16C architecture the "nop" instruction is required after the di instruction
- in order to be sure the interrupts are indeed disabled.
- For details, refer the the CR16C Programmers Reference Manual. */
-#define _di_() __asm__ volatile ("di\n\tnop" : : : "cc")
-#endif
-
-/* mtgpr Instruction */
-#define _mtgpr_(src, gpr) \
-__asm__ volatile ("movd\t%[_src], " gpr : /* no output */ \
- : [_src] "ri" (src) \
- : gpr )
-
-/* mfgpr Instruction */
-#define _mfgpr_(gpr, dest) \
-__asm__ volatile ("movd\t" gpr ", %[_dest]" : [_dest] "=r" (dest) \
- : /* no inputs */ )
-
-/* set_i_bit Operation Definition */
-#define set_i_bit() \
- do \
- { \
- unsigned short tpsr; \
- _spr_("psr", tpsr); \
- tpsr |= 0x0800; \
- _lpr_("psr",tpsr); \
- } while(0)
-
-/* set_i_bit Macro Definition */
-#define _enable_global_interrupt_ set_i_bit
-
-/* clear_i_bit Operation Definition */
-#define clear_i_bit() \
- do \
- { \
- unsigned short tpsr; \
- _spr_("psr", tpsr); \
- tpsr &= 0xf7ff; \
- _lpr_("psr",tpsr); \
- } while(0)
-
-/* clear_i_bit Macro Definition */
-#define _disbale_global_interrupt_ clear_i_bit
-
-#define _save_asm_(x) \
- __asm__ volatile (x ::: "memory","cc", \
- "r0","r1","r2","r3","r4","r5","r6","r7", \
+ "ri" ((unsigned int)src) , "0" (dest))
+
+/* Zero Extend Instructions */
+#define _zextbw_(src, dest) __asm__("zextbw %1,%0" : "=r" (dest) : \
+ "r" ((unsigned char)src) , "0" (dest))
+#define _zextbd_(src, dest) __asm__("zextbd %1,%0" : "=r" (dest) : \
+ "r" ((unsigned char)src) , "0" (dest))
+#define _zextwd_(src, dest) __asm__("zextwd %1,%0" : "=r" (dest) : \
+ "r" ((unsigned short)src) , "0" (dest))
+
+#define _save_asm_(x) \
+ __asm__ volatile (x ::: "memory","cc", \
+ "r0","r1","r2","r3","r4","r5","r6","r7", \
"r8","r9","r10","r11","r12","r13")
#endif /* _ASM */
-
diff --git a/newlib/libc/machine/epiphany/Makefile.am b/newlib/libc/machine/epiphany/Makefile.am
new file mode 100644
index 000000000..6e95d8fc8
--- /dev/null
+++ b/newlib/libc/machine/epiphany/Makefile.am
@@ -0,0 +1,42 @@
+## Copyright (c) 2011, Adapteva, Inc.
+## All rights reserved.
+
+## Redistribution and use in source and binary forms, with or without
+## modification, are permitted provided that the following conditions are met:
+## * Redistributions of source code must retain the above copyright notice,
+## this list of conditions and the following disclaimer.
+## * Redistributions in binary form must reproduce the above copyright
+## notice, this list of conditions and the following disclaimer in the
+## documentation and/or other materials provided with the distribution.
+## * Neither the name of Adapteva nor the names of its contributors may be
+## used to endorse or promote products derived from this software without
+## specific prior written permission.
+
+## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+## AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+## ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+## LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+## CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+## SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+## INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+## CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+## ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+## POSSIBILITY OF SUCH DAMAGE.
+
+## Process this file with automake to generate Makefile.in
+
+AUTOMAKE_OPTIONS = cygnus
+
+INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
+
+AM_CCASFLAGS = $(INCLUDES)
+
+noinst_LIBRARIES = lib.a
+
+lib_a_SOURCES = setjmp.S
+lib_a_CCASFLAGS=$(AM_CCASFLAGS)
+lib_a_CFLAGS = $(AM_CFLAGS)
+
+ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
+CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
diff --git a/newlib/libc/machine/epiphany/Makefile.in b/newlib/libc/machine/epiphany/Makefile.in
new file mode 100644
index 000000000..a5c1f558f
--- /dev/null
+++ b/newlib/libc/machine/epiphany/Makefile.in
@@ -0,0 +1,413 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = .
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+ $(top_srcdir)/configure $(am__configure_deps) \
+ $(srcdir)/../../../../mkinstalldirs
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/../../../acinclude.m4 \
+ $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+ARFLAGS = cru
+lib_a_AR = $(AR) $(ARFLAGS)
+lib_a_LIBADD =
+am_lib_a_OBJECTS = lib_a-setjmp.$(OBJEXT)
+lib_a_OBJECTS = $(am_lib_a_OBJECTS)
+DEFAULT_INCLUDES = -I.@am__isrc@
+depcomp =
+am__depfiles_maybe =
+CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS)
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(lib_a_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCAS = @CCAS@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NEWLIB_CFLAGS = @NEWLIB_CFLAGS@
+NO_INCLUDE_LIST = @NO_INCLUDE_LIST@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+READELF = @READELF@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+aext = @aext@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+libm_machine_dir = @libm_machine_dir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lpfx = @lpfx@
+machine_dir = @machine_dir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+newlib_basedir = @newlib_basedir@
+oext = @oext@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sys_dir = @sys_dir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AUTOMAKE_OPTIONS = cygnus
+INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
+AM_CCASFLAGS = $(INCLUDES)
+noinst_LIBRARIES = lib.a
+lib_a_SOURCES = setjmp.S
+lib_a_CCASFLAGS = $(AM_CCASFLAGS)
+lib_a_CFLAGS = $(AM_CFLAGS)
+ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
+CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .S .o .obj
+am--refresh:
+ @:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --cygnus'; \
+ $(am__cd) $(srcdir) && $(AUTOMAKE) --cygnus \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --cygnus Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ $(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES)
+ -rm -f lib.a
+ $(lib_a_AR) lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD)
+ $(RANLIB) lib.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+.S.o:
+ $(CPPASCOMPILE) -c -o $@ $<
+
+.S.obj:
+ $(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+lib_a-setjmp.o: setjmp.S
+ $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-setjmp.o `test -f 'setjmp.S' || echo '$(srcdir)/'`setjmp.S
+
+lib_a-setjmp.obj: setjmp.S
+ $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-setjmp.obj `if test -f 'setjmp.S'; then $(CYGPATH_W) 'setjmp.S'; else $(CYGPATH_W) '$(srcdir)/setjmp.S'; fi`
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+check-am:
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
+ clean-generic clean-noinstLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-tags dvi dvi-am \
+ html html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/newlib/libc/machine/epiphany/aclocal.m4 b/newlib/libc/machine/epiphany/aclocal.m4
new file mode 100644
index 000000000..f4337cf8d
--- /dev/null
+++ b/newlib/libc/machine/epiphany/aclocal.m4
@@ -0,0 +1,992 @@
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
+[m4_warning([this file was generated for autoconf 2.68.
+You have another version of autoconf. It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically `autoreconf'.])])
+
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+# (This private macro should not be called outside this file.)
+AC_DEFUN([AM_AUTOMAKE_VERSION],
+[am__api_version='1.11'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version. Point them to the right macro.
+m4_if([$1], [1.11.1], [],
+ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too. Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+[AM_AUTOMAKE_VERSION([1.11.1])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+
+# AM_AUX_DIR_EXPAND -*- Autoconf -*-
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory. The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run. This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+# fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+# fails if $ac_aux_dir is absolute,
+# fails when called from a subdirectory in a VPATH build with
+# a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir. In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+# MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH. The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_CONDITIONAL -*- Autoconf -*-
+
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 9
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ(2.52)dnl
+ ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 10
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery. Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
+ [$1], CXX, [depcc="$CXX" am_compiler_list=],
+ [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], UPC, [depcc="$UPC" am_compiler_list=],
+ [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_$1_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+ fi
+ am__universal=false
+ m4_case([$1], [CC],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac],
+ [CXX],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac])
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+])
+
+# Generate code to set up dependency tracking. -*- Autoconf -*-
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+#serial 5
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[{
+ # Autoconf 2.62 quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ case $CONFIG_FILES in
+ *\'*) eval set x "$CONFIG_FILES" ;;
+ *) set x $CONFIG_FILES ;;
+ esac
+ shift
+ for mf
+ do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # Grep'ing the whole file is not good either: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+ dirpart=`AS_DIRNAME("$mf")`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`AS_DIRNAME(["$file"])`
+ AS_MKDIR_P([$dirpart/$fdir])
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+ done
+}
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled. FIXME. This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Do all the work for Automake. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 16
+
+# This macro actually does too much. Some checks are only needed if
+# your package does certain things. But this isn't really a big deal.
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out. PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition. After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.62])dnl
+dnl Autoconf wants to disallow AM_ names. We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+ [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES(CC)],
+ [define([AC_PROG_CC],
+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES(CXX)],
+ [define([AC_PROG_CXX],
+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES(OBJC)],
+ [define([AC_PROG_OBJC],
+ defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+])
+_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
+dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
+dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
+dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+ [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+])
+
+dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
+dnl mangled by Autoconf and run in a shell conditional statement.
+m4_define([_AC_COMPILER_EXEEXT],
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
+
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated. The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+AC_SUBST(install_sh)])
+
+# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot. For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 5
+
+# AM_MAINTAINER_MODE([DEFAULT-MODE])
+# ----------------------------------
+# Control maintainer-specific portions of Makefiles.
+# Default is to disable them, unless `enable' is passed literally.
+# For symmetry, `disable' may be passed as well. Anyway, the user
+# can override the default with the --enable/--disable switch.
+AC_DEFUN([AM_MAINTAINER_MODE],
+[m4_case(m4_default([$1], [disable]),
+ [enable], [m4_define([am_maintainer_other], [disable])],
+ [disable], [m4_define([am_maintainer_other], [enable])],
+ [m4_define([am_maintainer_other], [enable])
+ m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
+AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
+ dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+ AC_ARG_ENABLE([maintainer-mode],
+[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer],
+ [USE_MAINTAINER_MODE=$enableval],
+ [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+ AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+ AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+ MAINT=$MAINTAINER_MODE_TRUE
+ AC_SUBST([MAINT])dnl
+]
+)
+
+AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
+
+# Check to see how 'make' treats includes. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+ am__include=include
+ am__quote=
+ _am_result=GNU
+ ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+
+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
+
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 6
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ AC_MSG_WARN([`missing' script is too old or missing])
+fi
+])
+
+# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_MKDIR_P
+# ---------------
+# Check for `mkdir -p'.
+AC_DEFUN([AM_PROG_MKDIR_P],
+[AC_PREREQ([2.60])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
+dnl while keeping a definition of mkdir_p for backward compatibility.
+dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
+dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
+dnl Makefile.ins that do not define MKDIR_P, so we do our own
+dnl adjustment using top_builddir (which is defined more often than
+dnl MKDIR_P).
+AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
+case $mkdir_p in
+ [[\\/$]]* | ?:[[\\/]]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+])
+
+# Helper functions for option handling. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# ------------------------------
+# Set option NAME. Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ----------------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 5
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[[\\\"\#\$\&\'\`$am_lf]]*)
+ AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+ *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
+ AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+esac
+
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
+
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT(yes)])
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries. This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
+# Check how to create a tarball. -*- Autoconf -*-
+
+# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of `v7', `ustar', or `pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+# tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+# $(am__untar) < result.tar
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+ [m4_case([$1], [ustar],, [pax],,
+ [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([../../../acinclude.m4])
diff --git a/newlib/libc/machine/epiphany/configure b/newlib/libc/machine/epiphany/configure
new file mode 100755
index 000000000..8c9c291c2
--- /dev/null
+++ b/newlib/libc/machine/epiphany/configure
@@ -0,0 +1,4745 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.68 for newlib 1.20.0.
+#
+#
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+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
+IFS=$as_save_IFS
+
+ ;;
+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
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in #(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ # We cannot yet assume a decent shell, so we have to provide a
+ # neutralization value for shells without unset; and this also
+ # works around shells that cannot unset nonexistent variables.
+ # Preserve -v and -x to the replacement shell.
+ BASH_ENV=/dev/null
+ ENV=/dev/null
+ (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+ export CONFIG_SHELL
+ case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+ esac
+ exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; 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
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# 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
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_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 sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval 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="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='newlib'
+PACKAGE_TARNAME='newlib'
+PACKAGE_VERSION='1.20.0'
+PACKAGE_STRING='newlib 1.20.0'
+PACKAGE_BUGREPORT=''
+PACKAGE_URL=''
+
+ac_unique_file="Makefile.am"
+ac_subst_vars='LTLIBOBJS
+LIBOBJS
+sys_dir
+machine_dir
+libm_machine_dir
+lpfx
+aext
+oext
+OBJEXT
+USE_LIBTOOL_FALSE
+USE_LIBTOOL_TRUE
+ELIX_LEVEL_4_FALSE
+ELIX_LEVEL_4_TRUE
+ELIX_LEVEL_3_FALSE
+ELIX_LEVEL_3_TRUE
+ELIX_LEVEL_2_FALSE
+ELIX_LEVEL_2_TRUE
+ELIX_LEVEL_1_FALSE
+ELIX_LEVEL_1_TRUE
+ELIX_LEVEL_0_FALSE
+ELIX_LEVEL_0_TRUE
+LDFLAGS
+NO_INCLUDE_LIST
+NEWLIB_CFLAGS
+CCASFLAGS
+CCAS
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
+READELF
+RANLIB
+AR
+AS
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__quote
+am__include
+DEPDIR
+CC
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+newlib_basedir
+MAY_SUPPLY_SYSCALLS_FALSE
+MAY_SUPPLY_SYSCALLS_TRUE
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_multilib
+enable_target_optspace
+enable_malloc_debugging
+enable_newlib_multithread
+enable_newlib_iconv
+enable_newlib_elix_level
+enable_newlib_io_float
+enable_newlib_supplied_syscalls
+enable_dependency_tracking
+enable_maintainer_mode
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CCAS
+CCASFLAGS'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+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.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ 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 ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -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_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$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 ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ 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 ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ 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 | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ 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-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-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ 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 ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ 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-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 ;;
+
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_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
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# 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
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ $as_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
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error $? "pwd does not report name of working directory"
+
+
+# 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 the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+ 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=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# 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 newlib 1.20.0 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 \`..']
+
+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]
+ --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]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root [DATAROOTDIR/doc/newlib]
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --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
+
+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 newlib 1.20.0:";;
+ esac
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --enable-multilib build many library versions (default)
+ --enable-target-optspace optimize for space
+ --enable-malloc-debugging indicate malloc debugging requested
+ --enable-newlib-multithread enable support for multiple threads
+ --enable-newlib-iconv enable iconv library support
+ --enable-newlib-elix-level supply desired elix library level (1-4)
+ --disable-newlib-io-float disable printf/scanf family float support
+ --disable-newlib-supplied-syscalls disable newlib from supplying syscalls
+ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors
+ --enable-maintainer-mode enable make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer
+
+Some influential environment variables:
+ CCAS assembler compiler command (defaults to CC)
+ CCASFLAGS assembler compiler flags (defaults to CFLAGS)
+
+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 the package provider.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested 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
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+newlib configure 1.20.0
+generated by GNU Autoconf 2.68
+
+Copyright (C) 2010 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
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by newlib $as_me 1.20.0, which was
+generated by GNU Autoconf 2.68. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+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`
+/usr/bin/hostinfo = `(/usr/bin/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=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&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_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=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append 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
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset 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: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > 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
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in #((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_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 $ac_precious_vars; 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,)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_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
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_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.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+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
+
+
+
+
+ac_aux_dir=
+for ac_dir in ../../../.. "$srcdir"/../../../..; do
+ if test -f "$ac_dir/install-sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f "$ac_dir/install.sh"; then
+ 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
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in ../../../.. \"$srcdir\"/../../../.." "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+am__api_version='1.11'
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# 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"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ 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/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+
+ done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$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}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[\\\"\#\$\&\'\`$am_lf]*)
+ as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+esac
+
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
+alias in your environment" "$LINENO" 5
+ fi
+
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+test "$program_prefix" != NONE &&
+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+ if ${ac_cv_path_mkdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+
+fi
+
+ test -d ./--version && rmdir ./--version
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+mkdir_p="$MKDIR_P"
+case $mkdir_p in
+ [\\/$]* | ?:[\\/]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+
+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.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
+$as_echo_n "checking for style of include used by $am_make... " >&6; }
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+ am__include=include
+ am__quote=
+ _am_result=GNU
+ ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
+$as_echo "$_am_result" >&6; }
+rm -f confinc confmf
+
+# Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+ enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+
+# Check whether --enable-multilib was given.
+if test "${enable_multilib+set}" = set; then :
+ enableval=$enable_multilib; case "${enableval}" in
+ yes) multilib=yes ;;
+ no) multilib=no ;;
+ *) as_fn_error $? "bad value ${enableval} for multilib option" "$LINENO" 5 ;;
+ esac
+else
+ multilib=yes
+fi
+
+# Check whether --enable-target-optspace was given.
+if test "${enable_target_optspace+set}" = set; then :
+ enableval=$enable_target_optspace; case "${enableval}" in
+ yes) target_optspace=yes ;;
+ no) target_optspace=no ;;
+ *) as_fn_error $? "bad value ${enableval} for target-optspace option" "$LINENO" 5 ;;
+ esac
+else
+ target_optspace=
+fi
+
+# Check whether --enable-malloc-debugging was given.
+if test "${enable_malloc_debugging+set}" = set; then :
+ enableval=$enable_malloc_debugging; case "${enableval}" in
+ yes) malloc_debugging=yes ;;
+ no) malloc_debugging=no ;;
+ *) as_fn_error $? "bad value ${enableval} for malloc-debugging option" "$LINENO" 5 ;;
+ esac
+else
+ malloc_debugging=
+fi
+
+# Check whether --enable-newlib-multithread was given.
+if test "${enable_newlib_multithread+set}" = set; then :
+ enableval=$enable_newlib_multithread; case "${enableval}" in
+ yes) newlib_multithread=yes ;;
+ no) newlib_multithread=no ;;
+ *) as_fn_error $? "bad value ${enableval} for newlib-multithread option" "$LINENO" 5 ;;
+ esac
+else
+ newlib_multithread=yes
+fi
+
+# Check whether --enable-newlib-iconv was given.
+if test "${enable_newlib_iconv+set}" = set; then :
+ enableval=$enable_newlib_iconv; if test "${newlib_iconv+set}" != set; then
+ case "${enableval}" in
+ yes) newlib_iconv=yes ;;
+ no) newlib_iconv=no ;;
+ *) as_fn_error $? "bad value ${enableval} for newlib-iconv option" "$LINENO" 5 ;;
+ esac
+ fi
+else
+ newlib_iconv=${newlib_iconv}
+fi
+
+# Check whether --enable-newlib-elix-level was given.
+if test "${enable_newlib_elix_level+set}" = set; then :
+ enableval=$enable_newlib_elix_level; case "${enableval}" in
+ 0) newlib_elix_level=0 ;;
+ 1) newlib_elix_level=1 ;;
+ 2) newlib_elix_level=2 ;;
+ 3) newlib_elix_level=3 ;;
+ 4) newlib_elix_level=4 ;;
+ *) as_fn_error $? "bad value ${enableval} for newlib-elix-level option" "$LINENO" 5 ;;
+ esac
+else
+ newlib_elix_level=0
+fi
+
+# Check whether --enable-newlib-io-float was given.
+if test "${enable_newlib_io_float+set}" = set; then :
+ enableval=$enable_newlib_io_float; case "${enableval}" in
+ yes) newlib_io_float=yes ;;
+ no) newlib_io_float=no ;;
+ *) as_fn_error $? "bad value ${enableval} for newlib-io-float option" "$LINENO" 5 ;;
+ esac
+else
+ newlib_io_float=yes
+fi
+
+# Check whether --enable-newlib-supplied-syscalls was given.
+if test "${enable_newlib_supplied_syscalls+set}" = set; then :
+ enableval=$enable_newlib_supplied_syscalls; case "${enableval}" in
+ yes) newlib_may_supply_syscalls=yes ;;
+ no) newlib_may_supply_syscalls=no ;;
+ *) as_fn_error $? "bad value ${enableval} for newlib-supplied-syscalls option" "$LINENO" 5 ;;
+ esac
+else
+ newlib_may_supply_syscalls=yes
+fi
+
+ if test x${newlib_may_supply_syscalls} = xyes; then
+ MAY_SUPPLY_SYSCALLS_TRUE=
+ MAY_SUPPLY_SYSCALLS_FALSE='#'
+else
+ MAY_SUPPLY_SYSCALLS_TRUE='#'
+ MAY_SUPPLY_SYSCALLS_FALSE=
+fi
+
+
+
+test -z "${with_target_subdir}" && with_target_subdir=.
+
+if test "${srcdir}" = "."; then
+ if test "${with_target_subdir}" != "."; then
+ newlib_basedir="${srcdir}/${with_multisrctop}../../../.."
+ else
+ newlib_basedir="${srcdir}/${with_multisrctop}../../.."
+ fi
+else
+ newlib_basedir="${srcdir}/../../.."
+fi
+
+
+
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ am__isrc=' -I$(srcdir)'
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='newlib'
+ VERSION='1.20.0'
+
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+# Always define AMTAR for backward compatibility.
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+
+
+
+
+
+
+# FIXME: We temporarily define our own version of AC_PROG_CC. This is
+# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
+# are probably using a cross compiler, which will not be able to fully
+# link an executable. This should really be fixed in autoconf
+# itself.
+
+
+
+
+
+
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+depcc="$CC" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+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
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -z "$CC" && as_fn_error $? "no acceptable cc found in \$PATH" "$LINENO" 5
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using GNU C" >&5
+$as_echo_n "checking whether we are using GNU C... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat > conftest.c <<EOF
+#ifdef __GNUC__
+ yes;
+#endif
+EOF
+if { ac_try='${CC-cc} -E conftest.c'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; } | egrep yes >/dev/null 2>&1; then
+ ac_cv_c_compiler_gnu=yes
+else
+ ac_cv_c_compiler_gnu=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+
+if test $ac_cv_c_compiler_gnu = yes; then
+ GCC=yes
+ ac_test_CFLAGS="${CFLAGS+set}"
+ ac_save_CFLAGS="$CFLAGS"
+ ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$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
+ if test "$ac_test_CFLAGS" = set; then
+ CFLAGS="$ac_save_CFLAGS"
+ elif test $ac_cv_prog_cc_g = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-O2"
+ fi
+else
+ GCC=
+ test "${CFLAGS+set}" = set || CFLAGS="-g"
+fi
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
+set dummy ${ac_tool_prefix}as; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AS"; then
+ ac_cv_prog_AS="$AS" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AS="${ac_tool_prefix}as"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AS=$ac_cv_prog_AS
+if test -n "$AS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
+$as_echo "$AS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AS"; then
+ ac_ct_AS=$AS
+ # Extract the first word of "as", so it can be a program name with args.
+set dummy as; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AS"; then
+ ac_cv_prog_ac_ct_AS="$ac_ct_AS" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_AS="as"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AS=$ac_cv_prog_ac_ct_AS
+if test -n "$ac_ct_AS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5
+$as_echo "$ac_ct_AS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AS" = x; then
+ AS=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AS=$ac_ct_AS
+ fi
+else
+ AS="$ac_cv_prog_AS"
+fi
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; 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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ RANLIB=$ac_ct_RANLIB
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}readelf", so it can be a program name with args.
+set dummy ${ac_tool_prefix}readelf; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_READELF+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$READELF"; then
+ ac_cv_prog_READELF="$READELF" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_READELF="${ac_tool_prefix}readelf"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+READELF=$ac_cv_prog_READELF
+if test -n "$READELF"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READELF" >&5
+$as_echo "$READELF" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_READELF"; then
+ ac_ct_READELF=$READELF
+ # Extract the first word of "readelf", so it can be a program name with args.
+set dummy readelf; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_READELF+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_READELF"; then
+ ac_cv_prog_ac_ct_READELF="$ac_ct_READELF" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_READELF="readelf"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_READELF=$ac_cv_prog_ac_ct_READELF
+if test -n "$ac_ct_READELF"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_READELF" >&5
+$as_echo "$ac_ct_READELF" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_READELF" = x; then
+ READELF=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ READELF=$ac_ct_READELF
+ fi
+else
+ READELF="$ac_cv_prog_READELF"
+fi
+
+
+
+
+# Hack to ensure that INSTALL won't be set to "../" with autoconf 2.13. */
+ac_given_INSTALL=$INSTALL
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
+$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
+ # Check whether --enable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then :
+ enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+else
+ USE_MAINTAINER_MODE=no
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
+ if test $USE_MAINTAINER_MODE = yes; then
+ MAINTAINER_MODE_TRUE=
+ MAINTAINER_MODE_FALSE='#'
+else
+ MAINTAINER_MODE_TRUE='#'
+ MAINTAINER_MODE_FALSE=
+fi
+
+ MAINT=$MAINTAINER_MODE_TRUE
+
+
+# By default we simply use the C compiler to build assembly code.
+
+test "${CCAS+set}" = set || CCAS=$CC
+test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS
+
+
+
+
+# We need AC_EXEEXT to keep automake happy in cygnus mode. However,
+# at least currently, we never actually build a program, so we never
+# need to use $(EXEEXT). Moreover, the test for EXEEXT normally
+# fails, because we are probably configuring with a cross compiler
+# which can't create executables. So we include AC_EXEEXT to keep
+# automake happy, but we don't execute it, since we don't care about
+# the result.
+if false; then
+
+ dummy_var=1
+fi
+
+. ${newlib_basedir}/configure.host
+
+newlib_cflags="${newlib_cflags} -fno-builtin"
+
+NEWLIB_CFLAGS=${newlib_cflags}
+
+
+NO_INCLUDE_LIST=${noinclude}
+
+
+LDFLAGS=${ldflags}
+
+
+ if test x${newlib_elix_level} = x0; then
+ ELIX_LEVEL_0_TRUE=
+ ELIX_LEVEL_0_FALSE='#'
+else
+ ELIX_LEVEL_0_TRUE='#'
+ ELIX_LEVEL_0_FALSE=
+fi
+
+ if test x${newlib_elix_level} = x1; then
+ ELIX_LEVEL_1_TRUE=
+ ELIX_LEVEL_1_FALSE='#'
+else
+ ELIX_LEVEL_1_TRUE='#'
+ ELIX_LEVEL_1_FALSE=
+fi
+
+ if test x${newlib_elix_level} = x2; then
+ ELIX_LEVEL_2_TRUE=
+ ELIX_LEVEL_2_FALSE='#'
+else
+ ELIX_LEVEL_2_TRUE='#'
+ ELIX_LEVEL_2_FALSE=
+fi
+
+ if test x${newlib_elix_level} = x3; then
+ ELIX_LEVEL_3_TRUE=
+ ELIX_LEVEL_3_FALSE='#'
+else
+ ELIX_LEVEL_3_TRUE='#'
+ ELIX_LEVEL_3_FALSE=
+fi
+
+ if test x${newlib_elix_level} = x4; then
+ ELIX_LEVEL_4_TRUE=
+ ELIX_LEVEL_4_FALSE='#'
+else
+ ELIX_LEVEL_4_TRUE='#'
+ ELIX_LEVEL_4_FALSE=
+fi
+
+
+ if test x${use_libtool} = xyes; then
+ USE_LIBTOOL_TRUE=
+ USE_LIBTOOL_FALSE='#'
+else
+ USE_LIBTOOL_TRUE='#'
+ USE_LIBTOOL_FALSE=
+fi
+
+
+# Hard-code OBJEXT. Normally it is set by AC_OBJEXT, but we
+# use oext, which is set in configure.host based on the target platform.
+OBJEXT=${oext}
+
+
+
+
+
+
+
+
+
+
+
+ac_config_files="$ac_config_files Makefile"
+
+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, 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.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `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, we kill variables containing newlines.
+# 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.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}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 "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ if test "x$cache_file" != "x/dev/null"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+#
+# If the first sed substitution is executed (which looks for macros that
+# take arguments), then branch to the quote section. Otherwise,
+# look for a macro that doesn't take arguments.
+ac_script='
+:mline
+/\\$/{
+ N
+ s,\\\n,,
+ b mline
+}
+t clear
+:clear
+s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g
+t quote
+s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g
+t quote
+b any
+:quote
+s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g
+s/\[/\\&/g
+s/\]/\\&/g
+s/\$/$$/g
+H
+:any
+${
+ g
+ s/^\n//
+ s/\n/ /g
+ p
+}
+'
+DEFS=`sed -n "$ac_script" confdefs.h`
+
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+if test -z "${MAY_SUPPLY_SYSCALLS_TRUE}" && test -z "${MAY_SUPPLY_SYSCALLS_FALSE}"; then
+ as_fn_error $? "conditional \"MAY_SUPPLY_SYSCALLS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+ as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+ as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ELIX_LEVEL_0_TRUE}" && test -z "${ELIX_LEVEL_0_FALSE}"; then
+ as_fn_error $? "conditional \"ELIX_LEVEL_0\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ELIX_LEVEL_1_TRUE}" && test -z "${ELIX_LEVEL_1_FALSE}"; then
+ as_fn_error $? "conditional \"ELIX_LEVEL_1\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ELIX_LEVEL_2_TRUE}" && test -z "${ELIX_LEVEL_2_FALSE}"; then
+ as_fn_error $? "conditional \"ELIX_LEVEL_2\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ELIX_LEVEL_3_TRUE}" && test -z "${ELIX_LEVEL_3_FALSE}"; then
+ as_fn_error $? "conditional \"ELIX_LEVEL_3\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ELIX_LEVEL_4_TRUE}" && test -z "${ELIX_LEVEL_4_FALSE}"; then
+ as_fn_error $? "conditional \"ELIX_LEVEL_4\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${USE_LIBTOOL_TRUE}" && test -z "${USE_LIBTOOL_FALSE}"; then
+ as_fn_error $? "conditional \"USE_LIBTOOL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+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
+IFS=$as_save_IFS
+
+ ;;
+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
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; 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
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# 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
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval 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="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by newlib $as_me 1.20.0, which was
+generated by GNU Autoconf 2.68. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -q, --quiet, --silent
+ 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
+
+Configuration files:
+$config_files
+
+Configuration commands:
+$config_commands
+
+Report bugs to the package provider."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+newlib config.status 1.20.0
+configured by $0, generated by GNU Autoconf 2.68,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2010 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+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=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h | --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# 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_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp= ac_tmp=
+ trap 'exit_status=$?
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries 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[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+
+eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$ac_tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # 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. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;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&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&2;}
+
+ rm -f "$ac_tmp/stdin"
+ case $ac_file in
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+
+
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+ # Autoconf 2.62 quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ case $CONFIG_FILES in
+ *\'*) eval set x "$CONFIG_FILES" ;;
+ *) set x $CONFIG_FILES ;;
+ esac
+ shift
+ for mf
+ do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # Grep'ing the whole file is not good either: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+ dirpart=`$as_dirname -- "$mf" ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$mf" : 'X\(//\)[^/]' \| \
+ X"$mf" : 'X\(//\)$' \| \
+ X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`$as_dirname -- "$file" ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$file" : 'X\(//\)[^/]' \| \
+ X"$file" : 'X\(//\)$' \| \
+ X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir=$dirpart/$fdir; as_fn_mkdir_p
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+ done
+}
+ ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# 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 || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
diff --git a/newlib/libc/machine/epiphany/configure.in b/newlib/libc/machine/epiphany/configure.in
new file mode 100644
index 000000000..c9d85b816
--- /dev/null
+++ b/newlib/libc/machine/epiphany/configure.in
@@ -0,0 +1,41 @@
+dnl This is the newlib/libc/machine/epiphany configure.in file.
+
+dnl Copyright (c) 2011, 2012 Adapteva, Inc.
+dnl All rights reserved.
+
+dnl Redistribution and use in source and binary forms, with or without
+dnl modification, are permitted provided that the following conditions are met:
+dnl * Redistributions of source code must retain the above copyright notice,
+dnl this list of conditions and the following disclaimer.
+dnl * Redistributions in binary form must reproduce the above copyright
+dnl notice, this list of conditions and the following disclaimer in the
+dnl documentation and/or other materials provided with the distribution.
+dnl * Neither the name of Adapteva nor the names of its contributors may be
+dnl used to endorse or promote products derived from this software without
+dnl specific prior written permission.
+
+dnl THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+dnl AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+dnl IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+dnl ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+dnl LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+dnl CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+dnl SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+dnl INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+dnl CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+dnl ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+dnl POSSIBILITY OF SUCH DAMAGE.
+
+dnl Process this file with autoconf to produce a configure script.
+
+AC_PREREQ(2.59)
+AC_INIT([newlib],[NEWLIB_VERSION])
+AC_CONFIG_SRCDIR([Makefile.am])
+
+dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake.
+AC_CONFIG_AUX_DIR(../../../..)
+
+NEWLIB_CONFIGURE(../../..)
+
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
diff --git a/newlib/libc/machine/epiphany/machine/stdlib.h b/newlib/libc/machine/epiphany/machine/stdlib.h
new file mode 100644
index 000000000..95b4063b0
--- /dev/null
+++ b/newlib/libc/machine/epiphany/machine/stdlib.h
@@ -0,0 +1,15 @@
+static __inline__ long int
+random (void)
+{
+ extern int rand(void);
+
+ return rand ();
+}
+
+static __inline__ void
+srandom (unsigned int seed)
+{
+ void srand(unsigned int seed);
+
+ srand (seed);
+}
diff --git a/newlib/libc/machine/epiphany/setjmp.S b/newlib/libc/machine/epiphany/setjmp.S
new file mode 100644
index 000000000..2986bb47a
--- /dev/null
+++ b/newlib/libc/machine/epiphany/setjmp.S
@@ -0,0 +1,65 @@
+/* setjmp and longjmp
+
+ Copyright (c) 2011, Adapteva, Inc.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of Adapteva nor the names of its contributors may be
+ used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE. */
+
+ .file "setjmp.S"
+ .section .text
+ .align 4
+ .global _setjmp
+ .type _setjmp, %function
+_setjmp:
+ strd lr,[r0]
+ strd r4,[r0,1]
+ strd r6,[r0,2]
+ strd r8,[r0,3]
+ strd r10,[r0,4]
+ strd r32,[r0,5]
+ strd r34,[r0,6]
+ strd r36,[r0,7]
+ strd r38,[r0,8]
+ str sp,[r0,18]
+ mov r0,#0
+ rts
+ .size _setjmp, .-_setjmp
+
+ .global _longjmp
+_longjmp:
+ ldrd lr,[r0] ; return address / r15
+ ldrd r4,[r0,1]
+ ldrd r6,[r0,2]
+ ldrd r8,[r0,3]
+ ldrd r10,[r0,4]
+ ldrd r32,[r0,5]
+ ldrd r34,[r0,6]
+ ldrd r36,[r0,7]
+ ldrd r38,[r0,8]
+ ldr sp,[r0,18]
+ sub r1,r1,0
+ mov r0,#1
+ movne r0,r1
+ jr lr
+ .size _longjmp, .-_longjmp
diff --git a/newlib/libc/machine/rl78/Makefile.am b/newlib/libc/machine/rl78/Makefile.am
new file mode 100644
index 000000000..5b78bc171
--- /dev/null
+++ b/newlib/libc/machine/rl78/Makefile.am
@@ -0,0 +1,16 @@
+## Process this file with automake to generate Makefile.in
+
+AUTOMAKE_OPTIONS = cygnus
+
+INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
+
+AM_CCASFLAGS = $(INCLUDES)
+
+noinst_LIBRARIES = lib.a
+
+lib_a_SOURCES = setjmp.S
+lib_a_CCASFLAGS=$(AM_CCASFLAGS)
+lib_a_CFLAGS=$(AM_CFLAGS)
+
+ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
+CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
diff --git a/newlib/libc/machine/rl78/Makefile.in b/newlib/libc/machine/rl78/Makefile.in
new file mode 100644
index 000000000..a5c1f558f
--- /dev/null
+++ b/newlib/libc/machine/rl78/Makefile.in
@@ -0,0 +1,413 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = .
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+ $(top_srcdir)/configure $(am__configure_deps) \
+ $(srcdir)/../../../../mkinstalldirs
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/../../../acinclude.m4 \
+ $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+ARFLAGS = cru
+lib_a_AR = $(AR) $(ARFLAGS)
+lib_a_LIBADD =
+am_lib_a_OBJECTS = lib_a-setjmp.$(OBJEXT)
+lib_a_OBJECTS = $(am_lib_a_OBJECTS)
+DEFAULT_INCLUDES = -I.@am__isrc@
+depcomp =
+am__depfiles_maybe =
+CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS)
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(lib_a_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCAS = @CCAS@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NEWLIB_CFLAGS = @NEWLIB_CFLAGS@
+NO_INCLUDE_LIST = @NO_INCLUDE_LIST@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+READELF = @READELF@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+aext = @aext@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+libm_machine_dir = @libm_machine_dir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lpfx = @lpfx@
+machine_dir = @machine_dir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+newlib_basedir = @newlib_basedir@
+oext = @oext@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sys_dir = @sys_dir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AUTOMAKE_OPTIONS = cygnus
+INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
+AM_CCASFLAGS = $(INCLUDES)
+noinst_LIBRARIES = lib.a
+lib_a_SOURCES = setjmp.S
+lib_a_CCASFLAGS = $(AM_CCASFLAGS)
+lib_a_CFLAGS = $(AM_CFLAGS)
+ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
+CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .S .o .obj
+am--refresh:
+ @:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --cygnus'; \
+ $(am__cd) $(srcdir) && $(AUTOMAKE) --cygnus \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --cygnus Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ $(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES)
+ -rm -f lib.a
+ $(lib_a_AR) lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD)
+ $(RANLIB) lib.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+.S.o:
+ $(CPPASCOMPILE) -c -o $@ $<
+
+.S.obj:
+ $(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+lib_a-setjmp.o: setjmp.S
+ $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-setjmp.o `test -f 'setjmp.S' || echo '$(srcdir)/'`setjmp.S
+
+lib_a-setjmp.obj: setjmp.S
+ $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CCASFLAGS) $(CCASFLAGS) -c -o lib_a-setjmp.obj `if test -f 'setjmp.S'; then $(CYGPATH_W) 'setjmp.S'; else $(CYGPATH_W) '$(srcdir)/setjmp.S'; fi`
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+check-am:
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
+ clean-generic clean-noinstLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-tags dvi dvi-am \
+ html html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/newlib/libc/machine/rl78/aclocal.m4 b/newlib/libc/machine/rl78/aclocal.m4
new file mode 100644
index 000000000..f4337cf8d
--- /dev/null
+++ b/newlib/libc/machine/rl78/aclocal.m4
@@ -0,0 +1,992 @@
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
+[m4_warning([this file was generated for autoconf 2.68.
+You have another version of autoconf. It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically `autoreconf'.])])
+
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+# (This private macro should not be called outside this file.)
+AC_DEFUN([AM_AUTOMAKE_VERSION],
+[am__api_version='1.11'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version. Point them to the right macro.
+m4_if([$1], [1.11.1], [],
+ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too. Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+[AM_AUTOMAKE_VERSION([1.11.1])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+
+# AM_AUX_DIR_EXPAND -*- Autoconf -*-
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory. The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run. This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+# fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+# fails if $ac_aux_dir is absolute,
+# fails when called from a subdirectory in a VPATH build with
+# a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir. In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+# MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH. The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_CONDITIONAL -*- Autoconf -*-
+
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 9
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ(2.52)dnl
+ ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 10
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery. Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
+ [$1], CXX, [depcc="$CXX" am_compiler_list=],
+ [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], UPC, [depcc="$UPC" am_compiler_list=],
+ [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_$1_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+ fi
+ am__universal=false
+ m4_case([$1], [CC],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac],
+ [CXX],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac])
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+])
+
+# Generate code to set up dependency tracking. -*- Autoconf -*-
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+#serial 5
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[{
+ # Autoconf 2.62 quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ case $CONFIG_FILES in
+ *\'*) eval set x "$CONFIG_FILES" ;;
+ *) set x $CONFIG_FILES ;;
+ esac
+ shift
+ for mf
+ do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # Grep'ing the whole file is not good either: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+ dirpart=`AS_DIRNAME("$mf")`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`AS_DIRNAME(["$file"])`
+ AS_MKDIR_P([$dirpart/$fdir])
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+ done
+}
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled. FIXME. This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Do all the work for Automake. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 16
+
+# This macro actually does too much. Some checks are only needed if
+# your package does certain things. But this isn't really a big deal.
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out. PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition. After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.62])dnl
+dnl Autoconf wants to disallow AM_ names. We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+ [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES(CC)],
+ [define([AC_PROG_CC],
+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES(CXX)],
+ [define([AC_PROG_CXX],
+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES(OBJC)],
+ [define([AC_PROG_OBJC],
+ defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+])
+_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
+dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
+dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
+dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+ [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+])
+
+dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
+dnl mangled by Autoconf and run in a shell conditional statement.
+m4_define([_AC_COMPILER_EXEEXT],
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
+
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated. The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+AC_SUBST(install_sh)])
+
+# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot. For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 5
+
+# AM_MAINTAINER_MODE([DEFAULT-MODE])
+# ----------------------------------
+# Control maintainer-specific portions of Makefiles.
+# Default is to disable them, unless `enable' is passed literally.
+# For symmetry, `disable' may be passed as well. Anyway, the user
+# can override the default with the --enable/--disable switch.
+AC_DEFUN([AM_MAINTAINER_MODE],
+[m4_case(m4_default([$1], [disable]),
+ [enable], [m4_define([am_maintainer_other], [disable])],
+ [disable], [m4_define([am_maintainer_other], [enable])],
+ [m4_define([am_maintainer_other], [enable])
+ m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
+AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
+ dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+ AC_ARG_ENABLE([maintainer-mode],
+[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer],
+ [USE_MAINTAINER_MODE=$enableval],
+ [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+ AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+ AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+ MAINT=$MAINTAINER_MODE_TRUE
+ AC_SUBST([MAINT])dnl
+]
+)
+
+AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
+
+# Check to see how 'make' treats includes. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+ am__include=include
+ am__quote=
+ _am_result=GNU
+ ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+
+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
+
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 6
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ AC_MSG_WARN([`missing' script is too old or missing])
+fi
+])
+
+# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_MKDIR_P
+# ---------------
+# Check for `mkdir -p'.
+AC_DEFUN([AM_PROG_MKDIR_P],
+[AC_PREREQ([2.60])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
+dnl while keeping a definition of mkdir_p for backward compatibility.
+dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
+dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
+dnl Makefile.ins that do not define MKDIR_P, so we do our own
+dnl adjustment using top_builddir (which is defined more often than
+dnl MKDIR_P).
+AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
+case $mkdir_p in
+ [[\\/$]]* | ?:[[\\/]]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+])
+
+# Helper functions for option handling. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# ------------------------------
+# Set option NAME. Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ----------------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 5
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[[\\\"\#\$\&\'\`$am_lf]]*)
+ AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+ *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
+ AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+esac
+
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
+
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT(yes)])
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries. This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
+# Check how to create a tarball. -*- Autoconf -*-
+
+# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of `v7', `ustar', or `pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+# tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+# $(am__untar) < result.tar
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+ [m4_case([$1], [ustar],, [pax],,
+ [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([../../../acinclude.m4])
diff --git a/newlib/libc/machine/rl78/configure b/newlib/libc/machine/rl78/configure
new file mode 100755
index 000000000..e7fe20753
--- /dev/null
+++ b/newlib/libc/machine/rl78/configure
@@ -0,0 +1,4745 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.68 for newlib 1.20.0.
+#
+#
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+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
+IFS=$as_save_IFS
+
+ ;;
+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
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in #(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ # We cannot yet assume a decent shell, so we have to provide a
+ # neutralization value for shells without unset; and this also
+ # works around shells that cannot unset nonexistent variables.
+ # Preserve -v and -x to the replacement shell.
+ BASH_ENV=/dev/null
+ ENV=/dev/null
+ (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+ export CONFIG_SHELL
+ case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+ esac
+ exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; 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
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# 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
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_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 sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval 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="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='newlib'
+PACKAGE_TARNAME='newlib'
+PACKAGE_VERSION='1.20.0'
+PACKAGE_STRING='newlib 1.20.0'
+PACKAGE_BUGREPORT=''
+PACKAGE_URL=''
+
+ac_unique_file="setjmp.S"
+ac_subst_vars='LTLIBOBJS
+LIBOBJS
+sys_dir
+machine_dir
+libm_machine_dir
+lpfx
+aext
+oext
+OBJEXT
+USE_LIBTOOL_FALSE
+USE_LIBTOOL_TRUE
+ELIX_LEVEL_4_FALSE
+ELIX_LEVEL_4_TRUE
+ELIX_LEVEL_3_FALSE
+ELIX_LEVEL_3_TRUE
+ELIX_LEVEL_2_FALSE
+ELIX_LEVEL_2_TRUE
+ELIX_LEVEL_1_FALSE
+ELIX_LEVEL_1_TRUE
+ELIX_LEVEL_0_FALSE
+ELIX_LEVEL_0_TRUE
+LDFLAGS
+NO_INCLUDE_LIST
+NEWLIB_CFLAGS
+CCASFLAGS
+CCAS
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
+READELF
+RANLIB
+AR
+AS
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__quote
+am__include
+DEPDIR
+CC
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+newlib_basedir
+MAY_SUPPLY_SYSCALLS_FALSE
+MAY_SUPPLY_SYSCALLS_TRUE
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_multilib
+enable_target_optspace
+enable_malloc_debugging
+enable_newlib_multithread
+enable_newlib_iconv
+enable_newlib_elix_level
+enable_newlib_io_float
+enable_newlib_supplied_syscalls
+enable_dependency_tracking
+enable_maintainer_mode
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CCAS
+CCASFLAGS'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+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.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ 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 ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -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_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$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 ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ 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 ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ 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 | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ 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-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-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ 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 ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ 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-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 ;;
+
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_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
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# 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
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ $as_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
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error $? "pwd does not report name of working directory"
+
+
+# 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 the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+ 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=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# 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 newlib 1.20.0 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 \`..']
+
+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]
+ --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]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root [DATAROOTDIR/doc/newlib]
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --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
+
+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 newlib 1.20.0:";;
+ esac
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --enable-multilib build many library versions (default)
+ --enable-target-optspace optimize for space
+ --enable-malloc-debugging indicate malloc debugging requested
+ --enable-newlib-multithread enable support for multiple threads
+ --enable-newlib-iconv enable iconv library support
+ --enable-newlib-elix-level supply desired elix library level (1-4)
+ --disable-newlib-io-float disable printf/scanf family float support
+ --disable-newlib-supplied-syscalls disable newlib from supplying syscalls
+ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors
+ --enable-maintainer-mode enable make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer
+
+Some influential environment variables:
+ CCAS assembler compiler command (defaults to CC)
+ CCASFLAGS assembler compiler flags (defaults to CFLAGS)
+
+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 the package provider.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested 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
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+newlib configure 1.20.0
+generated by GNU Autoconf 2.68
+
+Copyright (C) 2010 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
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by newlib $as_me 1.20.0, which was
+generated by GNU Autoconf 2.68. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+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`
+/usr/bin/hostinfo = `(/usr/bin/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=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&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_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=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append 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
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset 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: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > 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
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in #((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_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 $ac_precious_vars; 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,)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_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
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_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.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+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
+
+
+
+
+ac_aux_dir=
+for ac_dir in ../../../.. "$srcdir"/../../../..; do
+ if test -f "$ac_dir/install-sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f "$ac_dir/install.sh"; then
+ 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
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in ../../../.. \"$srcdir\"/../../../.." "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+am__api_version='1.11'
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# 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"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ 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/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+
+ done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$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}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[\\\"\#\$\&\'\`$am_lf]*)
+ as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+esac
+
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
+alias in your environment" "$LINENO" 5
+ fi
+
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+test "$program_prefix" != NONE &&
+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+ if ${ac_cv_path_mkdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+
+fi
+
+ test -d ./--version && rmdir ./--version
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+mkdir_p="$MKDIR_P"
+case $mkdir_p in
+ [\\/$]* | ?:[\\/]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+
+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.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
+$as_echo_n "checking for style of include used by $am_make... " >&6; }
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+ am__include=include
+ am__quote=
+ _am_result=GNU
+ ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
+$as_echo "$_am_result" >&6; }
+rm -f confinc confmf
+
+# Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+ enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+
+# Check whether --enable-multilib was given.
+if test "${enable_multilib+set}" = set; then :
+ enableval=$enable_multilib; case "${enableval}" in
+ yes) multilib=yes ;;
+ no) multilib=no ;;
+ *) as_fn_error $? "bad value ${enableval} for multilib option" "$LINENO" 5 ;;
+ esac
+else
+ multilib=yes
+fi
+
+# Check whether --enable-target-optspace was given.
+if test "${enable_target_optspace+set}" = set; then :
+ enableval=$enable_target_optspace; case "${enableval}" in
+ yes) target_optspace=yes ;;
+ no) target_optspace=no ;;
+ *) as_fn_error $? "bad value ${enableval} for target-optspace option" "$LINENO" 5 ;;
+ esac
+else
+ target_optspace=
+fi
+
+# Check whether --enable-malloc-debugging was given.
+if test "${enable_malloc_debugging+set}" = set; then :
+ enableval=$enable_malloc_debugging; case "${enableval}" in
+ yes) malloc_debugging=yes ;;
+ no) malloc_debugging=no ;;
+ *) as_fn_error $? "bad value ${enableval} for malloc-debugging option" "$LINENO" 5 ;;
+ esac
+else
+ malloc_debugging=
+fi
+
+# Check whether --enable-newlib-multithread was given.
+if test "${enable_newlib_multithread+set}" = set; then :
+ enableval=$enable_newlib_multithread; case "${enableval}" in
+ yes) newlib_multithread=yes ;;
+ no) newlib_multithread=no ;;
+ *) as_fn_error $? "bad value ${enableval} for newlib-multithread option" "$LINENO" 5 ;;
+ esac
+else
+ newlib_multithread=yes
+fi
+
+# Check whether --enable-newlib-iconv was given.
+if test "${enable_newlib_iconv+set}" = set; then :
+ enableval=$enable_newlib_iconv; if test "${newlib_iconv+set}" != set; then
+ case "${enableval}" in
+ yes) newlib_iconv=yes ;;
+ no) newlib_iconv=no ;;
+ *) as_fn_error $? "bad value ${enableval} for newlib-iconv option" "$LINENO" 5 ;;
+ esac
+ fi
+else
+ newlib_iconv=${newlib_iconv}
+fi
+
+# Check whether --enable-newlib-elix-level was given.
+if test "${enable_newlib_elix_level+set}" = set; then :
+ enableval=$enable_newlib_elix_level; case "${enableval}" in
+ 0) newlib_elix_level=0 ;;
+ 1) newlib_elix_level=1 ;;
+ 2) newlib_elix_level=2 ;;
+ 3) newlib_elix_level=3 ;;
+ 4) newlib_elix_level=4 ;;
+ *) as_fn_error $? "bad value ${enableval} for newlib-elix-level option" "$LINENO" 5 ;;
+ esac
+else
+ newlib_elix_level=0
+fi
+
+# Check whether --enable-newlib-io-float was given.
+if test "${enable_newlib_io_float+set}" = set; then :
+ enableval=$enable_newlib_io_float; case "${enableval}" in
+ yes) newlib_io_float=yes ;;
+ no) newlib_io_float=no ;;
+ *) as_fn_error $? "bad value ${enableval} for newlib-io-float option" "$LINENO" 5 ;;
+ esac
+else
+ newlib_io_float=yes
+fi
+
+# Check whether --enable-newlib-supplied-syscalls was given.
+if test "${enable_newlib_supplied_syscalls+set}" = set; then :
+ enableval=$enable_newlib_supplied_syscalls; case "${enableval}" in
+ yes) newlib_may_supply_syscalls=yes ;;
+ no) newlib_may_supply_syscalls=no ;;
+ *) as_fn_error $? "bad value ${enableval} for newlib-supplied-syscalls option" "$LINENO" 5 ;;
+ esac
+else
+ newlib_may_supply_syscalls=yes
+fi
+
+ if test x${newlib_may_supply_syscalls} = xyes; then
+ MAY_SUPPLY_SYSCALLS_TRUE=
+ MAY_SUPPLY_SYSCALLS_FALSE='#'
+else
+ MAY_SUPPLY_SYSCALLS_TRUE='#'
+ MAY_SUPPLY_SYSCALLS_FALSE=
+fi
+
+
+
+test -z "${with_target_subdir}" && with_target_subdir=.
+
+if test "${srcdir}" = "."; then
+ if test "${with_target_subdir}" != "."; then
+ newlib_basedir="${srcdir}/${with_multisrctop}../../../.."
+ else
+ newlib_basedir="${srcdir}/${with_multisrctop}../../.."
+ fi
+else
+ newlib_basedir="${srcdir}/../../.."
+fi
+
+
+
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ am__isrc=' -I$(srcdir)'
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='newlib'
+ VERSION='1.20.0'
+
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+# Always define AMTAR for backward compatibility.
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+
+
+
+
+
+
+# FIXME: We temporarily define our own version of AC_PROG_CC. This is
+# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
+# are probably using a cross compiler, which will not be able to fully
+# link an executable. This should really be fixed in autoconf
+# itself.
+
+
+
+
+
+
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+depcc="$CC" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+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
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -z "$CC" && as_fn_error $? "no acceptable cc found in \$PATH" "$LINENO" 5
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using GNU C" >&5
+$as_echo_n "checking whether we are using GNU C... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat > conftest.c <<EOF
+#ifdef __GNUC__
+ yes;
+#endif
+EOF
+if { ac_try='${CC-cc} -E conftest.c'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; } | egrep yes >/dev/null 2>&1; then
+ ac_cv_c_compiler_gnu=yes
+else
+ ac_cv_c_compiler_gnu=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+
+if test $ac_cv_c_compiler_gnu = yes; then
+ GCC=yes
+ ac_test_CFLAGS="${CFLAGS+set}"
+ ac_save_CFLAGS="$CFLAGS"
+ ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$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
+ if test "$ac_test_CFLAGS" = set; then
+ CFLAGS="$ac_save_CFLAGS"
+ elif test $ac_cv_prog_cc_g = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-O2"
+ fi
+else
+ GCC=
+ test "${CFLAGS+set}" = set || CFLAGS="-g"
+fi
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
+set dummy ${ac_tool_prefix}as; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AS"; then
+ ac_cv_prog_AS="$AS" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AS="${ac_tool_prefix}as"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AS=$ac_cv_prog_AS
+if test -n "$AS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
+$as_echo "$AS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AS"; then
+ ac_ct_AS=$AS
+ # Extract the first word of "as", so it can be a program name with args.
+set dummy as; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AS"; then
+ ac_cv_prog_ac_ct_AS="$ac_ct_AS" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_AS="as"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AS=$ac_cv_prog_ac_ct_AS
+if test -n "$ac_ct_AS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5
+$as_echo "$ac_ct_AS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AS" = x; then
+ AS=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AS=$ac_ct_AS
+ fi
+else
+ AS="$ac_cv_prog_AS"
+fi
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; 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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ RANLIB=$ac_ct_RANLIB
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}readelf", so it can be a program name with args.
+set dummy ${ac_tool_prefix}readelf; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_READELF+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$READELF"; then
+ ac_cv_prog_READELF="$READELF" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_READELF="${ac_tool_prefix}readelf"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+READELF=$ac_cv_prog_READELF
+if test -n "$READELF"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READELF" >&5
+$as_echo "$READELF" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_READELF"; then
+ ac_ct_READELF=$READELF
+ # Extract the first word of "readelf", so it can be a program name with args.
+set dummy readelf; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_READELF+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_READELF"; then
+ ac_cv_prog_ac_ct_READELF="$ac_ct_READELF" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_READELF="readelf"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_READELF=$ac_cv_prog_ac_ct_READELF
+if test -n "$ac_ct_READELF"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_READELF" >&5
+$as_echo "$ac_ct_READELF" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_READELF" = x; then
+ READELF=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ READELF=$ac_ct_READELF
+ fi
+else
+ READELF="$ac_cv_prog_READELF"
+fi
+
+
+
+
+# Hack to ensure that INSTALL won't be set to "../" with autoconf 2.13. */
+ac_given_INSTALL=$INSTALL
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
+$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
+ # Check whether --enable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then :
+ enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+else
+ USE_MAINTAINER_MODE=no
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
+ if test $USE_MAINTAINER_MODE = yes; then
+ MAINTAINER_MODE_TRUE=
+ MAINTAINER_MODE_FALSE='#'
+else
+ MAINTAINER_MODE_TRUE='#'
+ MAINTAINER_MODE_FALSE=
+fi
+
+ MAINT=$MAINTAINER_MODE_TRUE
+
+
+# By default we simply use the C compiler to build assembly code.
+
+test "${CCAS+set}" = set || CCAS=$CC
+test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS
+
+
+
+
+# We need AC_EXEEXT to keep automake happy in cygnus mode. However,
+# at least currently, we never actually build a program, so we never
+# need to use $(EXEEXT). Moreover, the test for EXEEXT normally
+# fails, because we are probably configuring with a cross compiler
+# which can't create executables. So we include AC_EXEEXT to keep
+# automake happy, but we don't execute it, since we don't care about
+# the result.
+if false; then
+
+ dummy_var=1
+fi
+
+. ${newlib_basedir}/configure.host
+
+newlib_cflags="${newlib_cflags} -fno-builtin"
+
+NEWLIB_CFLAGS=${newlib_cflags}
+
+
+NO_INCLUDE_LIST=${noinclude}
+
+
+LDFLAGS=${ldflags}
+
+
+ if test x${newlib_elix_level} = x0; then
+ ELIX_LEVEL_0_TRUE=
+ ELIX_LEVEL_0_FALSE='#'
+else
+ ELIX_LEVEL_0_TRUE='#'
+ ELIX_LEVEL_0_FALSE=
+fi
+
+ if test x${newlib_elix_level} = x1; then
+ ELIX_LEVEL_1_TRUE=
+ ELIX_LEVEL_1_FALSE='#'
+else
+ ELIX_LEVEL_1_TRUE='#'
+ ELIX_LEVEL_1_FALSE=
+fi
+
+ if test x${newlib_elix_level} = x2; then
+ ELIX_LEVEL_2_TRUE=
+ ELIX_LEVEL_2_FALSE='#'
+else
+ ELIX_LEVEL_2_TRUE='#'
+ ELIX_LEVEL_2_FALSE=
+fi
+
+ if test x${newlib_elix_level} = x3; then
+ ELIX_LEVEL_3_TRUE=
+ ELIX_LEVEL_3_FALSE='#'
+else
+ ELIX_LEVEL_3_TRUE='#'
+ ELIX_LEVEL_3_FALSE=
+fi
+
+ if test x${newlib_elix_level} = x4; then
+ ELIX_LEVEL_4_TRUE=
+ ELIX_LEVEL_4_FALSE='#'
+else
+ ELIX_LEVEL_4_TRUE='#'
+ ELIX_LEVEL_4_FALSE=
+fi
+
+
+ if test x${use_libtool} = xyes; then
+ USE_LIBTOOL_TRUE=
+ USE_LIBTOOL_FALSE='#'
+else
+ USE_LIBTOOL_TRUE='#'
+ USE_LIBTOOL_FALSE=
+fi
+
+
+# Hard-code OBJEXT. Normally it is set by AC_OBJEXT, but we
+# use oext, which is set in configure.host based on the target platform.
+OBJEXT=${oext}
+
+
+
+
+
+
+
+
+
+
+
+ac_config_files="$ac_config_files Makefile"
+
+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, 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.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `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, we kill variables containing newlines.
+# 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.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}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 "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ if test "x$cache_file" != "x/dev/null"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+#
+# If the first sed substitution is executed (which looks for macros that
+# take arguments), then branch to the quote section. Otherwise,
+# look for a macro that doesn't take arguments.
+ac_script='
+:mline
+/\\$/{
+ N
+ s,\\\n,,
+ b mline
+}
+t clear
+:clear
+s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g
+t quote
+s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g
+t quote
+b any
+:quote
+s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g
+s/\[/\\&/g
+s/\]/\\&/g
+s/\$/$$/g
+H
+:any
+${
+ g
+ s/^\n//
+ s/\n/ /g
+ p
+}
+'
+DEFS=`sed -n "$ac_script" confdefs.h`
+
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+if test -z "${MAY_SUPPLY_SYSCALLS_TRUE}" && test -z "${MAY_SUPPLY_SYSCALLS_FALSE}"; then
+ as_fn_error $? "conditional \"MAY_SUPPLY_SYSCALLS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+ as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+ as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ELIX_LEVEL_0_TRUE}" && test -z "${ELIX_LEVEL_0_FALSE}"; then
+ as_fn_error $? "conditional \"ELIX_LEVEL_0\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ELIX_LEVEL_1_TRUE}" && test -z "${ELIX_LEVEL_1_FALSE}"; then
+ as_fn_error $? "conditional \"ELIX_LEVEL_1\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ELIX_LEVEL_2_TRUE}" && test -z "${ELIX_LEVEL_2_FALSE}"; then
+ as_fn_error $? "conditional \"ELIX_LEVEL_2\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ELIX_LEVEL_3_TRUE}" && test -z "${ELIX_LEVEL_3_FALSE}"; then
+ as_fn_error $? "conditional \"ELIX_LEVEL_3\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ELIX_LEVEL_4_TRUE}" && test -z "${ELIX_LEVEL_4_FALSE}"; then
+ as_fn_error $? "conditional \"ELIX_LEVEL_4\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${USE_LIBTOOL_TRUE}" && test -z "${USE_LIBTOOL_FALSE}"; then
+ as_fn_error $? "conditional \"USE_LIBTOOL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+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
+IFS=$as_save_IFS
+
+ ;;
+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
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; 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
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# 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
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval 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="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by newlib $as_me 1.20.0, which was
+generated by GNU Autoconf 2.68. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -q, --quiet, --silent
+ 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
+
+Configuration files:
+$config_files
+
+Configuration commands:
+$config_commands
+
+Report bugs to the package provider."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+newlib config.status 1.20.0
+configured by $0, generated by GNU Autoconf 2.68,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2010 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+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=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h | --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# 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_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp= ac_tmp=
+ trap 'exit_status=$?
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries 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[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+
+eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$ac_tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # 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. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;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&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&2;}
+
+ rm -f "$ac_tmp/stdin"
+ case $ac_file in
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+
+
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+ # Autoconf 2.62 quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ case $CONFIG_FILES in
+ *\'*) eval set x "$CONFIG_FILES" ;;
+ *) set x $CONFIG_FILES ;;
+ esac
+ shift
+ for mf
+ do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # Grep'ing the whole file is not good either: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+ dirpart=`$as_dirname -- "$mf" ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$mf" : 'X\(//\)[^/]' \| \
+ X"$mf" : 'X\(//\)$' \| \
+ X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`$as_dirname -- "$file" ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$file" : 'X\(//\)[^/]' \| \
+ X"$file" : 'X\(//\)$' \| \
+ X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir=$dirpart/$fdir; as_fn_mkdir_p
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+ done
+}
+ ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# 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 || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
diff --git a/newlib/libc/machine/rl78/configure.in b/newlib/libc/machine/rl78/configure.in
new file mode 100644
index 000000000..338a728f8
--- /dev/null
+++ b/newlib/libc/machine/rl78/configure.in
@@ -0,0 +1,14 @@
+dnl This is the newlib/libc/machine/rl78 configure.in file.
+dnl Process this file with autoconf to produce a configure script.
+
+AC_PREREQ(2.59)
+AC_INIT([newlib],[NEWLIB_VERSION])
+AC_CONFIG_SRCDIR([setjmp.S])
+
+dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake.
+AC_CONFIG_AUX_DIR(../../../..)
+
+NEWLIB_CONFIGURE(../../..)
+
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
diff --git a/newlib/libc/machine/rl78/setjmp.S b/newlib/libc/machine/rl78/setjmp.S
new file mode 100644
index 000000000..951b4ee7b
--- /dev/null
+++ b/newlib/libc/machine/rl78/setjmp.S
@@ -0,0 +1,150 @@
+/*
+
+Copyright (c) 2011 Red Hat Incorporated.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ The name of Red Hat Incorporated may not be used to endorse
+ or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+*/
+
+; clobberable
+r8 = 0xffef0
+r9 = 0xffef1
+r10 = 0xffef2
+r11 = 0xffef3
+r12 = 0xffef4
+r13 = 0xffef5
+r14 = 0xffef6
+r15 = 0xffef7
+; preserved
+r16 = 0xffee8
+r17 = 0xffee9
+r18 = 0xffeea
+r19 = 0xffeeb
+r20 = 0xffeec
+r21 = 0xffeed
+r22 = 0xffeee
+r23 = 0xffeef
+
+/* The jump buffer has the following structure:
+ R0 .. R23 3*8 bytes
+ SP 2 bytes
+ ES 1 byte
+ CS 1 byte
+ PC 4 bytes
+*/
+
+#define SAVEB(ofs,reg) mov a,reg | mov [hl+ofs],a
+#define SAVE(ofs,reg) movw ax,reg | movw [hl+ofs],ax
+
+ .global _setjmp
+ .type _setjmp, @function
+_setjmp:
+ ;; R8 = setjmp (jmp_buf *[sp+4].w)
+ ;; must return zero !!
+ push ax
+ push hl
+ push ax
+ movw ax, [sp+10]
+ movw hl, ax
+ pop ax
+ movw [hl], ax
+ SAVE (2, bc)
+ SAVE (4, de)
+ pop ax
+ movw [hl+6], ax
+ SAVE (8, r8)
+ SAVE (10, r10)
+ SAVE (12, r12)
+ SAVE (14, r14)
+ SAVE (16, r16)
+ SAVE (18, r18)
+ SAVE (20, r20)
+ SAVE (22, r22)
+
+ ;; The sp we have now includes one more pushed reg, plus $PC
+ movw ax, sp
+ addw ax, #6
+ movw [hl+24], ax
+
+ SAVEB (26, es)
+ SAVEB (27, cs)
+ SAVE (28, [sp+2])
+ SAVE (30, [sp+4])
+
+ clrw ax
+ movw r8, ax
+ pop ax
+ ret
+
+ .size _setjmp, . - _setjmp
+
+#define LOADB(ofs,reg) mov a,[hl+ofs] | mov reg,a
+#define LOAD(ofs,reg) movw ax,[hl+ofs] | movw reg,ax
+#define PUSH(ofs) movw ax,[hl+ofs] | push ax
+
+ .global _longjmp
+ .type _longjmp, @function
+_longjmp:
+ ;; noreturn longjmp (jmp_buf *[sp+4].w, int [sp+6].w)
+ movw ax, [sp+6]
+ cmpw ax,#0
+ sknz
+ onew ax
+ movw r8, ax
+
+ movw ax, [sp+4]
+ movw hl, ax
+ movw ax, [hl+24]
+ movw sp, ax ; this is the *new* stack
+
+ PUSH (30) ; high half of PC
+ PUSH (28) ; low half of PC
+ PUSH (6) ; HL
+ PUSH (0) ; AX
+
+ LOAD (2, bc)
+ LOAD (4, de)
+
+ LOAD (10, r10)
+ LOAD (12, r12)
+ LOAD (14, r14)
+ LOAD (16, r16)
+ LOAD (18, r18)
+ LOAD (20, r20)
+ LOAD (22, r22)
+
+ LOADB (26, es)
+ LOADB (27, cs)
+
+ pop ax
+ pop hl
+
+
+ ret ; pops PC (4 bytes)
+
+ .size _longjmp, . - _longjmp
+
diff --git a/newlib/libc/posix/collate.c b/newlib/libc/posix/collate.c
index 8bb04ef0d..6ee455001 100644
--- a/newlib/libc/posix/collate.c
+++ b/newlib/libc/posix/collate.c
@@ -117,26 +117,24 @@ __collate_substitute(s)
const u_char *s;
{
int dest_len, len, nlen;
- int delta = strlen((const char *) s);
+ int delta = strlen(s);
u_char *dest_str = NULL;
if(s == NULL || *s == '\0')
- return __collate_strdup((u_char *) "");
+ return __collate_strdup("");
delta += delta / 8;
- dest_str = (u_char *) malloc(dest_len = delta);
+ dest_str = malloc(dest_len = delta);
if(dest_str == NULL)
__collate_err(EX_OSERR, __FUNCTION__);
len = 0;
while(*s) {
- nlen = len + strlen((const char *)
- __collate_substitute_table[*s]);
+ nlen = len + strlen(__collate_substitute_table[*s]);
if (dest_len <= nlen) {
dest_str = reallocf(dest_str, dest_len = nlen + delta);
if(dest_str == NULL)
__collate_err(EX_OSERR, __FUNCTION__);
}
- strcpy((char *) dest_str + len,
- (const char *) __collate_substitute_table[*s++]);
+ strcpy(dest_str + len, __collate_substitute_table[*s++]);
len = nlen;
}
return dest_str;
@@ -152,9 +150,8 @@ __collate_lookup(t, len, prim, sec)
*len = 1;
*prim = *sec = 0;
for(p2 = __collate_chain_pri_table; p2->str[0]; p2++) {
- if(strncmp((const char *) t, (const char *) p2->str,
- strlen((const char *) p2->str)) == 0) {
- *len = strlen((const char *) p2->str);
+ if(strncmp(t, p2->str, strlen(p2->str)) == 0) {
+ *len = strlen(p2->str);
*prim = p2->prim;
*sec = p2->sec;
return;
@@ -168,7 +165,7 @@ u_char *
__collate_strdup(s)
u_char *s;
{
- u_char *t = (u_char *) strdup((const char *) s);
+ u_char *t = strdup(s);
if (t == NULL)
__collate_err(EX_OSERR, __FUNCTION__);
diff --git a/newlib/libc/posix/engine.c b/newlib/libc/posix/engine.c
index 73ce45c11..8494b90a9 100644
--- a/newlib/libc/posix/engine.c
+++ b/newlib/libc/posix/engine.c
@@ -145,7 +145,7 @@ int eflags;
int i;
struct match mv;
struct match *m = &mv;
- char *dp = NULL;
+ char *dp;
const sopno gf = g->firststate+1; /* +1 for OEND */
const sopno gl = g->laststate;
char *start;
@@ -181,8 +181,8 @@ int eflags;
pp = mustlast;
for (dp = start+g->mlen-1; dp < stop;) {
/* Fast skip non-matches */
- while (dp < stop && charjump[(unsigned char) *dp])
- dp += charjump[(unsigned char) *dp];
+ while (dp < stop && charjump[*dp])
+ dp += charjump[*dp];
if (dp >= stop)
break;
@@ -198,7 +198,7 @@ int eflags;
/* Jump to next possible match */
mj = matchjump[pp - mustfirst];
- cj = charjump[(unsigned char) *dp];
+ cj = charjump[*dp];
dp += (cj < mj ? mj : cj);
pp = mustlast;
}
@@ -364,12 +364,6 @@ sopno stopst;
char *ssp; /* start of string matched by subsubRE */
char *sep; /* end of string matched by subsubRE */
char *oldssp; /* previous ssp */
-#if defined (__GNUC__) && \
- ((__GNUC__ == 4 && __GNUC_MINOR__ >= 6) || __GNUC__ > 4)
-/* dp is only used for assertion testing which, for some reason, is not
- recognized as usage. */
-#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
-#endif
char *dp;
AT("diss", start, stop, startst, stopst);
diff --git a/newlib/libc/posix/glob.c b/newlib/libc/posix/glob.c
index 977a5a4f8..4dafe71aa 100644
--- a/newlib/libc/posix/glob.c
+++ b/newlib/libc/posix/glob.c
@@ -30,10 +30,6 @@
* SUCH DAMAGE.
*/
-#ifdef __CYGWIN__
-#define _NO_GLOB /* Cygwin provides its own glob. */
-#endif
-
#ifndef _NO_GLOB
#if defined(LIBC_SCCS) && !defined(lint)
diff --git a/newlib/libc/posix/popen.c b/newlib/libc/posix/popen.c
index faf72b6e3..38978c7aa 100644
--- a/newlib/libc/posix/popen.c
+++ b/newlib/libc/posix/popen.c
@@ -113,7 +113,7 @@ _DEFUN(popen, (program, type),
const char *program _AND
const char *type)
{
- struct pid *cur;
+ struct pid *cur, *last;
FILE *iop;
int pdes[2], pid;
@@ -159,7 +159,8 @@ _DEFUN(popen, (program, type),
(void)close(pdes[1]);
}
/* Close all fd's created by prior popen. */
- for (cur = pidlist; cur; cur = cur->next)
+ for (last = NULL, cur = pidlist; cur;
+ last = cur, cur = cur->next)
(void)close (fileno (cur->fp));
execl(_PATH_BSHELL, "sh", "-c", program, NULL);
_exit(127);
diff --git a/newlib/libc/posix/readdir.c b/newlib/libc/posix/readdir.c
index d3187e603..da07d5c00 100644
--- a/newlib/libc/posix/readdir.c
+++ b/newlib/libc/posix/readdir.c
@@ -75,6 +75,12 @@ _DEFUN(readdir, (dirp),
continue;
}
dp = (struct dirent *)(dirp->dd_buf + dirp->dd_loc);
+ if ((int)dp & 03) { /* bogus pointer check */
+#ifdef HAVE_DD_LOCK
+ __lock_release_recursive(dirp->dd_lock);
+#endif
+ return NULL;
+ }
if (dp->d_reclen <= 0 ||
dp->d_reclen > dirp->dd_len + 1 - dirp->dd_loc) {
#ifdef HAVE_DD_LOCK
diff --git a/newlib/libc/posix/regcomp.c b/newlib/libc/posix/regcomp.c
index bd90d2cdf..7f9e188a7 100644
--- a/newlib/libc/posix/regcomp.c
+++ b/newlib/libc/posix/regcomp.c
@@ -103,8 +103,8 @@ static void freeset(struct parse *p, cset *cs);
static int freezeset(struct parse *p, cset *cs);
static int firstch(struct parse *p, cset *cs);
static int nch(struct parse *p, cset *cs);
-#if used
static void mcadd(struct parse *p, cset *cs, char *cp);
+#if used
static void mcsub(cset *cs, char *cp);
static int mcin(cset *cs, char *cp);
static char *mcfind(cset *cs, char *cp);
@@ -308,8 +308,8 @@ struct parse *p;
int stop; /* character this ERE should end at */
{
char c;
- sopno prevback = 0;
- sopno prevfwd = 0;
+ sopno prevback;
+ sopno prevfwd;
sopno conc;
int first = 1; /* is this the first alternative? */
@@ -1333,7 +1333,6 @@ cset *cs;
return(n);
}
-#if used
/*
- mcadd - add a collating element to a cset
== static void mcadd(struct parse *p, cset *cs, \
@@ -1361,6 +1360,7 @@ char *cp;
cs->multis[cs->smultis - 1] = '\0';
}
+#if used
/*
- mcsub - subtract a collating element from a cset
== static void mcsub(cset *cs, char *cp);
@@ -1688,8 +1688,8 @@ struct parse *p;
struct re_guts *g;
{
sop *scan;
- sop *start = NULL;
- sop *newstart = NULL;
+ sop *start;
+ sop *newstart;
sopno newlen;
sop s;
char *cp;
@@ -1961,7 +1961,7 @@ struct re_guts *g;
* is the first one that would be matched).
*/
for (mindex = 0; mindex < g->mlen; mindex++)
- g->charjump[(unsigned char) g->must[mindex]] = g->mlen - mindex - 1;
+ g->charjump[g->must[mindex]] = g->mlen - mindex - 1;
}
/*
diff --git a/newlib/libc/posix/telldir.c b/newlib/libc/posix/telldir.c
index caac4890b..f2b1c79bd 100644
--- a/newlib/libc/posix/telldir.c
+++ b/newlib/libc/posix/telldir.c
@@ -69,10 +69,7 @@ struct ddloc {
static long dd_loccnt = 1; /* Index of entry for sequential readdir's */
static struct ddloc *dd_hash[NDIRHASH]; /* Hash list heads for ddlocs */
-
-#ifdef HAVE_DD_LOCK
__LOCK_INIT(static, dd_hash_lock);
-#endif
/*
* return a pointer into a directory
diff --git a/newlib/libc/posix/wordexp.c b/newlib/libc/posix/wordexp.c
index bfdb63fd0..b6c4a6d1f 100644
--- a/newlib/libc/posix/wordexp.c
+++ b/newlib/libc/posix/wordexp.c
@@ -37,6 +37,7 @@ wordexp(const char *words, wordexp_t *pwordexp, int flags)
char *iter;
pid_t pid;
int num_words = 0;
+ int num_bytes = 0;
int fd[2];
int fd_err[2];
int err = 0;
@@ -128,6 +129,8 @@ wordexp(const char *words, wordexp_t *pwordexp, int flags)
if((iter = strchr(tmp, '\n')))
*iter = '\0';
+ num_bytes = atoi(tmp) + pwordexp->we_wordc;
+
/* Get each expansion from the shell output, and store each in
pwordexp's we_wordv vector. */
for(i = 0; i < num_words; i++)
diff --git a/newlib/libc/reent/mkdirr.c b/newlib/libc/reent/mkdirr.c
index fe36de11a..29d808de8 100644
--- a/newlib/libc/reent/mkdirr.c
+++ b/newlib/libc/reent/mkdirr.c
@@ -44,8 +44,6 @@ DESCRIPTION
<<errno>>.
*/
-#include <sys/stat.h>
-
int
_DEFUN (_mkdir_r, (ptr, path, mode),
struct _reent *ptr _AND
diff --git a/newlib/libc/reent/renamer.c b/newlib/libc/reent/renamer.c
index d3951a28d..4d2d25635 100644
--- a/newlib/libc/reent/renamer.c
+++ b/newlib/libc/reent/renamer.c
@@ -1,7 +1,6 @@
/* Reentrant version of rename system call. */
#include <reent.h>
-#include <stdio.h>
#include <unistd.h>
#include <sys/stat.h>
#include <_syslist.h>
diff --git a/newlib/libc/search/hash.c b/newlib/libc/search/hash.c
index 997acb3f6..0301fc03f 100644
--- a/newlib/libc/search/hash.c
+++ b/newlib/libc/search/hash.c
@@ -141,9 +141,9 @@ _DEFUN(__hash_open, (file, flags, mode, info, dflags),
new_table = 0;
if (!file || (flags & O_TRUNC) ||
#ifdef __USE_INTERNAL_STAT64
- (_stat64(file, &statbuf) && (errno == ENOENT))) {
+ (stat64(file, &statbuf) && (errno == ENOENT))) {
#else
- (_stat(file, &statbuf) && (errno == ENOENT))) {
+ (stat(file, &statbuf) && (errno == ENOENT))) {
#endif
if (errno == ENOENT)
errno = 0; /* Just in case someone looks at errno */
@@ -157,9 +157,9 @@ _DEFUN(__hash_open, (file, flags, mode, info, dflags),
a new .db file, then reinitialize the database */
if ((flags & O_CREAT) &&
#ifdef __USE_INTERNAL_STAT64
- _fstat64(hashp->fp, &statbuf) == 0 && statbuf.st_size == 0)
+ fstat64(hashp->fp, &statbuf) == 0 && statbuf.st_size == 0)
#else
- _fstat(hashp->fp, &statbuf) == 0 && statbuf.st_size == 0)
+ fstat(hashp->fp, &statbuf) == 0 && statbuf.st_size == 0)
#endif
new_table = 1;
@@ -316,11 +316,7 @@ init_hash(hashp, file, info)
const char *file;
const HASHINFO *info;
{
-#ifdef __USE_INTERNAL_STAT64
- struct stat64 statbuf;
-#else
struct stat statbuf;
-#endif
int nelem;
nelem = 1;
@@ -339,9 +335,9 @@ init_hash(hashp, file, info)
/* Fix bucket size to be optimal for file system */
if (file != NULL) {
#ifdef __USE_INTERNAL_STAT64
- if (_stat64(file, &statbuf))
+ if (stat64(file, &statbuf))
#else
- if (_stat(file, &statbuf))
+ if (stat(file, &statbuf))
#endif
return (NULL);
hashp->BSIZE = statbuf.st_blksize;
diff --git a/newlib/libc/search/hash_bigkey.c b/newlib/libc/search/hash_bigkey.c
index 8ff52b383..449b6bed6 100644
--- a/newlib/libc/search/hash_bigkey.c
+++ b/newlib/libc/search/hash_bigkey.c
@@ -123,7 +123,7 @@ __big_insert(hashp, bufp, key, val)
if (!bufp)
return (-1);
n = p[0];
- if (!key_size) {
+ if (!key_size)
if (FREESPACE(p)) {
move_bytes = MIN(FREESPACE(p), val_size);
off = OFFSET(p) - move_bytes;
@@ -136,7 +136,6 @@ __big_insert(hashp, bufp, key, val)
OFFSET(p) = off;
} else
p[n - 2] = FULL_KEY;
- }
p = (__uint16_t *)bufp->page;
cp = bufp->page;
bufp->flags |= BUF_MOD;
diff --git a/newlib/libc/search/hash_page.c b/newlib/libc/search/hash_page.c
index 7ca304d38..68ab9db17 100644
--- a/newlib/libc/search/hash_page.c
+++ b/newlib/libc/search/hash_page.c
@@ -667,7 +667,7 @@ static __uint16_t
overflow_page(hashp)
HTAB *hashp;
{
- __uint32_t *freep = NULL;
+ __uint32_t *freep;
int max_free, offset, splitnum;
__uint16_t addr;
int bit, first_page, free_bit, free_page, i, in_use_bits, j;
diff --git a/newlib/libc/search/hcreate_r.c b/newlib/libc/search/hcreate_r.c
index 8aba524ec..4ff758fdb 100644
--- a/newlib/libc/search/hcreate_r.c
+++ b/newlib/libc/search/hcreate_r.c
@@ -123,10 +123,9 @@ hcreate_r(size_t nel, struct hsearch_data *htab)
void
hdestroy_r(struct hsearch_data *htab)
{
-#if 0
struct internal_entry *ie;
size_t idx;
-#endif
+
if (htab->htable == NULL)
return;
diff --git a/newlib/libc/stdio/asiprintf.c b/newlib/libc/stdio/asiprintf.c
index 0c363d5ea..97474fd1a 100644
--- a/newlib/libc/stdio/asiprintf.c
+++ b/newlib/libc/stdio/asiprintf.c
@@ -45,7 +45,7 @@ _DEFUN(_asiprintf_r, (ptr, strp, fmt),
if (ret >= 0)
{
*f._p = 0;
- *strp = (char *) f._bf._base;
+ *strp = f._bf._base;
}
return (ret);
}
@@ -72,7 +72,7 @@ _DEFUN(asiprintf, (strp, fmt),
if (ret >= 0)
{
*f._p = 0;
- *strp = (char *) f._bf._base;
+ *strp = f._bf._base;
}
return (ret);
}
diff --git a/newlib/libc/stdio/asprintf.c b/newlib/libc/stdio/asprintf.c
index 7b26d9f29..59a08c808 100644
--- a/newlib/libc/stdio/asprintf.c
+++ b/newlib/libc/stdio/asprintf.c
@@ -45,7 +45,7 @@ _DEFUN(_asprintf_r, (ptr, strp, fmt),
if (ret >= 0)
{
*f._p = 0;
- *strp = (char *) f._bf._base;
+ *strp = f._bf._base;
}
return (ret);
}
@@ -72,7 +72,7 @@ _DEFUN(asprintf, (strp, fmt),
if (ret >= 0)
{
*f._p = 0;
- *strp = (char *) f._bf._base;
+ *strp = f._bf._base;
}
return (ret);
}
diff --git a/newlib/libc/stdio/clearerr.c b/newlib/libc/stdio/clearerr.c
index ed4603ba2..d3b620bed 100644
--- a/newlib/libc/stdio/clearerr.c
+++ b/newlib/libc/stdio/clearerr.c
@@ -65,7 +65,7 @@ _DEFUN(clearerr, (fp),
FILE * fp)
{
CHECK_INIT(_REENT, fp);
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
__sclearerr (fp);
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
}
diff --git a/newlib/libc/stdio/fclose.c b/newlib/libc/stdio/fclose.c
index 790496413..3c8868a51 100644
--- a/newlib/libc/stdio/fclose.c
+++ b/newlib/libc/stdio/fclose.c
@@ -76,20 +76,11 @@ _DEFUN(_fclose_r, (rptr, fp),
CHECK_INIT (rptr, fp);
- /* We can't use the _newlib_flockfile_XXX macros here due to the
- interlocked locking with the sfp_lock. */
-#if !defined (__SINGLE_THREAD__) && defined (_POSIX_THREADS)
- int __oldcancel;
- pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &__oldcancel);
-#endif
_flockfile (fp);
if (fp->_flags == 0) /* not open! */
{
_funlockfile (fp);
-#if !defined (__SINGLE_THREAD__) && defined (_POSIX_THREADS)
- pthread_setcancelstate (__oldcancel, &__oldcancel);
-#endif
return (0);
}
/* Unconditionally flush to allow special handling for seekable read
@@ -112,9 +103,6 @@ _DEFUN(_fclose_r, (rptr, fp),
#endif
__sfp_lock_release ();
-#if !defined (__SINGLE_THREAD__) && defined (_POSIX_THREADS)
- pthread_setcancelstate (__oldcancel, &__oldcancel);
-#endif
return (r);
}
diff --git a/newlib/libc/stdio/fdopen.c b/newlib/libc/stdio/fdopen.c
index 77f599b65..aa764c372 100644
--- a/newlib/libc/stdio/fdopen.c
+++ b/newlib/libc/stdio/fdopen.c
@@ -93,7 +93,7 @@ _DEFUN(_fdopen_r, (ptr, fd, mode),
if ((fp = __sfp (ptr)) == 0)
return 0;
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
fp->_flags = flags;
/* POSIX recommends setting the O_APPEND bit on fd to match append
@@ -127,7 +127,7 @@ _DEFUN(_fdopen_r, (ptr, fd, mode),
fp->_flags |= __SCLE;
#endif
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return fp;
}
diff --git a/newlib/libc/stdio/feof.c b/newlib/libc/stdio/feof.c
index c0216ffed..e8db65b86 100644
--- a/newlib/libc/stdio/feof.c
+++ b/newlib/libc/stdio/feof.c
@@ -58,8 +58,8 @@ _DEFUN(feof, (fp),
{
int result;
CHECK_INIT(_REENT, fp);
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
result = __sfeof (fp);
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return result;
}
diff --git a/newlib/libc/stdio/ferror.c b/newlib/libc/stdio/ferror.c
index 0cd3c3089..72b7ce2c5 100644
--- a/newlib/libc/stdio/ferror.c
+++ b/newlib/libc/stdio/ferror.c
@@ -67,8 +67,8 @@ _DEFUN(ferror, (fp),
{
int result;
CHECK_INIT(_REENT, fp);
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
result = __sferror (fp);
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return result;
}
diff --git a/newlib/libc/stdio/fflush.c b/newlib/libc/stdio/fflush.c
index b2bde7af5..130c148c9 100644
--- a/newlib/libc/stdio/fflush.c
+++ b/newlib/libc/stdio/fflush.c
@@ -226,9 +226,9 @@ _DEFUN(_fflush_r, (ptr, fp),
if (!fp->_flags)
return 0;
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
ret = __sflush_r (ptr, fp);
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return ret;
}
diff --git a/newlib/libc/stdio/fgetc.c b/newlib/libc/stdio/fgetc.c
index 99d8330fe..e275cfeeb 100644
--- a/newlib/libc/stdio/fgetc.c
+++ b/newlib/libc/stdio/fgetc.c
@@ -78,9 +78,9 @@ _DEFUN(_fgetc_r, (ptr, fp),
{
int result;
CHECK_INIT(ptr, fp);
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
result = __sgetc_r (ptr, fp);
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return result;
}
@@ -93,9 +93,9 @@ _DEFUN(fgetc, (fp),
#if !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__)
int result;
CHECK_INIT(_REENT, fp);
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
result = __sgetc_r (_REENT, fp);
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return result;
#else
return _fgetc_r (_REENT, fp);
diff --git a/newlib/libc/stdio/fgets.c b/newlib/libc/stdio/fgets.c
index 1644fba6a..7f02e3fcb 100644
--- a/newlib/libc/stdio/fgets.c
+++ b/newlib/libc/stdio/fgets.c
@@ -98,7 +98,7 @@ _DEFUN(_fgets_r, (ptr, buf, n, fp),
CHECK_INIT(ptr, fp);
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
#ifdef __SCLE
if (fp->_flags & __SCLE)
{
@@ -112,11 +112,11 @@ _DEFUN(_fgets_r, (ptr, buf, n, fp),
}
if (c == EOF && s == buf)
{
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return NULL;
}
*s = 0;
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return buf;
}
#endif
@@ -134,7 +134,7 @@ _DEFUN(_fgets_r, (ptr, buf, n, fp),
/* EOF: stop with partial or no line */
if (s == buf)
{
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return 0;
}
break;
@@ -159,7 +159,7 @@ _DEFUN(_fgets_r, (ptr, buf, n, fp),
fp->_p = t;
_CAST_VOID memcpy ((_PTR) s, (_PTR) p, len);
s[len] = 0;
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return (buf);
}
fp->_r -= len;
@@ -169,7 +169,7 @@ _DEFUN(_fgets_r, (ptr, buf, n, fp),
}
while ((n -= len) != 0);
*s = 0;
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return buf;
}
diff --git a/newlib/libc/stdio/fgetwc.c b/newlib/libc/stdio/fgetwc.c
index 0eaaecb2f..38a79bc7c 100644
--- a/newlib/libc/stdio/fgetwc.c
+++ b/newlib/libc/stdio/fgetwc.c
@@ -164,10 +164,10 @@ _DEFUN(_fgetwc_r, (ptr, fp),
{
wint_t r;
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
ORIENT(fp, 1);
r = __fgetwc (ptr, fp);
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return r;
}
diff --git a/newlib/libc/stdio/fgetws.c b/newlib/libc/stdio/fgetws.c
index 3cf45a976..2784f1513 100644
--- a/newlib/libc/stdio/fgetws.c
+++ b/newlib/libc/stdio/fgetws.c
@@ -93,7 +93,7 @@ _DEFUN(_fgetws_r, (ptr, ws, n, fp),
const char *src;
unsigned char *nl;
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
ORIENT (fp, 1);
if (n <= 0)
@@ -110,13 +110,9 @@ _DEFUN(_fgetws_r, (ptr, ws, n, fp),
{
src = (char *) fp->_p;
nl = memchr (fp->_p, '\n', fp->_r);
- nconv = _mbsnrtowcs_r (ptr, wsp, &src,
- /* Read all bytes up to the next NL, or up to the
- end of the buffer if there is no NL. */
- nl != NULL ? (nl - fp->_p + 1) : fp->_r,
- /* But never more than n - 1 wide chars. */
- n - 1,
- &fp->_mbstate);
+ nconv = _mbsrtowcs_r (ptr, wsp, &src,
+ nl != NULL ? (nl - fp->_p + 1) : fp->_r,
+ &fp->_mbstate);
if (nconv == (size_t) -1)
/* Conversion error */
goto error;
@@ -146,11 +142,11 @@ _DEFUN(_fgetws_r, (ptr, ws, n, fp),
/* Incomplete character */
goto error;
*wsp++ = L'\0';
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return ws;
error:
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return NULL;
}
diff --git a/newlib/libc/stdio/fileno.c b/newlib/libc/stdio/fileno.c
index be8f3d66a..db399eb12 100644
--- a/newlib/libc/stdio/fileno.c
+++ b/newlib/libc/stdio/fileno.c
@@ -47,7 +47,6 @@ Supporting OS subroutines required: none.
#include <_ansi.h>
#include <stdio.h>
-#include <errno.h>
#include "local.h"
int
@@ -56,14 +55,8 @@ _DEFUN(fileno, (f),
{
int result;
CHECK_INIT (_REENT, f);
- _newlib_flockfile_start (f);
- if (f->_flags)
- result = __sfileno (f);
- else
- {
- result = -1;
- _REENT->_errno = EBADF;
- }
- _newlib_flockfile_end (f);
+ _flockfile (f);
+ result = __sfileno (f);
+ _funlockfile (f);
return result;
}
diff --git a/newlib/libc/stdio/findfp.c b/newlib/libc/stdio/findfp.c
index 0beb1e5b0..d81241434 100644
--- a/newlib/libc/stdio/findfp.c
+++ b/newlib/libc/stdio/findfp.c
@@ -108,7 +108,7 @@ _DEFUN(__sfp, (d),
int n;
struct _glue *g;
- _newlib_sfp_lock_start ();
+ __sfp_lock_acquire ();
if (!_GLOBAL_REENT->__sdidinit)
__sinit (_GLOBAL_REENT);
@@ -121,7 +121,7 @@ _DEFUN(__sfp, (d),
(g->_next = __sfmoreglue (d, NDYNAMIC)) == NULL)
break;
}
- _newlib_sfp_lock_exit ();
+ __sfp_lock_release ();
d->_errno = ENOMEM;
return NULL;
@@ -132,7 +132,7 @@ found:
#ifndef __SINGLE_THREAD__
__lock_init_recursive (fp->_lock);
#endif
- _newlib_sfp_lock_end ();
+ __sfp_lock_release ();
fp->_p = NULL; /* no current pointer */
fp->_w = 0; /* nothing to read or write */
@@ -200,11 +200,6 @@ _DEFUN(__sinit, (s),
#else
s->__sglue._niobs = 0;
s->__sglue._iobs = NULL;
- /* Avoid infinite recursion when calling __sfp for _GLOBAL_REENT. The
- problem is that __sfp checks for _GLOBAL_REENT->__sdidinit and calls
- __sinit if it's 0. */
- if (s == _GLOBAL_REENT)
- s->__sdidinit = 1;
s->_stdin = __sfp(s);
s->_stdout = __sfp(s);
s->_stderr = __sfp(s);
diff --git a/newlib/libc/stdio/fmemopen.c b/newlib/libc/stdio/fmemopen.c
index acfb23c1b..5218e8a98 100644
--- a/newlib/libc/stdio/fmemopen.c
+++ b/newlib/libc/stdio/fmemopen.c
@@ -291,12 +291,12 @@ _DEFUN(_fmemopen_r, (ptr, buf, size, mode),
if ((c = (fmemcookie *) _malloc_r (ptr, sizeof *c + (buf ? 0 : size)))
== NULL)
{
- _newlib_sfp_lock_start ();
+ __sfp_lock_acquire ();
fp->_flags = 0; /* release */
#ifndef __SINGLE_THREAD__
__lock_close_recursive (fp->_lock);
#endif
- _newlib_sfp_lock_end ();
+ __sfp_lock_release ();
return NULL;
}
@@ -343,7 +343,7 @@ _DEFUN(_fmemopen_r, (ptr, buf, size, mode),
}
}
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
fp->_file = -1;
fp->_flags = flags;
fp->_cookie = c;
@@ -355,7 +355,7 @@ _DEFUN(_fmemopen_r, (ptr, buf, size, mode),
fp->_flags |= __SL64;
#endif
fp->_close = fmemcloser;
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return fp;
}
diff --git a/newlib/libc/stdio/fopen.c b/newlib/libc/stdio/fopen.c
index 27d4bc810..64c24e7ef 100644
--- a/newlib/libc/stdio/fopen.c
+++ b/newlib/libc/stdio/fopen.c
@@ -140,16 +140,16 @@ _DEFUN(_fopen_r, (ptr, file, mode),
if ((f = _open_r (ptr, file, oflags, 0666)) < 0)
{
- _newlib_sfp_lock_start ();
+ __sfp_lock_acquire ();
fp->_flags = 0; /* release */
#ifndef __SINGLE_THREAD__
__lock_close_recursive (fp->_lock);
#endif
- _newlib_sfp_lock_end ();
+ __sfp_lock_release ();
return NULL;
}
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
fp->_file = f;
fp->_flags = flags;
@@ -167,7 +167,7 @@ _DEFUN(_fopen_r, (ptr, file, mode),
fp->_flags |= __SCLE;
#endif
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return fp;
}
diff --git a/newlib/libc/stdio/fopencookie.c b/newlib/libc/stdio/fopencookie.c
index f08d13289..5148c8a1a 100644
--- a/newlib/libc/stdio/fopencookie.c
+++ b/newlib/libc/stdio/fopencookie.c
@@ -219,16 +219,16 @@ _DEFUN(_fopencookie_r, (ptr, cookie, mode, functions),
return NULL;
if ((c = (fccookie *) _malloc_r (ptr, sizeof *c)) == NULL)
{
- _newlib_sfp_lock_start ();
+ __sfp_lock_acquire ();
fp->_flags = 0; /* release */
#ifndef __SINGLE_THREAD__
__lock_close_recursive (fp->_lock);
#endif
- _newlib_sfp_lock_end ();
+ __sfp_lock_release ();
return NULL;
}
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
fp->_file = -1;
fp->_flags = flags;
c->cookie = cookie;
@@ -246,7 +246,7 @@ _DEFUN(_fopencookie_r, (ptr, cookie, mode, functions),
#endif
c->closefn = functions.close;
fp->_close = fccloser;
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return fp;
}
diff --git a/newlib/libc/stdio/fpurge.c b/newlib/libc/stdio/fpurge.c
index dc052e85b..7e23bb7fd 100644
--- a/newlib/libc/stdio/fpurge.c
+++ b/newlib/libc/stdio/fpurge.c
@@ -68,13 +68,13 @@ _DEFUN(_fpurge_r, (ptr, fp),
CHECK_INIT (ptr, fp);
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
t = fp->_flags;
if (!t)
{
ptr->_errno = EBADF;
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return EOF;
}
fp->_p = fp->_bf._base;
@@ -86,7 +86,7 @@ _DEFUN(_fpurge_r, (ptr, fp),
}
else
fp->_w = t & (__SLBF | __SNBF) ? 0 : fp->_bf._size;
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return 0;
}
diff --git a/newlib/libc/stdio/fputc.c b/newlib/libc/stdio/fputc.c
index 6af79d470..777a34242 100644
--- a/newlib/libc/stdio/fputc.c
+++ b/newlib/libc/stdio/fputc.c
@@ -83,9 +83,9 @@ _DEFUN(_fputc_r, (ptr, ch, file),
{
int result;
CHECK_INIT(ptr, file);
- _newlib_flockfile_start (file);
+ _flockfile (file);
result = _putc_r (ptr, ch, file);
- _newlib_flockfile_end (file);
+ _funlockfile (file);
return result;
}
@@ -98,9 +98,9 @@ _DEFUN(fputc, (ch, file),
#if !defined(__OPTIMIZE_SIZE__) && !defined(PREFER_SIZE_OVER_SPEED)
int result;
CHECK_INIT(_REENT, file);
- _newlib_flockfile_start (file);
+ _flockfile (file);
result = _putc_r (_REENT, ch, file);
- _newlib_flockfile_end (file);
+ _funlockfile (file);
return result;
#else
return _fputc_r (_REENT, ch, file);
diff --git a/newlib/libc/stdio/fputs.c b/newlib/libc/stdio/fputs.c
index 6e623a530..a32dea4e2 100644
--- a/newlib/libc/stdio/fputs.c
+++ b/newlib/libc/stdio/fputs.c
@@ -88,10 +88,10 @@ _DEFUN(_fputs_r, (ptr, s, fp),
CHECK_INIT(ptr, fp);
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
ORIENT (fp, -1);
result = __sfvwrite_r (ptr, fp, &uio);
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return result;
}
diff --git a/newlib/libc/stdio/fputwc.c b/newlib/libc/stdio/fputwc.c
index 74e7a452c..f32d56675 100644
--- a/newlib/libc/stdio/fputwc.c
+++ b/newlib/libc/stdio/fputwc.c
@@ -160,10 +160,10 @@ _DEFUN(_fputwc_r, (ptr, wc, fp),
{
wint_t r;
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
ORIENT(fp, 1);
r = __fputwc(ptr, wc, fp);
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return r;
}
diff --git a/newlib/libc/stdio/fputws.c b/newlib/libc/stdio/fputws.c
index c88111cb0..b8e5d1e0b 100644
--- a/newlib/libc/stdio/fputws.c
+++ b/newlib/libc/stdio/fputws.c
@@ -87,7 +87,7 @@ _DEFUN(_fputws_r, (ptr, ws, fp),
struct __suio uio;
struct __siov iov;
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
ORIENT (fp, 1);
if (cantwrite (ptr, fp) != 0)
goto error;
@@ -104,11 +104,11 @@ _DEFUN(_fputws_r, (ptr, ws, fp),
goto error;
}
while (ws != NULL);
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return (0);
error:
- _newlib_flockfile_end(fp);
+ _funlockfile(fp);
return (-1);
}
diff --git a/newlib/libc/stdio/fread.c b/newlib/libc/stdio/fread.c
index 07fe0af5c..a39e9d85f 100644
--- a/newlib/libc/stdio/fread.c
+++ b/newlib/libc/stdio/fread.c
@@ -146,7 +146,7 @@ _DEFUN(_fread_r, (ptr, buf, size, count, fp),
CHECK_INIT(ptr, fp);
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
ORIENT (fp, -1);
if (fp->_r < 0)
fp->_r = 0;
@@ -195,11 +195,11 @@ _DEFUN(_fread_r, (ptr, buf, size, count, fp),
#ifdef __SCLE
if (fp->_flags & __SCLE)
{
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return crlf_r (ptr, fp, buf, total-resid, 1) / size;
}
#endif
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return (total - resid) / size;
}
}
@@ -220,11 +220,11 @@ _DEFUN(_fread_r, (ptr, buf, size, count, fp),
#ifdef __SCLE
if (fp->_flags & __SCLE)
{
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return crlf_r (ptr, fp, buf, total-resid, 1) / size;
}
#endif
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return (total - resid) / size;
}
}
@@ -237,11 +237,11 @@ _DEFUN(_fread_r, (ptr, buf, size, count, fp),
#ifdef __SCLE
if (fp->_flags & __SCLE)
{
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return crlf_r(ptr, fp, buf, total, 0) / size;
}
#endif
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return count;
}
diff --git a/newlib/libc/stdio/freopen.c b/newlib/libc/stdio/freopen.c
index b33eb1e22..172006259 100644
--- a/newlib/libc/stdio/freopen.c
+++ b/newlib/libc/stdio/freopen.c
@@ -100,20 +100,11 @@ _DEFUN(_freopen_r, (ptr, file, mode, fp),
CHECK_INIT (ptr, fp);
- /* We can't use the _newlib_flockfile_XXX macros here due to the
- interlocked locking with the sfp_lock. */
-#if !defined (__SINGLE_THREAD__) && defined (_POSIX_THREADS)
- int __oldcancel;
- pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &__oldcancel);
-#endif
_flockfile (fp);
if ((flags = __sflags (ptr, mode, &oflags)) == 0)
{
_funlockfile (fp);
-#if !defined (__SINGLE_THREAD__) && defined (_POSIX_THREADS)
- pthread_setcancelstate (__oldcancel, &__oldcancel);
-#endif
_fclose_r (ptr, fp);
return NULL;
}
@@ -208,7 +199,7 @@ _DEFUN(_freopen_r, (ptr, file, mode, fp),
if (HASLB (fp))
FREELB (ptr, fp);
fp->_lb._size = 0;
- fp->_flags &= ~__SORD;
+ fp->_flags & ~__SORD;
fp->_flags2 = 0;
memset (&fp->_mbstate, 0, sizeof (_mbstate_t));
@@ -222,9 +213,6 @@ _DEFUN(_freopen_r, (ptr, file, mode, fp),
__lock_close_recursive (fp->_lock);
#endif
__sfp_lock_release ();
-#if !defined (__SINGLE_THREAD__) && defined (_POSIX_THREADS)
- pthread_setcancelstate (__oldcancel, &__oldcancel);
-#endif
return NULL;
}
@@ -242,9 +230,6 @@ _DEFUN(_freopen_r, (ptr, file, mode, fp),
#endif
_funlockfile (fp);
-#if !defined (__SINGLE_THREAD__) && defined (_POSIX_THREADS)
- pthread_setcancelstate (__oldcancel, &__oldcancel);
-#endif
return fp;
}
diff --git a/newlib/libc/stdio/fseek.c b/newlib/libc/stdio/fseek.c
index 099a95892..c78d2b26c 100644
--- a/newlib/libc/stdio/fseek.c
+++ b/newlib/libc/stdio/fseek.c
@@ -138,7 +138,7 @@ _DEFUN(_fseek_r, (ptr, fp, offset, whence),
CHECK_INIT (ptr, fp);
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
/* If we've been doing some writing, and we're in append mode
then we don't really know where the filepos is. */
@@ -154,7 +154,7 @@ _DEFUN(_fseek_r, (ptr, fp, offset, whence),
if ((seekfn = fp->_seek) == NULL)
{
ptr->_errno = ESPIPE; /* ??? */
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return EOF;
}
@@ -179,7 +179,7 @@ _DEFUN(_fseek_r, (ptr, fp, offset, whence),
curoff = seekfn (ptr, fp->_cookie, (_fpos_t) 0, SEEK_CUR);
if (curoff == -1L)
{
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return EOF;
}
}
@@ -204,7 +204,7 @@ _DEFUN(_fseek_r, (ptr, fp, offset, whence),
default:
ptr->_errno = EINVAL;
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return (EOF);
}
@@ -263,7 +263,7 @@ _DEFUN(_fseek_r, (ptr, fp, offset, whence),
if ((long)target != target)
{
ptr->_errno = EOVERFLOW;
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return EOF;
}
@@ -319,7 +319,7 @@ _DEFUN(_fseek_r, (ptr, fp, offset, whence),
FREEUB (ptr, fp);
fp->_flags &= ~__SEOF;
memset (&fp->_mbstate, 0, sizeof (_mbstate_t));
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return 0;
}
@@ -349,7 +349,7 @@ _DEFUN(_fseek_r, (ptr, fp, offset, whence),
fp->_r -= n;
}
memset (&fp->_mbstate, 0, sizeof (_mbstate_t));
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return 0;
/*
@@ -361,7 +361,7 @@ dumb:
if (_fflush_r (ptr, fp)
|| seekfn (ptr, fp->_cookie, offset, whence) == POS_ERR)
{
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return EOF;
}
/* success: clear EOF indicator and discard ungetc() data */
@@ -379,7 +379,7 @@ dumb:
is performed. */
fp->_flags &= ~__SNPT;
memset (&fp->_mbstate, 0, sizeof (_mbstate_t));
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return 0;
}
diff --git a/newlib/libc/stdio/ftell.c b/newlib/libc/stdio/ftell.c
index 54a656c09..816cafa76 100644
--- a/newlib/libc/stdio/ftell.c
+++ b/newlib/libc/stdio/ftell.c
@@ -109,12 +109,12 @@ _DEFUN(_ftell_r, (ptr, fp),
CHECK_INIT (ptr, fp);
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
if (fp->_seek == NULL)
{
ptr->_errno = ESPIPE;
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return -1L;
}
@@ -131,7 +131,7 @@ _DEFUN(_ftell_r, (ptr, fp),
pos = fp->_seek (ptr, fp->_cookie, (_fpos_t) 0, SEEK_CUR);
if (pos == -1L)
{
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return pos;
}
}
@@ -156,7 +156,7 @@ _DEFUN(_ftell_r, (ptr, fp),
pos += fp->_p - fp->_bf._base;
}
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
if ((long)pos != pos)
{
pos = -1;
diff --git a/newlib/libc/stdio/funopen.c b/newlib/libc/stdio/funopen.c
index 065ed93d7..35a274f7b 100644
--- a/newlib/libc/stdio/funopen.c
+++ b/newlib/libc/stdio/funopen.c
@@ -214,16 +214,16 @@ _DEFUN(_funopen_r, (ptr, cookie, readfn, writefn, seekfn, closefn),
return NULL;
if ((c = (funcookie *) _malloc_r (ptr, sizeof *c)) == NULL)
{
- _newlib_sfp_lock_start ();
+ __sfp_lock_acquire ();
fp->_flags = 0; /* release */
#ifndef __SINGLE_THREAD__
__lock_close_recursive (fp->_lock);
#endif
- _newlib_sfp_lock_end ();
+ __sfp_lock_release ();
return NULL;
}
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
fp->_file = -1;
c->cookie = (void *) cookie; /* cast away const */
fp->_cookie = c;
@@ -260,7 +260,7 @@ _DEFUN(_funopen_r, (ptr, cookie, readfn, writefn, seekfn, closefn),
#endif
c->closefn = closefn;
fp->_close = funcloser;
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return fp;
}
diff --git a/newlib/libc/stdio/fwide.c b/newlib/libc/stdio/fwide.c
index a060d8f65..e298f911a 100644
--- a/newlib/libc/stdio/fwide.c
+++ b/newlib/libc/stdio/fwide.c
@@ -68,7 +68,7 @@ _DEFUN(_fwide_r, (ptr, fp, mode),
CHECK_INIT(ptr, fp);
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
if (mode != 0) {
ORIENT (fp, mode);
}
@@ -76,7 +76,7 @@ _DEFUN(_fwide_r, (ptr, fp, mode),
ret = 0;
else
ret = (fp->_flags2 & __SWID) ? 1 : -1;
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return ret;
}
diff --git a/newlib/libc/stdio/fwrite.c b/newlib/libc/stdio/fwrite.c
index dc218050e..ce77c8dc1 100644
--- a/newlib/libc/stdio/fwrite.c
+++ b/newlib/libc/stdio/fwrite.c
@@ -119,14 +119,14 @@ _DEFUN(_fwrite_r, (ptr, buf, size, count, fp),
CHECK_INIT(ptr, fp);
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
ORIENT (fp, -1);
if (__sfvwrite_r (ptr, fp, &uio) == 0)
{
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return count;
}
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return (n - uio.uio_resid) / size;
}
diff --git a/newlib/libc/stdio/getc.c b/newlib/libc/stdio/getc.c
index 355b19131..5b1fa888a 100644
--- a/newlib/libc/stdio/getc.c
+++ b/newlib/libc/stdio/getc.c
@@ -92,9 +92,9 @@ _DEFUN(_getc_r, (ptr, fp),
{
int result;
CHECK_INIT (ptr, fp);
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
result = __sgetc_r (ptr, fp);
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return result;
}
@@ -106,9 +106,9 @@ _DEFUN(getc, (fp),
{
int result;
CHECK_INIT (_REENT, fp);
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
result = __sgetc_r (_REENT, fp);
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return result;
}
diff --git a/newlib/libc/stdio/getdelim.c b/newlib/libc/stdio/getdelim.c
index 63a579a79..23fc50218 100644
--- a/newlib/libc/stdio/getdelim.c
+++ b/newlib/libc/stdio/getdelim.c
@@ -81,7 +81,7 @@ _DEFUN(__getdelim, (bufptr, n, delim, fp),
CHECK_INIT (_REENT, fp);
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
numbytes = *n;
ptr = buf;
@@ -129,7 +129,7 @@ _DEFUN(__getdelim, (bufptr, n, delim, fp),
}
}
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
/* if no input data, return failure */
if (ptr == buf)
diff --git a/newlib/libc/stdio/gets.c b/newlib/libc/stdio/gets.c
index f51d46196..17d144316 100644
--- a/newlib/libc/stdio/gets.c
+++ b/newlib/libc/stdio/gets.c
@@ -70,7 +70,6 @@ Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>,
#include <_ansi.h>
#include <reent.h>
#include <stdio.h>
-#include "local.h"
char *
_DEFUN(_gets_r, (ptr, buf),
@@ -80,12 +79,12 @@ _DEFUN(_gets_r, (ptr, buf),
register int c;
register char *s = buf;
- _newlib_flockfile_start (stdin);
+ _flockfile (stdin);
while ((c = __sgetc_r (ptr, stdin)) != '\n')
if (c == EOF)
if (s == buf)
{
- _newlib_flockfile_exit (stdin);
+ _funlockfile (stdin);
return NULL;
}
else
@@ -93,7 +92,7 @@ _DEFUN(_gets_r, (ptr, buf),
else
*s++ = c;
*s = 0;
- _newlib_flockfile_end (stdin);
+ _funlockfile (stdin);
return buf;
}
diff --git a/newlib/libc/stdio/local.h b/newlib/libc/stdio/local.h
index b4bc5e01a..187f7d858 100644
--- a/newlib/libc/stdio/local.h
+++ b/newlib/libc/stdio/local.h
@@ -32,83 +32,6 @@
# include <io.h>
#endif
-/* The following macros are supposed to replace calls to _flockfile/_funlockfile
- and __sfp_lock_acquire/__sfp_lock_release. In case of multi-threaded
- environments using pthreads, it's not sufficient to lock the stdio functions
- against concurrent threads accessing the same data, the locking must also be
- secured against thread cancellation.
-
- The below macros have to be used in pairs. The _newlib_XXX_start macro
- starts with a opening curly brace, the _newlib_XXX_end macro ends with a
- closing curly brace, so the start macro and the end macro mark the code
- start and end of a critical section. In case the code leaves the critical
- section before reaching the end of the critical section's code end, use
- the appropriate _newlib_XXX_exit macro. */
-
-#if !defined (__SINGLE_THREAD__) && defined (_POSIX_THREADS)
-#include <pthread.h>
-
-/* Start a stream oriented critical section: */
-# define _newlib_flockfile_start(_fp) \
- { \
- int __oldfpcancel; \
- pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &__oldfpcancel); \
- _flockfile (_fp)
-
-/* Exit from a stream oriented critical section prematurely: */
-# define _newlib_flockfile_exit(_fp) \
- _funlockfile (_fp); \
- pthread_setcancelstate (__oldfpcancel, &__oldfpcancel);
-
-/* End a stream oriented critical section: */
-# define _newlib_flockfile_end(_fp) \
- _funlockfile (_fp); \
- pthread_setcancelstate (__oldfpcancel, &__oldfpcancel); \
- }
-
-/* Start a stream list oriented critical section: */
-# define _newlib_sfp_lock_start() \
- { \
- int __oldsfpcancel; \
- pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &__oldsfpcancel); \
- __sfp_lock_acquire ()
-
-/* Exit from a stream list oriented critical section prematurely: */
-# define _newlib_sfp_lock_exit() \
- __sfp_lock_release (); \
- pthread_setcancelstate (__oldsfpcancel, &__oldsfpcancel);
-
-/* End a stream list oriented critical section: */
-# define _newlib_sfp_lock_end() \
- __sfp_lock_release (); \
- pthread_setcancelstate (__oldsfpcancel, &__oldsfpcancel); \
- }
-
-#else /* __SINGLE_THREAD__ || !_POSIX_THREADS */
-
-# define _newlib_flockfile_start(_fp) \
- { \
- _flockfile(_fp)
-
-# define _newlib_flockfile_exit(_fp) \
- _funlockfile(_fp); \
-
-# define _newlib_flockfile_end(_fp) \
- _funlockfile(_fp); \
- }
-
-# define _newlib_sfp_lock_start() \
- { \
- __sfp_lock_acquire ()
-
-# define _newlib_sfp_lock_exit() \
- __sfp_lock_release ();
-
-# define _newlib_sfp_lock_end() \
- __sfp_lock_release (); \
- }
-
-#endif /* !__SINGLE_THREAD__ && _POSIX_THREADS */
extern u_char *_EXFUN(__sccl, (char *, u_char *fmt));
extern int _EXFUN(__svfscanf_r,(struct _reent *,FILE *, _CONST char *,va_list));
diff --git a/newlib/libc/stdio/mktemp.c b/newlib/libc/stdio/mktemp.c
index ecbc7afea..1c5d76db4 100644
--- a/newlib/libc/stdio/mktemp.c
+++ b/newlib/libc/stdio/mktemp.c
@@ -247,7 +247,7 @@ _DEFUN(_gettemp, (ptr, path, doopen, domkdir, suffixlen, flags),
else
{
/* Safe, since it only encounters 7-bit characters. */
- if (isdigit ((unsigned char) *trv))
+ if (isdigit (*trv))
*trv = 'a';
else
++ * trv;
diff --git a/newlib/libc/stdio/open_memstream.c b/newlib/libc/stdio/open_memstream.c
index 0b58720a1..a53bdef2f 100644
--- a/newlib/libc/stdio/open_memstream.c
+++ b/newlib/libc/stdio/open_memstream.c
@@ -313,12 +313,12 @@ _DEFUN(internal_open_memstream_r, (ptr, buf, size, wide),
return NULL;
if ((c = (memstream *) _malloc_r (ptr, sizeof *c)) == NULL)
{
- _newlib_sfp_lock_start ();
+ __sfp_lock_acquire ();
fp->_flags = 0; /* release */
#ifndef __SINGLE_THREAD__
__lock_close_recursive (fp->_lock);
#endif
- _newlib_sfp_lock_end ();
+ __sfp_lock_release ();
return NULL;
}
/* Use *size as a hint for initial sizing, but bound the initial
@@ -338,12 +338,12 @@ _DEFUN(internal_open_memstream_r, (ptr, buf, size, wide),
*buf = _malloc_r (ptr, c->max);
if (!*buf)
{
- _newlib_sfp_lock_start ();
+ __sfp_lock_acquire ();
fp->_flags = 0; /* release */
#ifndef __SINGLE_THREAD__
__lock_close_recursive (fp->_lock);
#endif
- _newlib_sfp_lock_end ();
+ __sfp_lock_release ();
_free_r (ptr, c);
return NULL;
}
@@ -359,7 +359,7 @@ _DEFUN(internal_open_memstream_r, (ptr, buf, size, wide),
c->saved.w = L'\0';
c->wide = (int8_t) wide;
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
fp->_file = -1;
fp->_flags = __SWR;
fp->_cookie = c;
@@ -372,7 +372,7 @@ _DEFUN(internal_open_memstream_r, (ptr, buf, size, wide),
#endif
fp->_close = memcloser;
ORIENT (fp, wide);
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return fp;
}
diff --git a/newlib/libc/stdio/putc.c b/newlib/libc/stdio/putc.c
index 1115bf40d..667324d9d 100644
--- a/newlib/libc/stdio/putc.c
+++ b/newlib/libc/stdio/putc.c
@@ -97,9 +97,9 @@ _DEFUN(_putc_r, (ptr, c, fp),
{
int result;
CHECK_INIT (ptr, fp);
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
result = __sputc_r (ptr, c, fp);
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return result;
}
@@ -112,9 +112,9 @@ _DEFUN(putc, (c, fp),
#if !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__)
int result;
CHECK_INIT (_REENT, fp);
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
result = __sputc_r (_REENT, c, fp);
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return result;
#else
return _putc_r (_REENT, c, fp);
diff --git a/newlib/libc/stdio/setvbuf.c b/newlib/libc/stdio/setvbuf.c
index 63f1f80db..583a081f4 100644
--- a/newlib/libc/stdio/setvbuf.c
+++ b/newlib/libc/stdio/setvbuf.c
@@ -106,7 +106,7 @@ _DEFUN(setvbuf, (fp, buf, mode, size),
CHECK_INIT (_REENT, fp);
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
/*
* Verify arguments. The `int' limit on `size' is due to this
@@ -115,7 +115,7 @@ _DEFUN(setvbuf, (fp, buf, mode, size),
if ((mode != _IOFBF && mode != _IOLBF && mode != _IONBF) || (int)(_POINTER_INT) size < 0)
{
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return (EOF);
}
@@ -158,7 +158,7 @@ nbf:
fp->_w = 0;
fp->_bf._base = fp->_p = fp->_nbuf;
fp->_bf._size = 1;
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return (ret);
}
fp->_flags |= __SMBF;
@@ -193,6 +193,6 @@ nbf:
if (fp->_flags & __SWR)
fp->_w = fp->_flags & (__SLBF | __SNBF) ? 0 : size;
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return 0;
}
diff --git a/newlib/libc/stdio/ungetc.c b/newlib/libc/stdio/ungetc.c
index e385ce8fb..0339a3d0c 100644
--- a/newlib/libc/stdio/ungetc.c
+++ b/newlib/libc/stdio/ungetc.c
@@ -125,7 +125,7 @@ _DEFUN(_ungetc_r, (rptr, c, fp),
CHECK_INIT (rptr, fp);
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
ORIENT (fp, -1);
@@ -140,14 +140,14 @@ _DEFUN(_ungetc_r, (rptr, c, fp),
*/
if ((fp->_flags & __SRW) == 0)
{
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return EOF;
}
if (fp->_flags & __SWR)
{
if (_fflush_r (rptr, fp))
{
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return EOF;
}
fp->_flags &= ~__SWR;
@@ -167,12 +167,12 @@ _DEFUN(_ungetc_r, (rptr, c, fp),
{
if (fp->_r >= fp->_ub._size && __submore (rptr, fp))
{
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return EOF;
}
*--fp->_p = c;
fp->_r++;
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return c;
}
@@ -186,7 +186,7 @@ _DEFUN(_ungetc_r, (rptr, c, fp),
{
fp->_p--;
fp->_r++;
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return c;
}
@@ -202,7 +202,7 @@ _DEFUN(_ungetc_r, (rptr, c, fp),
fp->_ubuf[sizeof (fp->_ubuf) - 1] = c;
fp->_p = &fp->_ubuf[sizeof (fp->_ubuf) - 1];
fp->_r = 1;
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return c;
}
diff --git a/newlib/libc/stdio/ungetwc.c b/newlib/libc/stdio/ungetwc.c
index ee0d7fc75..234d2f7ef 100644
--- a/newlib/libc/stdio/ungetwc.c
+++ b/newlib/libc/stdio/ungetwc.c
@@ -82,7 +82,7 @@ _DEFUN(_ungetwc_r, (ptr, wc, fp),
char buf[MB_LEN_MAX];
size_t len;
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
ORIENT (fp, 1);
if (wc == WEOF)
wc = WEOF;
@@ -98,7 +98,7 @@ _DEFUN(_ungetwc_r, (ptr, wc, fp),
wc = WEOF;
break;
}
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return wc;
}
diff --git a/newlib/libc/stdio/vasiprintf.c b/newlib/libc/stdio/vasiprintf.c
index f96de0d79..15310cce9 100644
--- a/newlib/libc/stdio/vasiprintf.c
+++ b/newlib/libc/stdio/vasiprintf.c
@@ -59,7 +59,7 @@ _DEFUN(_vasiprintf_r, (ptr, strp, fmt, ap),
if (ret >= 0)
{
*f._p = 0;
- *strp = (char *) f._bf._base;
+ *strp = f._bf._base;
}
return ret;
}
diff --git a/newlib/libc/stdio/vasprintf.c b/newlib/libc/stdio/vasprintf.c
index fbb54cbe8..b89f4dbd7 100644
--- a/newlib/libc/stdio/vasprintf.c
+++ b/newlib/libc/stdio/vasprintf.c
@@ -59,7 +59,7 @@ _DEFUN(_vasprintf_r, (ptr, strp, fmt, ap),
if (ret >= 0)
{
*f._p = 0;
- *strp = (char *) f._bf._base;
+ *strp = f._bf._base;
}
return ret;
}
diff --git a/newlib/libc/stdio/vfprintf.c b/newlib/libc/stdio/vfprintf.c
index 4b165e021..e3fc099d3 100644
--- a/newlib/libc/stdio/vfprintf.c
+++ b/newlib/libc/stdio/vfprintf.c
@@ -567,9 +567,9 @@ _DEFUN(_VFPRINTF_R, (data, fp, fmt0, ap),
char sign; /* sign prefix (' ', '+', '-', or \0) */
#ifdef _WANT_IO_C99_FORMATS
/* locale specific numeric grouping */
- char *thousands_sep = NULL;
- size_t thsnd_len = 0;
- const char *grouping = NULL;
+ char *thousands_sep;
+ size_t thsnd_len;
+ const char *grouping;
#endif
#ifdef FLOATING_POINT
char *decimal_point = _localeconv_r (data)->decimal_point;
@@ -585,7 +585,7 @@ _DEFUN(_VFPRINTF_R, (data, fp, fmt0, ap),
#if defined (FLOATING_POINT) || defined (_WANT_IO_C99_FORMATS)
int ndig = 0; /* actual number of digits returned by cvt */
#endif
-#if defined (FLOATING_POINT) && defined (_WANT_IO_C99_FORMATS)
+#ifdef _WANT_IO_C99_FORMATS
int nseps; /* number of group separators with ' */
int nrepeats; /* number of repeats of the last group */
#endif
@@ -708,20 +708,20 @@ _DEFUN(_VFPRINTF_R, (data, fp, fmt0, ap),
#ifndef STRING_ONLY
/* Initialize std streams if not dealing with sprintf family. */
CHECK_INIT (data, fp);
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
ORIENT(fp, -1);
/* sorry, fprintf(read_only_file, "") returns EOF, not 0 */
if (cantwrite (data, fp)) {
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return (EOF);
}
/* optimise fprintf(stderr) (and other unbuffered Unix files) */
if ((fp->_flags & (__SNBF|__SWR|__SRW)) == (__SNBF|__SWR) &&
fp->_file >= 0) {
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return (__sbprintf (data, fp, fmt0, ap));
}
#else /* STRING_ONLY */
@@ -793,10 +793,10 @@ _DEFUN(_VFPRINTF_R, (data, fp, fmt0, ap),
sign = '\0';
#ifdef FLOATING_POINT
lead = 0;
+#endif
#ifdef _WANT_IO_C99_FORMATS
nseps = nrepeats = 0;
#endif
-#endif
#ifndef _NO_POS_ARGS
N = arg_index;
is_pos_arg = 0;
@@ -1633,7 +1633,7 @@ error:
if (malloc_buf != NULL)
_free_r (data, malloc_buf);
#ifndef STRING_ONLY
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
#endif
return (__sferror (fp) ? EOF : ret);
/* NOTREACHED */
diff --git a/newlib/libc/stdio/vfscanf.c b/newlib/libc/stdio/vfscanf.c
index e967719b7..32a132a93 100644
--- a/newlib/libc/stdio/vfscanf.c
+++ b/newlib/libc/stdio/vfscanf.c
@@ -148,12 +148,10 @@ Supporting OS subroutines required:
#endif
#ifdef STRING_ONLY
-#undef _newlib_flockfile_start
-#undef _newlib_flockfile_exit
-#undef _newlib_flockfile_end
-#define _newlib_flockfile_start(x) {}
-#define _newlib_flockfile_exit(x) {}
-#define _newlib_flockfile_end(x) {}
+#undef _flockfile
+#undef _funlockfile
+#define _flockfile(x) {}
+#define _funlockfile(x) {}
#define _ungetc_r _sungetc_r
#define __srefill_r __ssrefill_r
#define _fread_r _sfread_r
@@ -243,7 +241,10 @@ static void * get_arg (int, va_list *, int *, void **);
#define CT_INT 3 /* integer, i.e., strtol or strtoul */
#define CT_FLOAT 4 /* floating, i.e., strtod */
+#if 0
#define u_char unsigned char
+#endif
+#define u_char char
#define u_long unsigned long
#ifndef _NO_LONGLONG
@@ -495,7 +496,7 @@ _DEFUN(__SVFSCANF_R, (rptr, fp, fmt0, ap),
# define GET_ARG(n, ap, type) (va_arg (ap, type))
#endif
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
ORIENT (fp, -1);
@@ -510,8 +511,8 @@ _DEFUN(__SVFSCANF_R, (rptr, fp, fmt0, ap),
#ifndef _MB_CAPABLE
wc = *fmt;
#else
- nbytes = __mbtowc (rptr, &wc, (char *) fmt, MB_CUR_MAX,
- __locale_charset (), &state);
+ nbytes = __mbtowc (rptr, &wc, fmt, MB_CUR_MAX, __locale_charset (),
+ &state);
if (nbytes < 0) {
wc = 0xFFFD; /* Unicode replacement character */
nbytes = 1;
@@ -794,7 +795,7 @@ _DEFUN(__SVFSCANF_R, (rptr, fp, fmt0, ap),
* Disgusting backwards compatibility hacks. XXX
*/
case '\0': /* compat */
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return EOF;
default: /* compat */
@@ -1594,12 +1595,12 @@ input_failure:
should have been set prior to here. On EOF failure (including
invalid format string), return EOF if no matches yet, else number
of matches made prior to failure. */
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return nassigned && !(fp->_flags & __SERR) ? nassigned : EOF;
match_failure:
all_done:
/* Return number of matches, which can be 0 on match failure. */
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return nassigned;
}
diff --git a/newlib/libc/stdio/vfwprintf.c b/newlib/libc/stdio/vfwprintf.c
index 968c218b5..d76fff0d6 100644
--- a/newlib/libc/stdio/vfwprintf.c
+++ b/newlib/libc/stdio/vfwprintf.c
@@ -396,11 +396,10 @@ _DEFUN(_VFWPRINTF_R, (data, fp, fmt0, ap),
wchar_t sign; /* sign prefix (' ', '+', '-', or \0) */
#ifdef _WANT_IO_C99_FORMATS
/* locale specific numeric grouping */
- wchar_t thousands_sep = L'\0';
- const char *grouping = NULL;
+ wchar_t thousands_sep;
+ const char *grouping;
#endif
-#if defined (_MB_CAPABLE) && !defined (__HAVE_LOCALE_INFO_EXTENDED__) \
- && (defined (FLOATING_POINT) || defined (_WANT_IO_C99_FORMATS))
+#ifdef _MB_CAPABLE
mbstate_t state; /* mbtowc calls from library must not change state */
#endif
#ifdef FLOATING_POINT
@@ -416,7 +415,7 @@ _DEFUN(_VFWPRINTF_R, (data, fp, fmt0, ap),
#if defined (FLOATING_POINT) || defined (_WANT_IO_C99_FORMATS)
int ndig = 0; /* actual number of digits returned by cvt */
#endif
-#if defined (FLOATING_POINT) && defined (_WANT_IO_C99_FORMATS)
+#ifdef _WANT_IO_C99_FORMATS
int nseps; /* number of group separators with ' */
int nrepeats; /* number of repeats of the last group */
#endif
@@ -554,20 +553,20 @@ _DEFUN(_VFWPRINTF_R, (data, fp, fmt0, ap),
#ifndef STRING_ONLY
/* Initialize std streams if not dealing with sprintf family. */
CHECK_INIT (data, fp);
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
ORIENT(fp, 1);
/* sorry, fwprintf(read_only_file, "") returns EOF, not 0 */
if (cantwrite (data, fp)) {
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return (EOF);
}
/* optimise fwprintf(stderr) (and other unbuffered Unix files) */
if ((fp->_flags & (__SNBF|__SWR|__SRW)) == (__SNBF|__SWR) &&
fp->_file >= 0) {
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return (__sbwprintf (data, fp, fmt0, ap));
}
#else /* STRING_ONLY */
@@ -620,10 +619,10 @@ _DEFUN(_VFWPRINTF_R, (data, fp, fmt0, ap),
sign = L'\0';
#ifdef FLOATING_POINT
lead = 0;
+#endif
#ifdef _WANT_IO_C99_FORMATS
nseps = nrepeats = 0;
#endif
-#endif
#ifndef _NO_POS_ARGS
N = arg_index;
is_pos_arg = 0;
@@ -1466,7 +1465,7 @@ error:
if (malloc_buf != NULL)
_free_r (data, malloc_buf);
#ifndef STRING_ONLY
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
#endif
return (__sferror (fp) ? EOF : ret);
/* NOTREACHED */
diff --git a/newlib/libc/stdio/vfwscanf.c b/newlib/libc/stdio/vfwscanf.c
index 5d2388df8..49ccf2f4b 100644
--- a/newlib/libc/stdio/vfwscanf.c
+++ b/newlib/libc/stdio/vfwscanf.c
@@ -145,12 +145,10 @@ C99, POSIX-1.2008
#endif
#ifdef STRING_ONLY
-#undef _newlib_flockfile_start
-#undef _newlib_flockfile_exit
-#undef _newlib_flockfile_end
-#define _newlib_flockfile_start(x) {}
-#define _newlib_flockfile_exit(x) {}
-#define _newlib_flockfile_end(x) {}
+#undef _flockfile
+#undef _funlockfile
+#define _flockfile(x) {}
+#define _funlockfile(x) {}
#define _ungetwc_r _sungetwc_r
#define __srefill_r __ssrefill_r
#define _fgetwc_r _sfgetwc_r
@@ -436,7 +434,7 @@ _DEFUN(__SVFWSCANF_R, (rptr, fp, fmt0, ap),
# define GET_ARG(n, ap, type) (va_arg (ap, type))
#endif
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
ORIENT (fp, 1);
@@ -714,7 +712,7 @@ _DEFUN(__SVFWSCANF_R, (rptr, fp, fmt0, ap),
* Disgusting backwards compatibility hacks. XXX
*/
case L'\0': /* compat */
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return EOF;
default: /* compat */
@@ -1442,12 +1440,12 @@ input_failure:
should have been set prior to here. On EOF failure (including
invalid format string), return EOF if no matches yet, else number
of matches made prior to failure. */
- _newlib_flockfile_exit (fp);
+ _funlockfile (fp);
return nassigned && !(fp->_flags & __SERR) ? nassigned : EOF;
match_failure:
all_done:
/* Return number of matches, which can be 0 on match failure. */
- _newlib_flockfile_end (fp);
+ _funlockfile (fp);
return nassigned;
}
diff --git a/newlib/libc/stdio64/fdopen64.c b/newlib/libc/stdio64/fdopen64.c
index 659d343e5..49d1f03aa 100644
--- a/newlib/libc/stdio64/fdopen64.c
+++ b/newlib/libc/stdio64/fdopen64.c
@@ -64,7 +64,7 @@ _DEFUN (_fdopen64_r, (ptr, fd, mode),
if ((fp = __sfp (ptr)) == 0)
return 0;
- _newlib_flockfile_start(fp);
+ _flockfile(fp);
fp->_flags = flags;
/* POSIX recommends setting the O_APPEND bit on fd to match append
@@ -101,7 +101,7 @@ _DEFUN (_fdopen64_r, (ptr, fd, mode),
fp->_flags |= __SL64;
- _newlib_flockfile_end(fp);
+ _funlockfile(fp);
return fp;
}
diff --git a/newlib/libc/stdio64/fopen64.c b/newlib/libc/stdio64/fopen64.c
index 84f7b6e49..aa6775116 100644
--- a/newlib/libc/stdio64/fopen64.c
+++ b/newlib/libc/stdio64/fopen64.c
@@ -91,16 +91,16 @@ _DEFUN (_fopen64_r, (ptr, file, mode),
if ((f = _open64_r (ptr, file, oflags, 0666)) < 0)
{
- _newlib_sfp_lock_start ();
+ __sfp_lock_acquire ();
fp->_flags = 0; /* release */
#ifndef __SINGLE_THREAD__
__lock_close_recursive (fp->_lock);
#endif
- _newlib_sfp_lock_end ();
+ __sfp_lock_release ();
return NULL;
}
- _newlib_flockfile_start (fp);
+ _flockfile(fp);
fp->_file = f;
fp->_flags = flags;
@@ -121,7 +121,7 @@ _DEFUN (_fopen64_r, (ptr, file, mode),
fp->_flags |= __SL64;
- _newlib_flockfile_end (fp);
+ _funlockfile(fp);
return fp;
}
diff --git a/newlib/libc/stdio64/freopen64.c b/newlib/libc/stdio64/freopen64.c
index db0e1ee0f..1e2ec7827 100644
--- a/newlib/libc/stdio64/freopen64.c
+++ b/newlib/libc/stdio64/freopen64.c
@@ -100,20 +100,11 @@ _DEFUN (_freopen64_r, (ptr, file, mode, fp),
CHECK_INIT (ptr, fp);
- /* We can't use the _newlib_flockfile_XXX macros here due to the
- interlocked locking with the sfp_lock. */
-#if !defined (__SINGLE_THREAD__) && defined (_POSIX_THREADS)
- int __oldcancel;
- pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &__oldcancel);
-#endif
- _flockfile (fp);
+ _flockfile(fp);
if ((flags = __sflags (ptr, mode, &oflags)) == 0)
{
- _funlockfile (fp);
-#if !defined (__SINGLE_THREAD__) && defined (_POSIX_THREADS)
- pthread_setcancelstate (__oldcancel, &__oldcancel);
-#endif
+ _funlockfile(fp);
_fclose_r (ptr, fp);
return NULL;
}
@@ -214,14 +205,11 @@ _DEFUN (_freopen64_r, (ptr, file, mode, fp),
__sfp_lock_acquire ();
fp->_flags = 0; /* set it free */
ptr->_errno = e; /* restore in case _close clobbered */
- _funlockfile (fp);
+ _funlockfile(fp);
#ifndef __SINGLE_THREAD__
__lock_close_recursive (fp->_lock);
#endif
__sfp_lock_release ();
-#if !defined (__SINGLE_THREAD__) && defined (_POSIX_THREADS)
- pthread_setcancelstate (__oldcancel, &__oldcancel);
-#endif
return NULL;
}
@@ -241,10 +229,7 @@ _DEFUN (_freopen64_r, (ptr, file, mode, fp),
fp->_flags |= __SL64;
- _funlockfile (fp);
-#if !defined (__SINGLE_THREAD__) && defined (_POSIX_THREADS)
- pthread_setcancelstate (__oldcancel, &__oldcancel);
-#endif
+ _funlockfile(fp);
return fp;
}
diff --git a/newlib/libc/stdio64/fseeko64.c b/newlib/libc/stdio64/fseeko64.c
index b323f97d8..301d6f54f 100644
--- a/newlib/libc/stdio64/fseeko64.c
+++ b/newlib/libc/stdio64/fseeko64.c
@@ -126,7 +126,7 @@ _DEFUN (_fseeko64_r, (ptr, fp, offset, whence),
CHECK_INIT (ptr, fp);
- _newlib_flockfile_start (fp);
+ _flockfile (fp);
curoff = fp->_offset;
@@ -144,7 +144,7 @@ _DEFUN (_fseeko64_r, (ptr, fp, offset, whence),
if ((seekfn = fp->_seek64) == NULL)
{
ptr->_errno = ESPIPE; /* ??? */
- _newlib_flockfile_exit(fp);
+ _funlockfile(fp);
return EOF;
}
@@ -169,7 +169,7 @@ _DEFUN (_fseeko64_r, (ptr, fp, offset, whence),
curoff = seekfn (ptr, fp->_cookie, (_fpos64_t) 0, SEEK_CUR);
if (curoff == -1L)
{
- _newlib_flockfile_exit(fp);
+ _funlockfile(fp);
return EOF;
}
}
@@ -194,7 +194,7 @@ _DEFUN (_fseeko64_r, (ptr, fp, offset, whence),
default:
ptr->_errno = EINVAL;
- _newlib_flockfile_exit(fp);
+ _funlockfile(fp);
return (EOF);
}
@@ -294,7 +294,7 @@ _DEFUN (_fseeko64_r, (ptr, fp, offset, whence),
if (HASUB (fp))
FREEUB (ptr, fp);
fp->_flags &= ~__SEOF;
- _newlib_flockfile_exit(fp);
+ _funlockfile(fp);
return 0;
}
@@ -323,7 +323,7 @@ _DEFUN (_fseeko64_r, (ptr, fp, offset, whence),
fp->_p += n;
fp->_r -= n;
}
- _newlib_flockfile_end(fp);
+ _funlockfile(fp);
return 0;
/*
diff --git a/newlib/libc/stdio64/ftello64.c b/newlib/libc/stdio64/ftello64.c
index c4d6da24b..51dcd2796 100644
--- a/newlib/libc/stdio64/ftello64.c
+++ b/newlib/libc/stdio64/ftello64.c
@@ -99,12 +99,12 @@ _DEFUN (_ftello64_r, (ptr, fp),
CHECK_INIT (ptr, fp);
- _newlib_flockfile_start(fp);
+ _flockfile(fp);
if (fp->_seek64 == NULL)
{
ptr->_errno = ESPIPE;
- _newlib_flockfile_exit(fp);
+ _funlockfile(fp);
return -1L;
}
@@ -121,7 +121,7 @@ _DEFUN (_ftello64_r, (ptr, fp),
pos = fp->_seek64 (ptr, fp->_cookie, (_fpos64_t) 0, SEEK_CUR);
if (pos == -1L)
{
- _newlib_flockfile_exit(fp);
+ _funlockfile(fp);
return pos;
}
}
@@ -146,7 +146,7 @@ _DEFUN (_ftello64_r, (ptr, fp),
pos += fp->_p - fp->_bf._base;
}
- _newlib_flockfile_end(fp);
+ _funlockfile(fp);
return pos;
}
diff --git a/newlib/libc/stdlib/mbtowc_r.c b/newlib/libc/stdlib/mbtowc_r.c
index d84fef5a2..7c6be69ea 100644
--- a/newlib/libc/stdlib/mbtowc_r.c
+++ b/newlib/libc/stdlib/mbtowc_r.c
@@ -78,7 +78,6 @@ typedef enum { COPY_A, COPY_J1, COPY_J2, MAKE_A, NOOP, EMPTY, ERROR } JIS_ACTION
* is 2 (switch to JIS) + 2 (JIS characters) + 2 (switch back to ASCII) = 6.
*************************************************************************************/
-#ifndef __CYGWIN__
static JIS_STATE JIS_state_table[JIS_S_NUM][JIS_C_NUM] = {
/* ESCAPE DOLLAR BRACKET AT B J NUL JIS_CHAR OTHER */
/* ASCII */ { A_ESC, ASCII, ASCII, ASCII, ASCII, ASCII, ASCII, ASCII, ASCII },
@@ -100,7 +99,6 @@ static JIS_ACTION JIS_action_table[JIS_S_NUM][JIS_C_NUM] = {
/* J_ESC */ { ERROR, ERROR, NOOP, ERROR, ERROR, ERROR, ERROR, ERROR, ERROR },
/* J_ESC_BR */{ ERROR, ERROR, ERROR, ERROR, MAKE_A, MAKE_A, ERROR, ERROR, ERROR },
};
-#endif /* !__CYGWIN__ */
/* we override the mbstate_t __count field for more complex encodings and use it store a state value */
#define __state __count
diff --git a/newlib/libc/stdlib/mprec.h b/newlib/libc/stdlib/mprec.h
index 5a71576be..dea89bf11 100644
--- a/newlib/libc/stdlib/mprec.h
+++ b/newlib/libc/stdlib/mprec.h
@@ -98,7 +98,7 @@ typedef union { double d; __ULong i[2]; } U;
#define SI 0
#endif
-#define Storeinc(a,b,c) (*(a)++ = ((b) << 16) | ((c) & 0xffff))
+#define Storeinc(a,b,c) (*(a)++ = (b) << 16 | (c) & 0xffff)
/* #define P DBL_MANT_DIG */
/* Ten_pmax = floor(P*log(2)/log(5)) */
diff --git a/newlib/libc/stdlib/wctomb_r.c b/newlib/libc/stdlib/wctomb_r.c
index 13e1e4c36..98a0b74c0 100644
--- a/newlib/libc/stdlib/wctomb_r.c
+++ b/newlib/libc/stdlib/wctomb_r.c
@@ -81,7 +81,7 @@ _DEFUN (__utf8_wctomb, (r, s, wchar, charset, state),
to return extra 3 bytes. */
wchar_t tmp;
tmp = (state->__value.__wchb[0] << 16 | state->__value.__wchb[1] << 8)
- - (0x10000 >> 10 | 0xd80d);
+ - 0x10000 >> 10 | 0xd80d;
*s++ = 0xe0 | ((tmp & 0xf000) >> 12);
*s++ = 0x80 | ((tmp & 0xfc0) >> 6);
*s++ = 0x80 | (tmp & 0x3f);
diff --git a/newlib/libc/string/Makefile.am b/newlib/libc/string/Makefile.am
index 9c12b6ecb..82035c84a 100644
--- a/newlib/libc/string/Makefile.am
+++ b/newlib/libc/string/Makefile.am
@@ -103,7 +103,6 @@ ELIX_4_SOURCES =
else
ELIX_4_SOURCES = \
memmem.c \
- memrchr.c \
wcscasecmp.c \
wcsncasecmp.c
endif !ELIX_LEVEL_3
@@ -141,7 +140,7 @@ wcsncmp.def wcsncpy.def wcsnlen.def wcspbrk.def \
wcsrchr.def wcsspn.def wcsstr.def wcstok.def \
wcswidth.def wcsxfrm.def wcwidth.def wmemchr.def \
wmemcmp.def wmemcpy.def wmemmove.def wmemset.def \
-memmem.def memrchr.def
+memmem.def
SUFFIXES = .def
diff --git a/newlib/libc/string/Makefile.in b/newlib/libc/string/Makefile.in
index 9508ff19a..001bfd40a 100644
--- a/newlib/libc/string/Makefile.in
+++ b/newlib/libc/string/Makefile.in
@@ -102,7 +102,6 @@ am__objects_1 = lib_a-bcopy.$(OBJEXT) lib_a-bzero.$(OBJEXT) \
@ELIX_LEVEL_1_FALSE@ lib_a-wcpncpy.$(OBJEXT) \
@ELIX_LEVEL_1_FALSE@ lib_a-wcsdup.$(OBJEXT)
@ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@am__objects_3 = lib_a-memmem.$(OBJEXT) \
-@ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@ lib_a-memrchr.$(OBJEXT) \
@ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@ lib_a-wcscasecmp.$(OBJEXT) \
@ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@ lib_a-wcsncasecmp.$(OBJEXT)
@USE_LIBTOOL_FALSE@am_lib_a_OBJECTS = $(am__objects_1) \
@@ -128,7 +127,6 @@ am__objects_4 = bcopy.lo bzero.lo index.lo memchr.lo memcmp.lo \
@ELIX_LEVEL_1_FALSE@ strcasestr.lo strchrnul.lo strndup_r.lo \
@ELIX_LEVEL_1_FALSE@ wcpcpy.lo wcpncpy.lo wcsdup.lo
@ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@am__objects_6 = memmem.lo \
-@ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@ memrchr.lo \
@ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@ wcscasecmp.lo \
@ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@ wcsncasecmp.lo
@USE_LIBTOOL_TRUE@am_libstring_la_OBJECTS = $(am__objects_4) \
@@ -387,7 +385,6 @@ GENERAL_SOURCES = \
@ELIX_LEVEL_1_TRUE@ELIX_2_SOURCES =
@ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@ELIX_4_SOURCES = \
@ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@ memmem.c \
-@ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@ memrchr.c \
@ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@ wcscasecmp.c \
@ELIX_LEVEL_1_FALSE@@ELIX_LEVEL_2_FALSE@@ELIX_LEVEL_3_FALSE@ wcsncasecmp.c
@@ -418,7 +415,7 @@ wcsncmp.def wcsncpy.def wcsnlen.def wcspbrk.def \
wcsrchr.def wcsspn.def wcsstr.def wcstok.def \
wcswidth.def wcsxfrm.def wcwidth.def wmemchr.def \
wmemcmp.def wmemcpy.def wmemmove.def wmemset.def \
-memmem.def memrchr.def
+memmem.def
SUFFIXES = .def
CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str
@@ -978,12 +975,6 @@ lib_a-memmem.o: memmem.c
lib_a-memmem.obj: memmem.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-memmem.obj `if test -f 'memmem.c'; then $(CYGPATH_W) 'memmem.c'; else $(CYGPATH_W) '$(srcdir)/memmem.c'; fi`
-lib_a-memrchr.o: memrchr.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-memrchr.o `test -f 'memrchr.c' || echo '$(srcdir)/'`memrchr.c
-
-lib_a-memrchr.obj: memrchr.c
- $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-memrchr.obj `if test -f 'memrchr.c'; then $(CYGPATH_W) 'memrchr.c'; else $(CYGPATH_W) '$(srcdir)/memrchr.c'; fi`
-
lib_a-wcscasecmp.o: wcscasecmp.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-wcscasecmp.o `test -f 'wcscasecmp.c' || echo '$(srcdir)/'`wcscasecmp.c
diff --git a/newlib/libc/string/memrchr.c b/newlib/libc/string/memrchr.c
deleted file mode 100644
index 42d9d147b..000000000
--- a/newlib/libc/string/memrchr.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
-FUNCTION
- <<memrchr>>---reverse search for character in memory
-
-INDEX
- memrchr
-
-ANSI_SYNOPSIS
- #include <string.h>
- void *memrchr(const void *<[src]>, int <[c]>, size_t <[length]>);
-
-TRAD_SYNOPSIS
- #include <string.h>
- void *memrchr(<[src]>, <[c]>, <[length]>)
- void *<[src]>;
- void *<[c]>;
- size_t <[length]>;
-
-DESCRIPTION
- This function searches memory starting at <[length]> bytes
- beyond <<*<[src]>>> backwards for the character <[c]>.
- The search only ends with the first occurrence of <[c]>; in
- particular, <<NUL>> does not terminate the search.
-
-RETURNS
- If the character <[c]> is found within <[length]> characters
- of <<*<[src]>>>, a pointer to the character is returned. If
- <[c]> is not found, then <<NULL>> is returned.
-
-PORTABILITY
-<<memrchr>> is a GNU extension.
-
-<<memrchr>> requires no supporting OS subroutines.
-
-QUICKREF
- memrchr
-*/
-
-#include <_ansi.h>
-#include <string.h>
-#include <limits.h>
-
-/* Nonzero if X is not aligned on a "long" boundary. */
-#define UNALIGNED(X) ((long)(X + 1) & (sizeof (long) - 1))
-
-/* How many bytes are loaded each iteration of the word copy loop. */
-#define LBLOCKSIZE (sizeof (long))
-
-/* Threshhold for punting to the bytewise iterator. */
-#define TOO_SMALL(LEN) ((LEN) < LBLOCKSIZE)
-
-#if LONG_MAX == 2147483647L
-#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080)
-#else
-#if LONG_MAX == 9223372036854775807L
-/* Nonzero if X (a long int) contains a NULL byte. */
-#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080)
-#else
-#error long int is not a 32bit or 64bit type.
-#endif
-#endif
-
-#ifndef DETECTNULL
-#error long int is not a 32bit or 64bit byte
-#endif
-
-/* DETECTCHAR returns nonzero if (long)X contains the byte used
- to fill (long)MASK. */
-#define DETECTCHAR(X,MASK) (DETECTNULL(X ^ MASK))
-
-_PTR
-_DEFUN (memrchr, (src_void, c, length),
- _CONST _PTR src_void _AND
- int c _AND
- size_t length)
-{
- _CONST unsigned char *src = (_CONST unsigned char *) src_void + length - 1;
- unsigned char d = c;
-
-#if !defined(PREFER_SIZE_OVER_SPEED) && !defined(__OPTIMIZE_SIZE__)
- unsigned long *asrc;
- unsigned long mask;
- int i;
-
- while (UNALIGNED (src))
- {
- if (!length--)
- return NULL;
- if (*src == d)
- return (void *) src;
- src--;
- }
-
- if (!TOO_SMALL (length))
- {
- /* If we get this far, we know that length is large and src is
- word-aligned. */
- /* The fast code reads the source one word at a time and only
- performs the bytewise search on word-sized segments if they
- contain the search character, which is detected by XORing
- the word-sized segment with a word-sized block of the search
- character and then detecting for the presence of NUL in the
- result. */
- asrc = (unsigned long *) (src - LBLOCKSIZE + 1);
- mask = d << 8 | d;
- mask = mask << 16 | mask;
- for (i = 32; i < LBLOCKSIZE * 8; i <<= 1)
- mask = (mask << i) | mask;
-
- while (length >= LBLOCKSIZE)
- {
- if (DETECTCHAR (*asrc, mask))
- break;
- length -= LBLOCKSIZE;
- asrc--;
- }
-
- /* If there are fewer than LBLOCKSIZE characters left,
- then we resort to the bytewise loop. */
-
- src = (unsigned char *) asrc + LBLOCKSIZE - 1;
- }
-
-#endif /* not PREFER_SIZE_OVER_SPEED */
-
- while (length--)
- {
- if (*src == d)
- return (void *) src;
- src--;
- }
-
- return NULL;
-}
diff --git a/newlib/libc/string/strcasestr.c b/newlib/libc/string/strcasestr.c
index 91783164c..0122d7ab8 100644
--- a/newlib/libc/string/strcasestr.c
+++ b/newlib/libc/string/strcasestr.c
@@ -84,11 +84,6 @@ QUICKREF
(!memchr ((h) + (h_l), '\0', (j) + (n_l) - (h_l)) \
&& ((h_l) = (j) + (n_l)))
# define CANON_ELEMENT(c) tolower (c)
-#if defined (__GNUC__) && \
- ((__GNUC__ == 4 && __GNUC_MINOR__ >= 2) || __GNUC__ > 4)
-/* strncasecmp uses signed char, CMP_FUNC is expected to use unsigned char. */
-#pragma GCC diagnostic ignored "-Wpointer-sign"
-#endif
# define CMP_FUNC strncasecmp
# include "str-two-way.h"
#endif
diff --git a/newlib/libc/sys/epiphany/Makefile.am b/newlib/libc/sys/epiphany/Makefile.am
new file mode 100644
index 000000000..c95cca536
--- /dev/null
+++ b/newlib/libc/sys/epiphany/Makefile.am
@@ -0,0 +1,43 @@
+# Copyright (c) 2011, Adapteva, Inc.
+# All rights reserved.
+
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# * Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# * Neither the name of Adapteva nor the names of its contributors may be
+# used to endorse or promote products derived from this software without
+# specific prior written permission.
+
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+## Process this file with automake to generate Makefile.in
+
+AUTOMAKE_OPTIONS = cygnus
+
+INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
+
+AM_CCASFLAGS = $(INCLUDES)
+
+noinst_LIBRARIES = lib.a
+
+# crt0.o comes from libgloss
+lib_a_SOURCES = e_printf.c
+lib_a_CCASFLAGS = $(AM_CCASFLAGS)
+lib_a_CFLAGS = $(AM_CFLAGS)
+
+ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
+CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
diff --git a/newlib/libc/sys/epiphany/Makefile.in b/newlib/libc/sys/epiphany/Makefile.in
new file mode 100644
index 000000000..f703c3f84
--- /dev/null
+++ b/newlib/libc/sys/epiphany/Makefile.in
@@ -0,0 +1,439 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Copyright (c) 2011, Adapteva, Inc.
+# All rights reserved.
+
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# * Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# * Neither the name of Adapteva nor the names of its contributors may be
+# used to endorse or promote products derived from this software without
+# specific prior written permission.
+
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = .
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+ $(top_srcdir)/configure $(am__configure_deps) \
+ $(srcdir)/../../../../mkinstalldirs
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/../../../acinclude.m4 \
+ $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+ARFLAGS = cru
+lib_a_AR = $(AR) $(ARFLAGS)
+lib_a_LIBADD =
+am_lib_a_OBJECTS = lib_a-e_printf.$(OBJEXT)
+lib_a_OBJECTS = $(am_lib_a_OBJECTS)
+DEFAULT_INCLUDES = -I.@am__isrc@
+depcomp =
+am__depfiles_maybe =
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(lib_a_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCAS = @CCAS@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NEWLIB_CFLAGS = @NEWLIB_CFLAGS@
+NO_INCLUDE_LIST = @NO_INCLUDE_LIST@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+READELF = @READELF@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+aext = @aext@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+libm_machine_dir = @libm_machine_dir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lpfx = @lpfx@
+machine_dir = @machine_dir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+newlib_basedir = @newlib_basedir@
+oext = @oext@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sys_dir = @sys_dir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AUTOMAKE_OPTIONS = cygnus
+INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
+AM_CCASFLAGS = $(INCLUDES)
+noinst_LIBRARIES = lib.a
+
+# crt0.o comes from libgloss
+lib_a_SOURCES = e_printf.c
+lib_a_CCASFLAGS = $(AM_CCASFLAGS)
+lib_a_CFLAGS = $(AM_CFLAGS)
+ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
+CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .o .obj
+am--refresh:
+ @:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --cygnus'; \
+ $(am__cd) $(srcdir) && $(AUTOMAKE) --cygnus \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --cygnus Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ $(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+clean-noinstLIBRARIES:
+ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES)
+ -rm -f lib.a
+ $(lib_a_AR) lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD)
+ $(RANLIB) lib.a
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+.c.o:
+ $(COMPILE) -c $<
+
+.c.obj:
+ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+lib_a-e_printf.o: e_printf.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-e_printf.o `test -f 'e_printf.c' || echo '$(srcdir)/'`e_printf.c
+
+lib_a-e_printf.obj: e_printf.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-e_printf.obj `if test -f 'e_printf.c'; then $(CYGPATH_W) 'e_printf.c'; else $(CYGPATH_W) '$(srcdir)/e_printf.c'; fi`
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+check-am:
+check: check-am
+all-am: Makefile $(LIBRARIES)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
+ clean-generic clean-noinstLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-tags dvi dvi-am \
+ html html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/newlib/libc/sys/epiphany/aclocal.m4 b/newlib/libc/sys/epiphany/aclocal.m4
new file mode 100644
index 000000000..f4337cf8d
--- /dev/null
+++ b/newlib/libc/sys/epiphany/aclocal.m4
@@ -0,0 +1,992 @@
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
+[m4_warning([this file was generated for autoconf 2.68.
+You have another version of autoconf. It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically `autoreconf'.])])
+
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+# (This private macro should not be called outside this file.)
+AC_DEFUN([AM_AUTOMAKE_VERSION],
+[am__api_version='1.11'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version. Point them to the right macro.
+m4_if([$1], [1.11.1], [],
+ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too. Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+[AM_AUTOMAKE_VERSION([1.11.1])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+
+# AM_AUX_DIR_EXPAND -*- Autoconf -*-
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory. The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run. This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+# fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+# fails if $ac_aux_dir is absolute,
+# fails when called from a subdirectory in a VPATH build with
+# a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir. In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+# MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH. The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_CONDITIONAL -*- Autoconf -*-
+
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 9
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ(2.52)dnl
+ ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 10
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery. Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
+ [$1], CXX, [depcc="$CXX" am_compiler_list=],
+ [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], UPC, [depcc="$UPC" am_compiler_list=],
+ [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_$1_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+ fi
+ am__universal=false
+ m4_case([$1], [CC],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac],
+ [CXX],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac])
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+])
+
+# Generate code to set up dependency tracking. -*- Autoconf -*-
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+#serial 5
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[{
+ # Autoconf 2.62 quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ case $CONFIG_FILES in
+ *\'*) eval set x "$CONFIG_FILES" ;;
+ *) set x $CONFIG_FILES ;;
+ esac
+ shift
+ for mf
+ do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # Grep'ing the whole file is not good either: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+ dirpart=`AS_DIRNAME("$mf")`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`AS_DIRNAME(["$file"])`
+ AS_MKDIR_P([$dirpart/$fdir])
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+ done
+}
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled. FIXME. This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Do all the work for Automake. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 16
+
+# This macro actually does too much. Some checks are only needed if
+# your package does certain things. But this isn't really a big deal.
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out. PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition. After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.62])dnl
+dnl Autoconf wants to disallow AM_ names. We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+ [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES(CC)],
+ [define([AC_PROG_CC],
+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES(CXX)],
+ [define([AC_PROG_CXX],
+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES(OBJC)],
+ [define([AC_PROG_OBJC],
+ defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+])
+_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
+dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
+dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
+dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+ [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+])
+
+dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
+dnl mangled by Autoconf and run in a shell conditional statement.
+m4_define([_AC_COMPILER_EXEEXT],
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
+
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated. The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+AC_SUBST(install_sh)])
+
+# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot. For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
+# From Jim Meyering
+
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 5
+
+# AM_MAINTAINER_MODE([DEFAULT-MODE])
+# ----------------------------------
+# Control maintainer-specific portions of Makefiles.
+# Default is to disable them, unless `enable' is passed literally.
+# For symmetry, `disable' may be passed as well. Anyway, the user
+# can override the default with the --enable/--disable switch.
+AC_DEFUN([AM_MAINTAINER_MODE],
+[m4_case(m4_default([$1], [disable]),
+ [enable], [m4_define([am_maintainer_other], [disable])],
+ [disable], [m4_define([am_maintainer_other], [enable])],
+ [m4_define([am_maintainer_other], [enable])
+ m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
+AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
+ dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+ AC_ARG_ENABLE([maintainer-mode],
+[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer],
+ [USE_MAINTAINER_MODE=$enableval],
+ [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
+ AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+ AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
+ MAINT=$MAINTAINER_MODE_TRUE
+ AC_SUBST([MAINT])dnl
+]
+)
+
+AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
+
+# Check to see how 'make' treats includes. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+ am__include=include
+ am__quote=
+ _am_result=GNU
+ ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+
+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
+
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 6
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ AC_MSG_WARN([`missing' script is too old or missing])
+fi
+])
+
+# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_MKDIR_P
+# ---------------
+# Check for `mkdir -p'.
+AC_DEFUN([AM_PROG_MKDIR_P],
+[AC_PREREQ([2.60])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
+dnl while keeping a definition of mkdir_p for backward compatibility.
+dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
+dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
+dnl Makefile.ins that do not define MKDIR_P, so we do our own
+dnl adjustment using top_builddir (which is defined more often than
+dnl MKDIR_P).
+AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
+case $mkdir_p in
+ [[\\/$]]* | ?:[[\\/]]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+])
+
+# Helper functions for option handling. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# ------------------------------
+# Set option NAME. Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ----------------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 5
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[[\\\"\#\$\&\'\`$am_lf]]*)
+ AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+ *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
+ AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+esac
+
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
+
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT(yes)])
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries. This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
+# Check how to create a tarball. -*- Autoconf -*-
+
+# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of `v7', `ustar', or `pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+# tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+# $(am__untar) < result.tar
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+ [m4_case([$1], [ustar],, [pax],,
+ [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([../../../acinclude.m4])
diff --git a/newlib/libc/sys/epiphany/configure b/newlib/libc/sys/epiphany/configure
new file mode 100755
index 000000000..f8faef7c9
--- /dev/null
+++ b/newlib/libc/sys/epiphany/configure
@@ -0,0 +1,4745 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.68 for newlib 1.20.0.
+#
+#
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+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
+IFS=$as_save_IFS
+
+ ;;
+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
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in #(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ # We cannot yet assume a decent shell, so we have to provide a
+ # neutralization value for shells without unset; and this also
+ # works around shells that cannot unset nonexistent variables.
+ # Preserve -v and -x to the replacement shell.
+ BASH_ENV=/dev/null
+ ENV=/dev/null
+ (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+ export CONFIG_SHELL
+ case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+ esac
+ exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; 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
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# 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
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_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 sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval 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="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='newlib'
+PACKAGE_TARNAME='newlib'
+PACKAGE_VERSION='1.20.0'
+PACKAGE_STRING='newlib 1.20.0'
+PACKAGE_BUGREPORT=''
+PACKAGE_URL=''
+
+ac_unique_file="e_printf.c"
+ac_subst_vars='LTLIBOBJS
+LIBOBJS
+sys_dir
+machine_dir
+libm_machine_dir
+lpfx
+aext
+oext
+OBJEXT
+USE_LIBTOOL_FALSE
+USE_LIBTOOL_TRUE
+ELIX_LEVEL_4_FALSE
+ELIX_LEVEL_4_TRUE
+ELIX_LEVEL_3_FALSE
+ELIX_LEVEL_3_TRUE
+ELIX_LEVEL_2_FALSE
+ELIX_LEVEL_2_TRUE
+ELIX_LEVEL_1_FALSE
+ELIX_LEVEL_1_TRUE
+ELIX_LEVEL_0_FALSE
+ELIX_LEVEL_0_TRUE
+LDFLAGS
+NO_INCLUDE_LIST
+NEWLIB_CFLAGS
+CCASFLAGS
+CCAS
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
+READELF
+RANLIB
+AR
+AS
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__quote
+am__include
+DEPDIR
+CC
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+newlib_basedir
+MAY_SUPPLY_SYSCALLS_FALSE
+MAY_SUPPLY_SYSCALLS_TRUE
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_multilib
+enable_target_optspace
+enable_malloc_debugging
+enable_newlib_multithread
+enable_newlib_iconv
+enable_newlib_elix_level
+enable_newlib_io_float
+enable_newlib_supplied_syscalls
+enable_dependency_tracking
+enable_maintainer_mode
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CCAS
+CCASFLAGS'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+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.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ 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 ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -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_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$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 ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ 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 ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ 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 | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ 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-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-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ 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 ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ 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-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 ;;
+
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_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
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# 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
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ $as_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
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error $? "pwd does not report name of working directory"
+
+
+# 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 the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+ 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=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# 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 newlib 1.20.0 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 \`..']
+
+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]
+ --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]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root [DATAROOTDIR/doc/newlib]
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --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
+
+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 newlib 1.20.0:";;
+ esac
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --enable-multilib build many library versions (default)
+ --enable-target-optspace optimize for space
+ --enable-malloc-debugging indicate malloc debugging requested
+ --enable-newlib-multithread enable support for multiple threads
+ --enable-newlib-iconv enable iconv library support
+ --enable-newlib-elix-level supply desired elix library level (1-4)
+ --disable-newlib-io-float disable printf/scanf family float support
+ --disable-newlib-supplied-syscalls disable newlib from supplying syscalls
+ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors
+ --enable-maintainer-mode enable make rules and dependencies not useful
+ (and sometimes confusing) to the casual installer
+
+Some influential environment variables:
+ CCAS assembler compiler command (defaults to CC)
+ CCASFLAGS assembler compiler flags (defaults to CFLAGS)
+
+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 the package provider.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested 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
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+newlib configure 1.20.0
+generated by GNU Autoconf 2.68
+
+Copyright (C) 2010 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
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by newlib $as_me 1.20.0, which was
+generated by GNU Autoconf 2.68. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+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`
+/usr/bin/hostinfo = `(/usr/bin/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=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&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_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=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append 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
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset 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: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $as_echo "$as_me: caught signal $ac_signal"
+ $as_echo "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > 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
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in #((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_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 $ac_precious_vars; 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,)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_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
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`$as_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.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+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
+
+
+
+
+ac_aux_dir=
+for ac_dir in ../../../.. "$srcdir"/../../../..; do
+ if test -f "$ac_dir/install-sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f "$ac_dir/install.sh"; then
+ 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
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in ../../../.. \"$srcdir\"/../../../.." "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+
+
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+am__api_version='1.11'
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# 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"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ 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/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+
+ done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$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}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[\\\"\#\$\&\'\`$am_lf]*)
+ as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+esac
+
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
+alias in your environment" "$LINENO" 5
+ fi
+
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+test "$program_prefix" != NONE &&
+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+
+if test x"${MISSING+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+ *)
+ MISSING="\${SHELL} $am_aux_dir/missing" ;;
+ esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+ if ${ac_cv_path_mkdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+
+fi
+
+ test -d ./--version && rmdir ./--version
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+mkdir_p="$MKDIR_P"
+case $mkdir_p in
+ [\\/$]* | ?:[\\/]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+
+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.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
+$as_echo_n "checking for style of include used by $am_make... " >&6; }
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+ am__include=include
+ am__quote=
+ _am_result=GNU
+ ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
+$as_echo "$_am_result" >&6; }
+rm -f confinc confmf
+
+# Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+ enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+
+# Check whether --enable-multilib was given.
+if test "${enable_multilib+set}" = set; then :
+ enableval=$enable_multilib; case "${enableval}" in
+ yes) multilib=yes ;;
+ no) multilib=no ;;
+ *) as_fn_error $? "bad value ${enableval} for multilib option" "$LINENO" 5 ;;
+ esac
+else
+ multilib=yes
+fi
+
+# Check whether --enable-target-optspace was given.
+if test "${enable_target_optspace+set}" = set; then :
+ enableval=$enable_target_optspace; case "${enableval}" in
+ yes) target_optspace=yes ;;
+ no) target_optspace=no ;;
+ *) as_fn_error $? "bad value ${enableval} for target-optspace option" "$LINENO" 5 ;;
+ esac
+else
+ target_optspace=
+fi
+
+# Check whether --enable-malloc-debugging was given.
+if test "${enable_malloc_debugging+set}" = set; then :
+ enableval=$enable_malloc_debugging; case "${enableval}" in
+ yes) malloc_debugging=yes ;;
+ no) malloc_debugging=no ;;
+ *) as_fn_error $? "bad value ${enableval} for malloc-debugging option" "$LINENO" 5 ;;
+ esac
+else
+ malloc_debugging=
+fi
+
+# Check whether --enable-newlib-multithread was given.
+if test "${enable_newlib_multithread+set}" = set; then :
+ enableval=$enable_newlib_multithread; case "${enableval}" in
+ yes) newlib_multithread=yes ;;
+ no) newlib_multithread=no ;;
+ *) as_fn_error $? "bad value ${enableval} for newlib-multithread option" "$LINENO" 5 ;;
+ esac
+else
+ newlib_multithread=yes
+fi
+
+# Check whether --enable-newlib-iconv was given.
+if test "${enable_newlib_iconv+set}" = set; then :
+ enableval=$enable_newlib_iconv; if test "${newlib_iconv+set}" != set; then
+ case "${enableval}" in
+ yes) newlib_iconv=yes ;;
+ no) newlib_iconv=no ;;
+ *) as_fn_error $? "bad value ${enableval} for newlib-iconv option" "$LINENO" 5 ;;
+ esac
+ fi
+else
+ newlib_iconv=${newlib_iconv}
+fi
+
+# Check whether --enable-newlib-elix-level was given.
+if test "${enable_newlib_elix_level+set}" = set; then :
+ enableval=$enable_newlib_elix_level; case "${enableval}" in
+ 0) newlib_elix_level=0 ;;
+ 1) newlib_elix_level=1 ;;
+ 2) newlib_elix_level=2 ;;
+ 3) newlib_elix_level=3 ;;
+ 4) newlib_elix_level=4 ;;
+ *) as_fn_error $? "bad value ${enableval} for newlib-elix-level option" "$LINENO" 5 ;;
+ esac
+else
+ newlib_elix_level=0
+fi
+
+# Check whether --enable-newlib-io-float was given.
+if test "${enable_newlib_io_float+set}" = set; then :
+ enableval=$enable_newlib_io_float; case "${enableval}" in
+ yes) newlib_io_float=yes ;;
+ no) newlib_io_float=no ;;
+ *) as_fn_error $? "bad value ${enableval} for newlib-io-float option" "$LINENO" 5 ;;
+ esac
+else
+ newlib_io_float=yes
+fi
+
+# Check whether --enable-newlib-supplied-syscalls was given.
+if test "${enable_newlib_supplied_syscalls+set}" = set; then :
+ enableval=$enable_newlib_supplied_syscalls; case "${enableval}" in
+ yes) newlib_may_supply_syscalls=yes ;;
+ no) newlib_may_supply_syscalls=no ;;
+ *) as_fn_error $? "bad value ${enableval} for newlib-supplied-syscalls option" "$LINENO" 5 ;;
+ esac
+else
+ newlib_may_supply_syscalls=yes
+fi
+
+ if test x${newlib_may_supply_syscalls} = xyes; then
+ MAY_SUPPLY_SYSCALLS_TRUE=
+ MAY_SUPPLY_SYSCALLS_FALSE='#'
+else
+ MAY_SUPPLY_SYSCALLS_TRUE='#'
+ MAY_SUPPLY_SYSCALLS_FALSE=
+fi
+
+
+
+test -z "${with_target_subdir}" && with_target_subdir=.
+
+if test "${srcdir}" = "."; then
+ if test "${with_target_subdir}" != "."; then
+ newlib_basedir="${srcdir}/${with_multisrctop}../../../.."
+ else
+ newlib_basedir="${srcdir}/${with_multisrctop}../../.."
+ fi
+else
+ newlib_basedir="${srcdir}/../../.."
+fi
+
+
+
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ am__isrc=' -I$(srcdir)'
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='newlib'
+ VERSION='1.20.0'
+
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+# Always define AMTAR for backward compatibility.
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+
+
+
+
+
+
+# FIXME: We temporarily define our own version of AC_PROG_CC. This is
+# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
+# are probably using a cross compiler, which will not be able to fully
+# link an executable. This should really be fixed in autoconf
+# itself.
+
+
+
+
+
+
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+depcc="$CC" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+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
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -z "$CC" && as_fn_error $? "no acceptable cc found in \$PATH" "$LINENO" 5
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using GNU C" >&5
+$as_echo_n "checking whether we are using GNU C... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat > conftest.c <<EOF
+#ifdef __GNUC__
+ yes;
+#endif
+EOF
+if { ac_try='${CC-cc} -E conftest.c'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; } | egrep yes >/dev/null 2>&1; then
+ ac_cv_c_compiler_gnu=yes
+else
+ ac_cv_c_compiler_gnu=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+
+if test $ac_cv_c_compiler_gnu = yes; then
+ GCC=yes
+ ac_test_CFLAGS="${CFLAGS+set}"
+ ac_save_CFLAGS="$CFLAGS"
+ ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$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
+ if test "$ac_test_CFLAGS" = set; then
+ CFLAGS="$ac_save_CFLAGS"
+ elif test $ac_cv_prog_cc_g = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-O2"
+ fi
+else
+ GCC=
+ test "${CFLAGS+set}" = set || CFLAGS="-g"
+fi
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
+set dummy ${ac_tool_prefix}as; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AS"; then
+ ac_cv_prog_AS="$AS" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AS="${ac_tool_prefix}as"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AS=$ac_cv_prog_AS
+if test -n "$AS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
+$as_echo "$AS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AS"; then
+ ac_ct_AS=$AS
+ # Extract the first word of "as", so it can be a program name with args.
+set dummy as; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AS"; then
+ ac_cv_prog_ac_ct_AS="$ac_ct_AS" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_AS="as"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AS=$ac_cv_prog_ac_ct_AS
+if test -n "$ac_ct_AS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5
+$as_echo "$ac_ct_AS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AS" = x; then
+ AS=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AS=$ac_ct_AS
+ fi
+else
+ AS="$ac_cv_prog_AS"
+fi
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; 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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ RANLIB=$ac_ct_RANLIB
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}readelf", so it can be a program name with args.
+set dummy ${ac_tool_prefix}readelf; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_READELF+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$READELF"; then
+ ac_cv_prog_READELF="$READELF" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_READELF="${ac_tool_prefix}readelf"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+READELF=$ac_cv_prog_READELF
+if test -n "$READELF"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READELF" >&5
+$as_echo "$READELF" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_READELF"; then
+ ac_ct_READELF=$READELF
+ # Extract the first word of "readelf", so it can be a program name with args.
+set dummy readelf; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_READELF+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_READELF"; then
+ ac_cv_prog_ac_ct_READELF="$ac_ct_READELF" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_READELF="readelf"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_READELF=$ac_cv_prog_ac_ct_READELF
+if test -n "$ac_ct_READELF"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_READELF" >&5
+$as_echo "$ac_ct_READELF" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_READELF" = x; then
+ READELF=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ READELF=$ac_ct_READELF
+ fi
+else
+ READELF="$ac_cv_prog_READELF"
+fi
+
+
+
+
+# Hack to ensure that INSTALL won't be set to "../" with autoconf 2.13. */
+ac_given_INSTALL=$INSTALL
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
+$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
+ # Check whether --enable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then :
+ enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
+else
+ USE_MAINTAINER_MODE=no
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
+ if test $USE_MAINTAINER_MODE = yes; then
+ MAINTAINER_MODE_TRUE=
+ MAINTAINER_MODE_FALSE='#'
+else
+ MAINTAINER_MODE_TRUE='#'
+ MAINTAINER_MODE_FALSE=
+fi
+
+ MAINT=$MAINTAINER_MODE_TRUE
+
+
+# By default we simply use the C compiler to build assembly code.
+
+test "${CCAS+set}" = set || CCAS=$CC
+test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS
+
+
+
+
+# We need AC_EXEEXT to keep automake happy in cygnus mode. However,
+# at least currently, we never actually build a program, so we never
+# need to use $(EXEEXT). Moreover, the test for EXEEXT normally
+# fails, because we are probably configuring with a cross compiler
+# which can't create executables. So we include AC_EXEEXT to keep
+# automake happy, but we don't execute it, since we don't care about
+# the result.
+if false; then
+
+ dummy_var=1
+fi
+
+. ${newlib_basedir}/configure.host
+
+newlib_cflags="${newlib_cflags} -fno-builtin"
+
+NEWLIB_CFLAGS=${newlib_cflags}
+
+
+NO_INCLUDE_LIST=${noinclude}
+
+
+LDFLAGS=${ldflags}
+
+
+ if test x${newlib_elix_level} = x0; then
+ ELIX_LEVEL_0_TRUE=
+ ELIX_LEVEL_0_FALSE='#'
+else
+ ELIX_LEVEL_0_TRUE='#'
+ ELIX_LEVEL_0_FALSE=
+fi
+
+ if test x${newlib_elix_level} = x1; then
+ ELIX_LEVEL_1_TRUE=
+ ELIX_LEVEL_1_FALSE='#'
+else
+ ELIX_LEVEL_1_TRUE='#'
+ ELIX_LEVEL_1_FALSE=
+fi
+
+ if test x${newlib_elix_level} = x2; then
+ ELIX_LEVEL_2_TRUE=
+ ELIX_LEVEL_2_FALSE='#'
+else
+ ELIX_LEVEL_2_TRUE='#'
+ ELIX_LEVEL_2_FALSE=
+fi
+
+ if test x${newlib_elix_level} = x3; then
+ ELIX_LEVEL_3_TRUE=
+ ELIX_LEVEL_3_FALSE='#'
+else
+ ELIX_LEVEL_3_TRUE='#'
+ ELIX_LEVEL_3_FALSE=
+fi
+
+ if test x${newlib_elix_level} = x4; then
+ ELIX_LEVEL_4_TRUE=
+ ELIX_LEVEL_4_FALSE='#'
+else
+ ELIX_LEVEL_4_TRUE='#'
+ ELIX_LEVEL_4_FALSE=
+fi
+
+
+ if test x${use_libtool} = xyes; then
+ USE_LIBTOOL_TRUE=
+ USE_LIBTOOL_FALSE='#'
+else
+ USE_LIBTOOL_TRUE='#'
+ USE_LIBTOOL_FALSE=
+fi
+
+
+# Hard-code OBJEXT. Normally it is set by AC_OBJEXT, but we
+# use oext, which is set in configure.host based on the target platform.
+OBJEXT=${oext}
+
+
+
+
+
+
+
+
+
+
+
+ac_config_files="$ac_config_files Makefile"
+
+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, 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.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `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, we kill variables containing newlines.
+# 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.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}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 "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ if test "x$cache_file" != "x/dev/null"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+#
+# If the first sed substitution is executed (which looks for macros that
+# take arguments), then branch to the quote section. Otherwise,
+# look for a macro that doesn't take arguments.
+ac_script='
+:mline
+/\\$/{
+ N
+ s,\\\n,,
+ b mline
+}
+t clear
+:clear
+s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g
+t quote
+s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g
+t quote
+b any
+:quote
+s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g
+s/\[/\\&/g
+s/\]/\\&/g
+s/\$/$$/g
+H
+:any
+${
+ g
+ s/^\n//
+ s/\n/ /g
+ p
+}
+'
+DEFS=`sed -n "$ac_script" confdefs.h`
+
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+if test -z "${MAY_SUPPLY_SYSCALLS_TRUE}" && test -z "${MAY_SUPPLY_SYSCALLS_FALSE}"; then
+ as_fn_error $? "conditional \"MAY_SUPPLY_SYSCALLS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+ as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+ as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ELIX_LEVEL_0_TRUE}" && test -z "${ELIX_LEVEL_0_FALSE}"; then
+ as_fn_error $? "conditional \"ELIX_LEVEL_0\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ELIX_LEVEL_1_TRUE}" && test -z "${ELIX_LEVEL_1_FALSE}"; then
+ as_fn_error $? "conditional \"ELIX_LEVEL_1\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ELIX_LEVEL_2_TRUE}" && test -z "${ELIX_LEVEL_2_FALSE}"; then
+ as_fn_error $? "conditional \"ELIX_LEVEL_2\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ELIX_LEVEL_3_TRUE}" && test -z "${ELIX_LEVEL_3_FALSE}"; then
+ as_fn_error $? "conditional \"ELIX_LEVEL_3\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${ELIX_LEVEL_4_TRUE}" && test -z "${ELIX_LEVEL_4_FALSE}"; then
+ as_fn_error $? "conditional \"ELIX_LEVEL_4\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${USE_LIBTOOL_TRUE}" && test -z "${USE_LIBTOOL_FALSE}"; then
+ as_fn_error $? "conditional \"USE_LIBTOOL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in #(
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+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
+IFS=$as_save_IFS
+
+ ;;
+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
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; 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
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# 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
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval 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="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by newlib $as_me 1.20.0, which was
+generated by GNU Autoconf 2.68. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -q, --quiet, --silent
+ 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
+
+Configuration files:
+$config_files
+
+Configuration commands:
+$config_commands
+
+Report bugs to the package provider."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+newlib config.status 1.20.0
+configured by $0, generated by GNU Autoconf 2.68,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2010 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+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=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h | --help | --hel | -h )
+ $as_echo "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# 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_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp= ac_tmp=
+ trap 'exit_status=$?
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries 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[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+
+eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$ac_tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # 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. */
+ configure_input='Generated from '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`$as_echo "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;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&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&2;}
+
+ rm -f "$ac_tmp/stdin"
+ case $ac_file in
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+
+
+ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+ # Autoconf 2.62 quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ case $CONFIG_FILES in
+ *\'*) eval set x "$CONFIG_FILES" ;;
+ *) set x $CONFIG_FILES ;;
+ esac
+ shift
+ for mf
+ do
+ # Strip MF so we end up with the name of the file.
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile or not.
+ # We used to match only the files named `Makefile.in', but
+ # some people rename them; so instead we look at the file content.
+ # Grep'ing the first line is not enough: some people post-process
+ # each Makefile.in and add a new line on top of each file to say so.
+ # Grep'ing the whole file is not good either: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+ dirpart=`$as_dirname -- "$mf" ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$mf" : 'X\(//\)[^/]' \| \
+ X"$mf" : 'X\(//\)$' \| \
+ X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ else
+ continue
+ fi
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+ test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+ # Make sure the directory exists.
+ test -f "$dirpart/$file" && continue
+ fdir=`$as_dirname -- "$file" ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$file" : 'X\(//\)[^/]' \| \
+ X"$file" : 'X\(//\)$' \| \
+ X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir=$dirpart/$fdir; as_fn_mkdir_p
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+ done
+}
+ ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# 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 || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
diff --git a/newlib/libc/sys/epiphany/configure.in b/newlib/libc/sys/epiphany/configure.in
new file mode 100644
index 000000000..0e08f6e03
--- /dev/null
+++ b/newlib/libc/sys/epiphany/configure.in
@@ -0,0 +1,41 @@
+dnl This is the newlib/libc/sys/epiphany configure.in file.
+
+dnl Copyright (c) 2011, Adapteva, Inc.
+dnl All rights reserved.
+
+dnl Redistribution and use in source and binary forms, with or without
+dnl modification, are permitted provided that the following conditions are met:
+dnl * Redistributions of source code must retain the above copyright notice,
+dnl this list of conditions and the following disclaimer.
+dnl * Redistributions in binary form must reproduce the above copyright
+dnl notice, this list of conditions and the following disclaimer in the
+dnl documentation and/or other materials provided with the distribution.
+dnl * Neither the name of Adapteva nor the names of its contributors may be
+dnl used to endorse or promote products derived from this software without
+dnl specific prior written permission.
+
+dnl THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+dnl AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+dnl IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+dnl ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+dnl LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+dnl CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+dnl SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+dnl INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+dnl CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+dnl ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+dnl POSSIBILITY OF SUCH DAMAGE.
+
+dnl Process this file with autoconf to produce a configure script.
+
+AC_PREREQ(2.59)
+AC_INIT([newlib],[NEWLIB_VERSION])
+AC_CONFIG_SRCDIR([e_printf.c])
+
+dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake.
+AC_CONFIG_AUX_DIR(../../../..)
+
+NEWLIB_CONFIGURE(../../..)
+
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
diff --git a/newlib/libc/sys/epiphany/e_printf.c b/newlib/libc/sys/epiphany/e_printf.c
new file mode 100644
index 000000000..a93c34320
--- /dev/null
+++ b/newlib/libc/sys/epiphany/e_printf.c
@@ -0,0 +1,150 @@
+/* e_printf.c
+
+ Copyright (c) 2011, Adapteva, Inc.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of Adapteva nor the names of its contributors may be
+ used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE. */
+#include <stdarg.h>
+#include <string.h>
+
+
+
+
+int trap_7( char *s , int _bsize, int _argsize) {
+ volatile register void* buff_adrr asm("r0") = s;
+ volatile register unsigned bsize asm("r1") = _bsize;
+ volatile register unsigned argsize asm("r2") = _argsize;
+ volatile register int result asm("r0");
+ __asm__ __volatile__ ("trap 7" : "=r" (result) : "r" (buff_adrr), "r" (bsize) , "r" (argsize));
+ return result;
+
+}
+
+//#include <stdio.h>
+//#include <string.h>
+//#include <stdlib.h>
+
+volatile static int*fp_int =0;
+volatile int getIntFromFloat(float *f) {
+ fp_int= (int*)f;
+
+ return *fp_int;
+}
+
+
+int e_printf(const char *fmt, ...) {
+
+ char buf[256],*p,*fmt_p;
+ va_list args;
+ int percentMet=0;
+ int pos = 0;
+
+ char *v_arg_s;
+ unsigned v_arg_int;
+ float fl_f[1];
+
+ unsigned fmt_len = strnlen(fmt,128);
+
+ fmt_p = (char*)fmt;
+
+ //printf("---- 111 +++ %d \n", strlen(fmt));
+
+ va_start(args, fmt);
+
+ p = (char*)buf;
+
+ strcpy(buf,fmt);
+ pos =fmt_len;
+ p[pos] = '\0';
+ pos++;
+
+ va_start(args, fmt);
+
+ while (*fmt_p) {
+
+// putchar(*p);
+// puts("");
+
+ if(*fmt_p == '%') {
+ percentMet=1;
+ }
+ if(*fmt_p == 's' && percentMet == 1 ) {
+ percentMet=0;
+ v_arg_s = va_arg(args, char *);
+ if (!v_arg_s) v_arg_s = "<NULL>";
+
+ strcpy(p + pos , v_arg_s );
+ pos+=strlen(v_arg_s);
+
+ p[pos] = '\0';
+ pos++;
+ }
+
+ if((*fmt_p == 'i' || *fmt_p == 'd' || *fmt_p == 'u' || *fmt_p == 'x' || *fmt_p == 'f' ) && percentMet == 1 ) {
+ percentMet=0;
+ if(*fmt_p == 'f' ) {
+ fl_f[0] = (float)va_arg(args, double);
+ //printf("v_arg_ float --- %f \n", fl_f[0]);
+ //printf("v_arg_ p --- %x \n", *( (unsigned *)fl_f));
+
+ v_arg_int = getIntFromFloat (fl_f);
+
+ //v_arg_int = 0;
+
+ } else {
+ v_arg_int = (int)va_arg(args, int);
+ }
+
+// if(*fmt_p == 'd') {
+// printf("v_arg_int --- %d \n", v_arg_int);
+// }
+// if(*fmt_p == 'x') {
+// printf("v_arg_int --- %x \n", v_arg_int);
+// }
+// if(*fmt_p == 'f') {
+// printf("fff++v_arg_int --- %x \n", v_arg_int);
+// fl = (float*)&v_arg_int;
+// printf("fff++ v_arg_float --- %f \n", *fl);
+// }
+
+ *(p + pos) = ((v_arg_int>>24) & 0xff);
+ pos++;
+ *(p + pos) = ((v_arg_int>>16) & 0xff);
+ pos++;
+ *(p + pos) = ((v_arg_int>>8) & 0xff);
+ pos++;
+ *(p + pos) = ((v_arg_int>>0) & 0xff);
+ pos++;
+ }
+
+ fmt_p++;
+ }
+
+ va_end(args);
+
+ //printf(" +++ %d %d \n" , strlen(fmt), pos);
+
+ return trap_7((char*)buf ,fmt_len, pos) ;
+ //return 1;
+}
diff --git a/newlib/libc/sys/rtems/crt0.c b/newlib/libc/sys/rtems/crt0.c
index e47d933f6..1565859c3 100644
--- a/newlib/libc/sys/rtems/crt0.c
+++ b/newlib/libc/sys/rtems/crt0.c
@@ -50,7 +50,6 @@ int rtems_gxx_recursive_mutex_unlock() { return -1; }
#endif
/* stubs for functions RTEMS provides */
-RTEMS_STUB(int, access(const char *pathname, int mode), { return -1; })
RTEMS_STUB(int, clock_gettime(clockid_t clk_id, struct timespec *tp), { return -1; })
RTEMS_STUB(int, close (int fd), { return -1; })
RTEMS_STUB(int, dup2(int oldfd, int newfd), { return -1; })
@@ -64,7 +63,6 @@ RTEMS_STUB(struct passwd *, getpwnam(const char *name), { return 0; })
RTEMS_STUB(struct passwd *, getpwuid(uid_t uid), { return 0; })
RTEMS_STUB(uid_t, getuid(void), { return 0; })
RTEMS_STUB(int, nanosleep(const struct timespec *req, struct timespec *rem), { return -1; })
-RTEMS_STUB(int, ftruncate(int fd, off_t length), { return -1; })
RTEMS_STUB(_off_t, lseek(int fd, _off_t offset, int whence), { return -1; })
RTEMS_STUB(int, lstat(const char *path, struct stat *buf), { return -1; })
RTEMS_STUB(int, open(const char *pathname, int flags, int mode), { return -1; })
@@ -95,12 +93,7 @@ RTEMS_STUB(int, _fork_r (struct _reent *r), { return -1; })
#endif
#endif
RTEMS_STUB(int, _fstat_r (struct _reent *r, int fd, struct stat *buf), { return -1; })
-RTEMS_STUB(uid_t, geteuid (), { return -1; })
-RTEMS_STUB(gid_t, getgid (), { return -1; })
-RTEMS_STUB(gid_t, _getgid_r (struct _reent *r), { return -1; })
-RTEMS_STUB(pid_t, getpid (), { return -1; })
-RTEMS_STUB(pid_t, getppid (), { return -1; })
-RTEMS_STUB(pid_t, _getpid_r (struct _reent *r), { return -1; })
+RTEMS_STUB(int, _getpid_r (struct _reent *r), { return -1; })
RTEMS_STUB(int, _gettimeofday_r(struct _reent *r, struct timeval *tp, void *tzp), { return 0; })
RTEMS_STUB(int, _isatty_r (struct _reent *r, int fd), { return isatty( fd ); })
RTEMS_STUB(int, _kill_r (struct _reent *r, int pid, int sig ), { return -1; })
diff --git a/newlib/libc/sys/rtems/machine/_types.h b/newlib/libc/sys/rtems/machine/_types.h
index ce8dc47f0..2e0204335 100644
--- a/newlib/libc/sys/rtems/machine/_types.h
+++ b/newlib/libc/sys/rtems/machine/_types.h
@@ -13,7 +13,7 @@
* could be applied here.
*/
-#if defined(__i386__) || defined(__m32r__) || defined(__h8300__) || (defined(__arm__) && !defined(__ARM_EABI__)) || defined(__bfin__) || defined(__m68k__) || defined(__MICROBLAZE__)
+#if defined(__i386__) || defined(__m32r__) || defined(__h8300__) || defined(__arm__) || defined(__bfin__) || defined(__m68k__)
#if defined(__H8300__)
typedef signed int _ssize_t;
#else
@@ -23,8 +23,7 @@ typedef long signed int _ssize_t;
#elif defined(__sparc__) && defined(__LP64__)
typedef long signed int _ssize_t;
#define __ssize_t_defined 1
-#elif defined(__AVR__) || defined(__lm32__) || defined(__m32c__) || defined(__mips__) || defined(__moxie__) || defined(__PPC__) || defined(__sparc__) || defined(__sh__) || defined(__ARM_EABI__) \
- || defined(__v850__) || defined(__v851__)
+#elif defined(__AVR__) || defined(__lm32__) || defined(__m32c__) || defined(__mips__) || defined(__moxie__) || defined(__PPC__) || defined(__sparc__) || defined(__sh__)
typedef signed int _ssize_t;
#define __ssize_t_defined 1
#else
diff --git a/newlib/libc/sys/sysnecv850/crt0.S b/newlib/libc/sys/sysnecv850/crt0.S
index 43b5e21cd..b319d30b7 100644
--- a/newlib/libc/sys/sysnecv850/crt0.S
+++ b/newlib/libc/sys/sysnecv850/crt0.S
@@ -5,7 +5,7 @@
_start:
-#if defined(__v850e__) || defined(__v850e2__) || defined(__v850e2v3__)
+#if defined __v850e__
movea 255, r0, r20
mov 65535, r21
diff --git a/newlib/libc/time/strptime.c b/newlib/libc/time/strptime.c
index 601f93e8a..0fc5f4e13 100644
--- a/newlib/libc/time/strptime.c
+++ b/newlib/libc/time/strptime.c
@@ -165,8 +165,8 @@ _DEFUN (strptime, (buf, format, timeptr),
char *s;
int ret;
- if (isspace ((unsigned char) c)) {
- while (isspace ((unsigned char) *buf))
+ if (isspace (c)) {
+ while (isspace (*buf))
++buf;
} else if (c == '%' && format[1] != '\0') {
c = *++format;
diff --git a/newlib/libm/common/sf_round.c b/newlib/libm/common/sf_round.c
index c8f1d7733..1bf60890c 100644
--- a/newlib/libm/common/sf_round.c
+++ b/newlib/libm/common/sf_round.c
@@ -18,12 +18,16 @@
float x;
#endif
{
+ int signbit;
__uint32_t w;
/* Most significant word, least significant word. */
int exponent_less_127;
GET_FLOAT_WORD(w, x);
+ /* Extract sign bit. */
+ signbit = w & 0x80000000;
+
/* Extract exponent field. */
exponent_less_127 = (int)((w & 0x7f800000) >> 23) - 127;
diff --git a/newlib/libm/math/e_atan2.c b/newlib/libm/math/e_atan2.c
index 8e9650f29..268be64a9 100644
--- a/newlib/libm/math/e_atan2.c
+++ b/newlib/libm/math/e_atan2.c
@@ -73,7 +73,7 @@ pi_lo = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */
if(((ix|((lx|-lx)>>31))>0x7ff00000)||
((iy|((ly|-ly)>>31))>0x7ff00000)) /* x or y is NaN */
return x+y;
- if(((hx-0x3ff00000)|lx)==0) return atan(y); /* x=1.0 */
+ if((hx-0x3ff00000|lx)==0) return atan(y); /* x=1.0 */
m = ((hy>>31)&1)|((hx>>30)&2); /* 2*sign(x)+sign(y) */
/* when y = 0 */
diff --git a/newlib/libm/math/e_exp.c b/newlib/libm/math/e_exp.c
index e7455eef6..ce093c610 100644
--- a/newlib/libm/math/e_exp.c
+++ b/newlib/libm/math/e_exp.c
@@ -109,7 +109,7 @@ P5 = 4.13813679705723846039e-08; /* 0x3E663769, 0x72BEA4D0 */
#endif
{
double y,hi,lo,c,t;
- __int32_t k = 0,xsb;
+ __int32_t k,xsb;
__uint32_t hx;
GET_HIGH_WORD(hx,x);
@@ -144,6 +144,7 @@ P5 = 4.13813679705723846039e-08; /* 0x3E663769, 0x72BEA4D0 */
else if(hx < 0x3e300000) { /* when |x|<2**-28 */
if(huge+x>one) return one+x;/* trigger inexact */
}
+ else k = 0;
/* x is now in primary range */
t = x*x;
diff --git a/newlib/libm/math/e_pow.c b/newlib/libm/math/e_pow.c
index cad6737a1..aac0b4211 100644
--- a/newlib/libm/math/e_pow.c
+++ b/newlib/libm/math/e_pow.c
@@ -120,10 +120,9 @@ ivln2_l = 1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/
/* x|y==NaN return NaN unless x==1 then return 1 */
if(ix > 0x7ff00000 || ((ix==0x7ff00000)&&(lx!=0)) ||
- iy > 0x7ff00000 || ((iy==0x7ff00000)&&(ly!=0))) {
+ iy > 0x7ff00000 || ((iy==0x7ff00000)&&(ly!=0)))
if(((ix-0x3ff00000)|lx)==0) return one;
else return nan("");
- }
/* determine if y is an odd int when x < 0
* yisint = 0 ... y is not an integer
diff --git a/newlib/libm/math/e_rem_pio2.c b/newlib/libm/math/e_rem_pio2.c
index ddfecba2d..3e5d0f7a2 100644
--- a/newlib/libm/math/e_rem_pio2.c
+++ b/newlib/libm/math/e_rem_pio2.c
@@ -89,7 +89,7 @@ pio2_3t = 8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */
double x,y[];
#endif
{
- double z = 0.0,w,t,r,fn;
+ double z,w,t,r,fn;
double tx[3];
__int32_t i,j,n,ix,hx;
int e0,nx;
diff --git a/newlib/libm/math/ef_exp.c b/newlib/libm/math/ef_exp.c
index 6824f991a..19c570cfd 100644
--- a/newlib/libm/math/ef_exp.c
+++ b/newlib/libm/math/ef_exp.c
@@ -47,7 +47,7 @@ P5 = 4.1381369442e-08; /* 0x3331bb4c */
#endif
{
float y,hi,lo,c,t;
- __int32_t k = 0,xsb,sx;
+ __int32_t k,xsb,sx;
__uint32_t hx;
GET_FLOAT_WORD(sx,x);
@@ -79,6 +79,7 @@ P5 = 4.1381369442e-08; /* 0x3331bb4c */
else if(hx < 0x31800000) { /* when |x|<2**-28 */
if(huge+x>one) return one+x;/* trigger inexact */
}
+ else k = 0;
/* x is now in primary range */
t = x*x;
diff --git a/newlib/libm/math/ef_pow.c b/newlib/libm/math/ef_pow.c
index b3041dbdc..6804ce45a 100644
--- a/newlib/libm/math/ef_pow.c
+++ b/newlib/libm/math/ef_pow.c
@@ -77,10 +77,9 @@ ivln2_l = 7.0526075433e-06; /* 0x36eca570 =1/ln2 tail*/
/* x|y==NaN return NaN unless x==1 then return 1 */
if(FLT_UWORD_IS_NAN(ix) ||
- FLT_UWORD_IS_NAN(iy)) {
+ FLT_UWORD_IS_NAN(iy))
if(ix==0x3f800000) return one;
else return nanf("");
- }
/* determine if y is an odd int when x < 0
* yisint = 0 ... y is not an integer
diff --git a/newlib/libm/math/er_lgamma.c b/newlib/libm/math/er_lgamma.c
index 386a8a73b..7c9a153ed 100644
--- a/newlib/libm/math/er_lgamma.c
+++ b/newlib/libm/math/er_lgamma.c
@@ -216,7 +216,7 @@ static double zero= 0.00000000000000000000e+00;
double x; int *signgamp;
#endif
{
- double t,y,z,nadj = 0.0,p,p1,p2,p3,q,r,w;
+ double t,y,z,nadj,p,p1,p2,p3,q,r,w;
__int32_t i,hx,lx,ix;
EXTRACT_WORDS(hx,lx,x);
diff --git a/newlib/libm/math/erf_lgamma.c b/newlib/libm/math/erf_lgamma.c
index 3c6ba02af..90cc5425d 100644
--- a/newlib/libm/math/erf_lgamma.c
+++ b/newlib/libm/math/erf_lgamma.c
@@ -151,7 +151,7 @@ static float zero= 0.0000000000e+00;
float x; int *signgamp;
#endif
{
- float t,y,z,nadj = 0.0,p,p1,p2,p3,q,r,w;
+ float t,y,z,nadj,p,p1,p2,p3,q,r,w;
__int32_t i,hx,ix;
GET_FLOAT_WORD(hx,x);
diff --git a/newlib/testsuite/newlib.stdio/stdio.exp b/newlib/testsuite/newlib.stdio/stdio.exp
new file mode 100644
index 000000000..164cbf353
--- /dev/null
+++ b/newlib/testsuite/newlib.stdio/stdio.exp
@@ -0,0 +1,12 @@
+# Copyright (C) 2011 by ARM Ltd. All rights reserved.
+#
+# Permission to use, copy, modify, and distribute this software
+# is freely granted, provided that this notice is preserved.
+#
+
+load_lib passfail.exp
+
+set exclude_list {
+}
+
+newlib_pass_fail_all -x $exclude_list
diff --git a/newlib/testsuite/newlib.stdio/swprintf.c b/newlib/testsuite/newlib.stdio/swprintf.c
new file mode 100644
index 000000000..b925da487
--- /dev/null
+++ b/newlib/testsuite/newlib.stdio/swprintf.c
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2011 by ARM Ltd. All rights reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software
+ * is freely granted, provided that this notice is preserved.
+ */
+
+#include <stdio.h>
+#include <newlib.h>
+#include <stdlib.h>
+#include <wchar.h>
+#include "check.h"
+
+int main()
+{
+#if defined(INTEGER_ONLY) || defined(NO_FLOATING_POINT)
+
+#else
+ char cbuf[512];
+ wchar_t wcbuf[512], wcbuf2[512];
+ double val = 1E+308;
+ snprintf(cbuf, 512, "%.*f", 3, val);
+ swprintf(wcbuf, 512, L"%.*f", 3, val);
+ mbstowcs(wcbuf2, cbuf, 512);
+
+ CHECK (wcscmp(wcbuf, wcbuf2) == 0);
+#endif
+
+ exit (0);
+}
diff --git a/winsup/ChangeLog b/winsup/ChangeLog
index 440d75414..09a3436b1 100644
--- a/winsup/ChangeLog
+++ b/winsup/ChangeLog
@@ -1,13 +1,3 @@
-2012-07-30 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * Makefile.common (CFLAGS_COMMON): Add temporary define to work around
- w32api problem.
-
-2012-07-06 Corinna Vinschen <corinna@vinschen.de>
-
- * Makefile.common (ALL_CFLAGS): Change := to = to allow overriding in
- dependent Makefiles.
-
2012-01-09 Corinna Vinschen <corinna@vinschen.de>
* Makefile.common (MINGW_LDFLAGS): Correctly use -L rather than -B here.
diff --git a/winsup/Makefile.common b/winsup/Makefile.common
index 1917e3d21..d496fb8d6 100644
--- a/winsup/Makefile.common
+++ b/winsup/Makefile.common
@@ -1,6 +1,6 @@
# Makefile.common - common definitions for the winsup directory
#
-# Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2009, 2012 Red Hat, Inc.
+# Copyright 2000, 2001, 2002, 2003, 2004, 2005 Red Hat, Inc.
#
# This file is part of Cygwin.
#
@@ -10,7 +10,7 @@
# This makefile requires GNU make.
-CFLAGS_COMMON:=-Wall -Wstrict-aliasing -Wwrite-strings -fno-common -pipe -fbuiltin -fmessage-length=0 -D_SDKDDKVER_H
+CFLAGS_COMMON:=-Wall -Wstrict-aliasing -Wwrite-strings -fno-common -pipe -fbuiltin -fmessage-length=0# -finline-functions
MALLOC_DEBUG:=#-DMALLOC_DEBUG -I/cygnus/src/uberbaum/winsup/cygwin/dlmalloc
MALLOC_OBJ:=#/cygnus/src/uberbaum/winsup/cygwin/dlmalloc/malloc.o
@@ -113,7 +113,7 @@ LIBC:=$(newlib_build)/libc/libc.a
LIBM:=$(newlib_build)/libm/libm.a
CRT0:=$(cygwin_build)/crt0.o
-ALL_CFLAGS=$(DEFS) $(MALLOC_DEBUG) $(CFLAGS) $(GCC_DEFAULT_OPTIONS)
+ALL_CFLAGS:=$(DEFS) $(MALLOC_DEBUG) $(CFLAGS) $(GCC_DEFAULT_OPTIONS)
ALL_CXXFLAGS=$(DEFS) $(MALLOC_DEBUG) $(CXXFLAGS) $(GCC_DEFAULT_OPTIONS)
ifndef PREPROCESS
diff --git a/winsup/cygserver/ChangeLog b/winsup/cygserver/ChangeLog
index c3731f710..6740069ca 100644
--- a/winsup/cygserver/ChangeLog
+++ b/winsup/cygserver/ChangeLog
@@ -1,7 +1,3 @@
-2012-07-19 Corinna Vinschen <corinna@vinschen.de>
-
- * woutsup.h: Just include winlean.h.
-
2012-03-19 Christopher Faylor <me.cygwin2012@cgf.cx>
* client.cc: Revert sigproc.h inclusion since it was fixed elsewhere.
diff --git a/winsup/cygserver/woutsup.h b/winsup/cygserver/woutsup.h
index 5598c11c2..b262ae2a1 100644
--- a/winsup/cygserver/woutsup.h
+++ b/winsup/cygserver/woutsup.h
@@ -23,7 +23,22 @@ details. */
#define _WIN32_WINNT 0x0500
#endif
-#include "winlean.h"
+#define WIN32_LEAN_AND_MEAN 1
+#define _WINGDI_H
+#define _WINUSER_H
+#define _WINNLS_H
+#define _WINVER_H
+#define _WINNETWK_H
+#define _WINSVC_H
+#include <windows.h>
+#include <wincrypt.h>
+#include <lmcons.h>
+#undef _WINGDI_H
+#undef _WINUSER_H
+#undef _WINNLS_H
+#undef _WINVER_H
+#undef _WINNETWK_H
+#undef _WINSVC_H
#include "bsd_helper.h"
#include "bsd_log.h"
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index e6b69ccd2..760df768c 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,993 +1,3 @@
-2012-08-09 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * DevNotes: Add entry cgf-000014.
- * cygheap.cc (tls_sentry): Move here, rename from 'sentry' in cygtls.cc
- (tls_sentry::lock): Ditto.
- (nthreads): Move from cygtls.cc
- (THREADLIST_CHUNK): Ditto.
- (cygheap_init): Call init_tls_list().
- (init_cygheap::init_tls_list): Define new function.
- (init_cygheap::add_tls): Ditto.
- (init_cygheap::remove_tls): Ditto.
- (init_cygheap::find_tls): Ditto. Semi-resurrect from
- _cygtls::find_tls.
- * cygheap.h (init_cygheap::init_tls_list): Declare new function.
- (init_cygheap::add_tls): Ditto.
- (init_cygheap::remove_tls): Ditto.
- (init_cygheap::find_tls): Ditto.
- * cygtls.cc (sentry): Delete.
- (sentry::lock): Ditto.
- (nthreads): Ditto.
- (THREADLIST_CHUNK): Ditto.
- (_cygtls::init): Delete definition.
- (_cygtls::init_thread): Call cygheap->add_tls() to add thread to global
- list.
- (_cygtls::remove): cygheap->remove_tls() to remove thread from global
- list.
- * cygtls.h (_cygtls::init): Delete declaration.
- * dcrt0.cc (dll_crt0_0): Delete call to _cygtls::init().
- * exceptions.cc (sigpacket::process): When no thread is specified, try
- to find one via cygheap->find_tls.
-
-2012-08-08 Corinna Vinschen <corinna@vinschen.de>
-
- * include/sys/wait.h (_wait): Define when building newlib.
-
-2012-08-07 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * signal.cc (sigwaitinfo): Change cw_sig to the correct cw_sig_eintr.
-
-2012-08-03 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * exceptions.cc (sigdelayed): Simplify declaration.
- (_cygtls::call_signal_handler): Fix test for when to pop signal stack.
- Only do it exactly when what is on the stack is a no-op.
-
-2012-08-03 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * spawn.cc (child_info_spawn::worker): Put back a minor variation of
- Corinna's test for detecting a background process when starting a
- non-cygwin process.
-
-2012-08-01 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/socket.h (MSG_BCAST): Define.
- (MSG_MCAST): Define.
-
-2012-08-01 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (fhandler_socket::recv_internal): Add bool parameter.
- Add regparm attribute.
- * fhandler_socket.cc (fhandler_socket::read): Call recv_internal with
- second parameter set to false.
- (fhandler_socket::readv): Ditto.
- (fhandler_socket::recvfrom): Ditto.
- (fhandler_socket::recv_internal): Convert use_recvmsg from local
- variable to parameter. Use as request for using WSARecvMsg. Only
- fail if WSARecvMsg can't be loaded and wsamsg->Control.len > 0,
- otherwise use WSARecv{From}. Restrict dwFlags to MSG_PEEK when using
- WSARecvMsg.
- (fhandler_socket::recvmsg): Prefer using WSARecvMsg. Change priority
- of tests for not using WSARecvMsg. Call recv_internal with second
- parameter set accordingly.
-
-2012-08-01 Corinna Vinschen <corinna@vinschen.de>
-
- * Makefile.in: Semi-revert patch from 2012-07-01, assuming the previous
- patch to etc::dir_changed fixes the underlying issue.
-
-2012-07-31 Corinna Vinschen <corinna@vinschen.de>
-
- * path.cc (etc::dir_changed): Revert muto changes since function is
- called under lock condition anyway.
-
-2012-07-31 Corinna Vinschen <corinna@vinschen.de>
-
- * path.cc (etc::dir_changed): Change `io' to a static NO_COPY
- variable. Explain why. Add a muto to guard overwriting the changed_h
- handle by multiple concurrent threads.
- * path.h (class etc): Drop unused changed_h member.
-
-2012-07-30 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * winlean.h: Define constant which will be needed eventually. Remove
- hack in favor of another hack.
- * lib/crt0.h: Use "winlean.h".
-
-2012-07-30 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * winlean.h: Add temporary define.
- * winsup.h: Remove ancient debugging defines.
-
-2012-07-29 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * cygwait.cc (cancelable_wait): Add some debugging-only output.
- * exceptions.cc (sig_handle_tty_stop): Make sure that incyg is cleared
- when exiting if we have no parent process. Only wait for signal_arrived.
- (sigpacket::process): Make continue_now a bool. Delay sending
- signal_arrived until the end. Make code more defensive to avoid
- calling signal handler when stopped. Only set signal_arrived when
- stopped.
- * sigproc.cc (sig_hold): Rename from sigCONT. Make static.
- (sig_send): Accommodate sigCONT -> sig_hold rename.
- (wait_sig): Ditto.
- * sigproc.h (sigCONT): Delete declaration.
-
- * fhandler_console.cc (fhandler_console::write): Use new '%0c' facility
- to print characters. Change to paranoid to avoid excessive strace
- output.
- * fhandler_tty.cc (fhandler_pty_master::accept_input): Make frequent
- strace printf "paranoid" to help cut down on strace output size.
-
- * signal.cc (sigsuspend): Add standard syscall strace output.
- (sigpause): Ditto.
- (pause): Ditto.
-
-2012-07-29 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * cygtls.h (_cygtls::reset_signal_arrived): New function.
- (set_signal_arrived::~set_signal_arrived): Use reset_signal_arrived to
- reset state.
- * exceptions.cc (sig_handle_tty_stop): Use WAIT_SIGNALED rather than
- assume we know the return from cancelable_wait.
- (_cygtls::interrupt_setup): Modify to allow calling when executing in
- non-cygwin code via sigdelayed. Always reset signal_arrived.
- * gendef: Throughout use start_offset rather than the completely wrong
- sizeof__cygtls.
- (_sigdelayed): Rewrite to avoid duplication when calling the signal
- handler.
- (sigreturn): Delete.
- * gentls_offsets: Define start_offset rather than sizeof__cygtls.
- * tlsoffsets.h: Regenerate.
-
-2012-07-29 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * fhandler_termios.cc (fhandler_termios::line_edit): Use special case
- '%0c' handling to print non-printable characters using hex notation.
- * smallprint.cc (__small_vsprintf): Semi-reimplement printing of
- non-printable characters in hex but only when padding is specified.
-
- * dcrt0.cc (dll_crt0_0): Remove tty_list initialization.
- * shared.cc (memory_init): Initialize tty_list here.
-
- * path.cc (path_conv::check): Remove unneeded parentheses from if
- check.
-
-2012-07-28 Corinna Vinschen <corinna@vinschen.de>
-
- * include/inttypes.h: Add x86_64 target considerations throughout.
- Define macros in C++ according to C99 requirements.
- * include/stdint.h: Ditto.
-
-2012-07-25 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * signal.cc (clock_nanosleep): Force return on signal rather than
- letting cancelable_wait loop on signal.
-
-2012-07-25 Corinna Vinschen <corinna@vinschen.de>
-
- * syscalls.cc (enum bin_status): Add dir_not_empty.
- (try_to_bin): Call NtQueryInformationFile(FileInternalInformation)
- with exact buffer size. Explain why.
- Ditto for NtSetInformationFile(FileRenameInformation).
- Handle race-condition which might lead to renaming a non-empty
- directory.
- (unlink_nt): Rearrange and partially rephrase comments related to the
- STATUS_SHARING_VIOLATION case. Fix condition under which a dir is
- tested for being non-empty. Handle dir_not_empty return code from
- try_to_bin. Gracefully handle disappearing directory in rm -r
- workaround. Fix typo in comment.
-
-2012-07-24 Corinna Vinschen <corinna@vinschen.de>
-
- * wincap.cc (wincapc::init): Drop memset call since it can result in
- a race condition. Drop all considerations for pre-Windows 2000 systems
- since Cygwin won't start on them anyway.
-
-2012-07-23 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- Change "set_thread_waiting" to "set_signal_arrived" throughout.
-
-2012-07-21 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * DevNotes: Add entry cgf-000013.
- * cygserver_ipc.h (ipc_set_proc_info): Use _cygtls::ipc_set_proc_info
- to set per-thread signal arrived value.
- * cygthread.cc (cygthread::detach): Use per-thread signal_arrived via
- set_thread_waiting.
- * fork.cc (_cygtls::fixup_after_fork): Clear signal_arrived.
- (_cygtls::remove): Close any signal_arrived handle when thread exists.
- (_cygtls::find_tls): Remove unneeded function.
- * cygtls.h: Update copyright.
- (class _cygtls): Reorganize to help avoid rebuilding newlib when
- structure changes.
- (_cygtls::event): Delete.
- (_cygtls::threadkill): Ditto.
- (_cygtls::signal_waiting): Declare new bool.
- (_cygtls::find_tls): Delete declaration.
- (_cygtls::set_threadkill): Ditto.
- (_cygtls::reset_threadkill): Ditto.
- (_cygtls::set_signal_arrived): Declare new function.
- (class set_thread_waiting): Declare new class.
- * cygwait.cc (cw_nowait_storage): Define.
- (cygwait): Set per-thread signal_arrived via set_thread_waiting. Don't
- special-case _main_tls.
- * cygwait.h (cw_nowait): Define.
- (cw_infinite): Ditto.
- (cygwait): Redefine pathological wait-only case.
- * dcrt0.cc (dll_crt0_0): Remove call to now-defunct events_init().
- (dll_crt0_1): Remove call to now-defunct create_signal_arrived().
- * exceptions.cc: Reflect set_signal_mask() argument reordering
- throughout. Remove signal mask synchronization throughout.
- (events_init): Delete definition.
- (mask_sync): Delete now-unneeded mask synchronization.
- (set_signal_mask): Reverse order of arguments to "standard" to, from
- layout. Rename "newmask" argument to "setmask". Remove debugging.
- (sig_handle_tty_stop): Use cancelable_wait rather than WFMO.
- (_cygtls::interrupt_setup): Don't treat "threadkill" events specially.
- Conditionally set signal_arrived depending on whether the thread has
- created it or not.
- (sigpacket::process): Reorganize to reflect thread-specific sending of
- signals which is more in line with the way it was actually supposed to
- work.
- * fhandler_socket.cc (get_inet_addr): Use cancelable_wait rather than
- IsEventSignalled to avoid potential race.
- (fhandler_socket::wait_for_events): Set signal_arrived event using
- set_thread_waiting().
- (fhandler_socket::close): Use cygwait for the case of just
- waiting 10 ms for a signal.
- * fhandler_tape.cc (fhandler_dev_tape::_lock): Use cancelable_wait
- rather than WFMO. Redo switch/case tests accordingly.
- * fhandler_termios.cc (fhandler_termios::bg_check): Use cygwait for
- case of just waiting 0 ms for a potential signal.
- * fhandler_tty.cc (fhandler_pty_master::process_slave_output): Use
- cancelable_wait rather than WFSO.
- * fhandler_windows.cc (fhandler_windows::read): Set per-thread
- signal_arrived via set_thread_waiting().
- * flock.cc (lf_setlock): Ditto.
- * select.cc (pselect): Ditto. Set per-thread signal_arrived using
- set_thread_waiting().
- * gendef: Don't special case handling of _cygtls::sig for threads.
- * gentls_offsets: Use #pragma once in tlsoffsets.h.
- * ntdll.h: Use #pragma once.
- * poll.cc: Reflect set_signal_mask() argument reordering.
- * posix_ipc.cc (ipc_mutex_lock): Use cancelable_wait rather than WFMO.
- (ipc_cond_timedwait): Set perl-thread signal arrived using
- set_thread_waiting().
- * security.h: Use #pragma once.
- * signal.cc (abort): Reflect set_signal_mask() argument reordering.
- (clock_nanosleep): Ditto. Change call to cancelable_wait to properly
- specify handling of cancel and interrupt.
- (sigwaitinfo): Remove handling of per-thread event in favor of
- per-thread signal_arrived. Use cancelable_wait rather than WFSO.
- * sigproc.cc (signal_arrived): Delete definition.
- (create_signal_arrived): Ditto.
- * sigproc.h (signal_arrived): Delete declaration.
- (set_signal_mask): Avoid defining as a "C" function. Don't
- conditionally declare.
- (create_signal_arrived): Delete declaration.
- * syscalls.cc (rename): Use cygwait() rather than WFSO.
- * thread.h (fast_mutex::lock): Use cw_infinite rather than LARGE_NULL.
- * wait.cc (wait4): Ditto.
- * thread.cc (pthread_mutex::lock): Ditto.
- (pthread::join): Ditto.
- (semaphore::_wait): Ditto.
- (pthread_kill): Remove set_threadkill() accommodation.
- * tlsoffsets.h: Regenerate.
-
-2012-07-21 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 17.
-
-2012-07-19 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
-
- * mount.cc (getmntent_r): Remove unused but set variable.
-
-2012-07-18 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
-
- * cygwin.din (getmntent_r): Export.
- * mount.cc (getmntent_r): New function.
- * posix.sgml (std-gnu): Add getmntent_r.
- * include/mntent.h (getmntent_r): Declare.
- * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
-
-2012-07-12 Corinna Vinschen <corinna@vinschen.de>
-
- * winlean.h: Make sure certain Windows macros are undefined again.
- Add comment to explain why.
- * winsup.h: Include winlean.h from C sources as well.
- * libc/minires-os-if.c: Drop including ntdef.h.
-
-2012-07-12 Corinna Vinschen <corinna@vinschen.de>
-
- * pseudo-reloc.cc: Drop including wchar.h and ntdef.h.
- (__report_error): Define module as WCHAR.
- * advapi.cc: Drop including wchar.h.
- * kernel32.cc: Ditto.
-
-2012-07-11 Corinna Vinschen <corinna@vinschen.de>
-
- * cygtls.cc (well_known_dlls): Add ole32.dll and wbemprox.dll.
-
-2012-07-09 Corinna Vinschen <corinna@vinschen.de>
-
- * cygwin.sc (.rdata): Revert patch from 2012-07-06.
-
-2012-07-09 Corinna Vinschen <corinna@vinschen.de>
-
- * passwd.cc (getpass): Make check for closed stream more reliable.
- Check if setting tty attributes worked and only revert to old state
- if so.
-
-2012-07-09 Corinna Vinschen <corinna@vinschen.de>
-
- * Makefile.in, configure.in, mkvers.sh: Revert accidental checkin from
- 2012-07-06.
-
-2012-07-07 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * Makefile.in: Change mingw_lib (temporarily?) back to w32api_lib.
-
-2012-07-06 Corinna Vinschen <corinna@vinschen.de>
-
- * winlean.h (__STRALIGN_H_): Drop definition.
-
-2012-07-06 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_procnet.cc: Fix copyright.
- * syslog.cc: Ditto.
- * libc/minires-os-if.c: Ditto.
- * libc/minires.h: Ditto.
-
-2012-07-06 Corinna Vinschen <corinna@vinschen.de>
-
- In terms of network related functionality, rely on Winsock definitions
- as much as possible:
- * dtable.cc: Drop including sys/socket.h.
- * fhandler_procnet.cc: Change includes accordingly.
- * fhandler_socket.cc: Ditto.
- (fhandler_socket::listen): Avoid gcc error message initializing sin6.
- (LPFN_WSARECVMSG): Only define when building against w32api headers.
- * net.cc: Change includes accordingly. Define USE_SYS_TYPES_FD_SET
- and __WSA_ERR_MACROS_DEFINED. Define _INC_NETIOAPI temporarily and
- explain why.
- (struct _IP_ADAPTER_UNICAST_ADDRESS_LH): Only define when building
- against w32api headers.
- (struct _IP_ADAPTER_ADDRESSES_LH): Ditto.
- (SIO_GET_INTERFACE_LIST): Ditto.
- (ws_freeaddrinfo): Rename from freeaddrinfo so as not to collide with
- Winsock declaration. Change througout.
- (ws_getaddrinfo): Ditto.
- (ws_getnameinfo): Ditto.
- * select.cc: Include netdb.h after defining USE_SYS_TYPES_FD_SET.
- * syslog.cc: Drop including netinet/in.h. Define USE_SYS_TYPES_FD_SET
- and include ws2tcpip.h.
- * include/netdb.h (struct addrinfo): Don't define when building Cygwin.
- * include/cygwin/if.h: Don't declare if_xxx functions when building
- Cygwin.
- * include/cygwin/in.h: Disable most definitions when building Cygwin.
- * include/cygwin/socket.h: Disable sockaddr and sockaddr_storage
- definitions when building Cygwin. Same for MCAST_INCLUDE/MCAST_EXCLUDE.
- * libc/inet_addr.c: Don't define __INSIDE_CYGWIN__ nor
- __INSIDE_CYGWIN_NET__.
- * libc/inet_network.c: Ditto.
- * libc/minires.h: Drop redundant inclusion of netdb.h. Define
- __INSIDE_CYGWIN_NET__ only before including netdb.h and resolver
- headers.
-
-2012-07-06 Corinna Vinschen <corinna@vinschen.de>
-
- * winbase.h: Throughout use LONG rather than long type to prepare for
- 64 bit.
- (InterlockedCompareExchangePointer): Define.
-
-2012-07-06 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_registry.cc (RegOpenUserClassesRoot): Only define when
- building against w32api headers.
- (RegOpenCurrentUser): Ditto.
- * fhandler_tty.cc (GetNamedPipeClientProcessId): Ditto.
- * ntdll.h (enum _PROCESSINFOCLASS): Add ProcessImageFileName.
- (RtlInitAnsiString): Declare.
- (RtlUnicodeStringToAnsiSize): Declare.
- * sched.cc (GetForegroundWindow): Ditto.
- * sec_helper.cc (SECURITY_NT_NON_UNIQUE): Define as
- SECURITY_NT_NON_UNIQUE_RID when building against w32api headers.
- (cygsid::get_sid): Use SECURITY_NT_NON_UNIQUE rather than
- SECURITY_NT_NON_UNIQUE_RID.
- (__sec_user): Use PISECURITY_DESCRIPTOR rather than PSECURITY_DESCRIPTOR
- to allow valid pointer arithmetic.
- (_recycler_sd): Ditto.
- (_everyone_sd): Ditto.
-
-2012-07-06 Corinna Vinschen <corinna@vinschen.de>
-
- * advapi32.cc (_ADVAPI32_): Drop definition.
- * kernel32.cc (_KERNEL32_): Ditto.
- * winlean.h: Add definitions required to use Mingw64 headers.
- (FILE_SHARE_VALID_FLAGS): Drop definition.
-
-2012-07-06 Corinna Vinschen <corinna@vinschen.de>
-
- * winsup.h (_WIN32_WINNT): Define. Explain why.
-
-2012-07-06 Corinna Vinschen <corinna@vinschen.de>
-
- * libc/rcmd.cc: Don't undef __INSIDE_CYGWIN_NET__.
-
-2012-07-06 Corinna Vinschen <corinna@vinschen.de>
-
- * cygwin.sc (.rdata): Include all sections starting with .rdata.
- (.debug_pubtypes): Make sure section is loaded at the end like all other
- debug sections.
-
-2012-07-04 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * dcrt0.cc (build_argv): Guard against NULL pointer dereference found
- by Clang.
-
-2012-07-04 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * exceptions.cc (setup_handler): Remove unneeded assignment found by
- Clang.
-
-2012-07-04 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * hookapi.cc (find_first_notloaded_dll): Remove unused assignment of
- importRVASize found by Clang.
-
-2012-07-04 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * fhandler_tty.cc (fhandler_pty_slave::read): Remove duplicate
- assignment to bytes_in_pipe found by Clang.
-
-2012-07-02 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * exceptions.cc (exception::handle): Use error_code in klog, as
- intended. Found by Clang.
-
-2012-07-02 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (class fhandler_dev_clipboard): Remove member eof.
- * fhandler_clipboard.cc: Throughout remove handling of eof member.
- (fhandler_dev_clipboard::write): Handle EOF condition immediately,
- rather than pushing it erroneously to the next read call. Rearrange
- code. Fix bug in CF_UNICODETEXT case which potentially dropped single
- bytes at the end of the buffer. Add comment.
- * strfuncs.cc (sys_cp_wcstombs): Allow returning non-NUL-terminated
- buffer if dst != NULL and len == (size_t) -1. Extend leading comment
- to explain what's returned in more detail.
-
-2012-07-02 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * fhandler_virtual.cc (fhandler_virtual::opendir): Eliminate duplicate
- assignment found by Clang.
-
-2012-07-02 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * fhandler_registry.cc (fhandler_registry::open): Handle missing EROFS
- error condition pointed to by Clang.
-
-2012-07-02 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * pinfo.cc (_pinfo::commune_request): Eliminate unneeded assignment
- found by Clang.
-
-2012-07-02 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * external.cc (fillout_pinfo): Return NULL rather than 0.
- (exit_process): Guard against NULL pointer dereference found by Clang.
-
-2012-07-02 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * mount.cc (mount_info::conv_to_win32_path): Eliminate unneeded
- assignment found by Clang.
-
-2012-07-02 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * path.cc (symlink_info::check): Remove unneeded/unused variable found
- by Clang.
-
-2012-07-02 Corinna Vinschen <corinna@vinschen.de>
-
- * dll_init.cc (dll_list::alloc): Take long UNC paths into account.
-
-2012-07-01 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * Makefile.in: Add some more optimization flags for cygwait, malloc and
- path. Explain why -fomit-frame-pointer doesn't work right for passwd.o
- and path.o. Add -static to link command line for cygwin0.dll.
-
- * fhandler_disk_file.cc (fhandler_disk_file::facl): Reorganize slightly
- to silence compiler warning when compiling with -fstack-check.
- * net.cc (inet_ntop6): Initialize structure members to silence compiler
- warning when compiling with -fstack-check.
-
- * pseudo-reloc.cc (_pei386_runtime_relocator): Make this a C function.
- Detect NULL u.
- * winsup.h (_pei386_runtime_relocator): Declare this as extern "C".
- * lib/_cygwin_crt0_common.cc (_pei386_runtime_relocator): Call with
- NULL argument.
-
- * signal.cc (sigaction_worker): Eliminate last argument. Let callers
- report their own strace info. Regparmize.
- (sigaction): Reflect sigaction_worker changes.
- (siginterrupt): Ditto.
-
- * exceptions.cc: Update copyright.
-
-2012-07-01 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * path.cc: Perform some whitespace fixups throughout.
-
-2012-06-28 Corinna Vinschen <corinna@vinschen.de>
-
- * kernel32.cc (_KERNEL32_): Define. Explain why.
- (CreateFileMappingW): Drop undocumented flProtect flags.
-
-2012-06-28 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_serial.cc: Fix includes for IOCTL codes to support Mingw64.
- * fhandler_tape.cc: Ditto.
- * flock.cc (allow_others_to_sync): Use PISECURITY_DESCRIPTOR since
- PSECURITY_DESCRIPTOR is supposed to be the opaque type.
- * ntdll.h: Remove CreateDisposition flags again, now that they are
- defined in Mingw64's ntdef.h. Ditto for Create/Open flags.
-
-2012-06-28 Corinna Vinschen <corinna@vinschen.de>
-
- * exceptions.cc (RtlUnwind): Align declaration with MSDN.
- * ntdll.h: Define CreateDisposition Flags. Add comments.
- * winlean.h: Define FILE_SHARE_VALID_FLAGS if using Mingw64 headers.
-
-2012-06-27 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * cygwait.h (cancelable_wait): Make extern to avoid always including.
- * select.cc (allocfd_set): Try to make a little more efficient.
- (cygwin_select): Break into two functions to avoid what seems to be a
- strange compiler problem with alloca and sel constructor.
- (select): New function. Always honor return from call_signal_handler.
- (select_stuff::wait): Always honor return from call_signal_handler.
- * select.h (select_stuff::select_stuff): Use NULL to initialize
- pointers rather than 0.
-
-2012-06-27 Corinna Vinschen <corinna@vinschen.de>
-
- * exceptions.cc (exception::handle): Cast exception code to NTSTATUS
- for comparison.
- * ntdll.h: Drop defining NT status codes in favor of including
- ntstatus.h.
-
-2012-06-27 Corinna Vinschen <corinna@vinschen.de>
-
- * miscfuncs.cc (WritePipeOverlapped): Define second parameter LPCVOID,
- rather than PCVOID.
- * miscfuncs.h (WritePipeOverlapped): Ditto.
-
-2012-06-27 Corinna Vinschen <corinna@vinschen.de>
-
- * advapi32.cc (_ADVAPI32_): Define. Explain why.
- (ImpersonateNamedPipeClient): Add missing WINAPI.
- * ntdll.h (STATUS_INVALID_PARAMETER): Only define if it isn't already.
- (STATUS_DLL_NOT_FOUND): Ditto.
- (STATUS_ENTRYPOINT_NOT_FOUND): Ditto.
- (enum _EVENT_TYPE): Guard against redefinition since it's already
- defined in Mingw64's ntdef.h.
- (enum _TIMER_TYPE): Ditto.
- (enum _SECTION_INHERIT): Define if using Mingw64 headers since it's
- missing in Mingw64's ntdef.h.
- * winlean.h (__STRALIGN_H_): Define before including windows.h.
-
-2012-06-26 Corinna Vinschen <corinna@vinschen.de>
-
- * winsup.h (GetLastError): Drop redundant definition.
-
-2012-06-25 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * cygwait.cc (cancelable_wait): Make sure that timer is cancelled
- before cancelling thread.
-
-2012-06-25 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * cygwait.h (cancelable_wait): Need to force time to negative to
- indicate relative time.
-
-2012-06-21 Corinna Vinschen <corinna@vinschen.de>
-
- * path.cc (realpath): Fix comment.
-
-2012-06-21 Corinna Vinschen <corinna@vinschen.de>
-
- * path.cc (realpath): Call mount_info::conv_to_posix_path rather than
- mount_info::cygdrive_posix_path to convert DOS paths to POSIX paths.
- Add comment to explain why that's necessary at all.
-
-2012-06-18 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * cygwait.h (LARGE_NULL): Define.
- (cancelable_wait): Define variant which accepts DWORD time argument.
- (cygwait): Use cancelable_wait with DWORD argument.
- (cygwait): Use cancelable_wait with DWORD argument and cw_sig_eintr for
- timeout-only case.
- * exceptions.cc (handle_sigsuspend): Use LARGE_NULL as second argument
- to distinguish between cancelable_wait variants.
- * thread.cc (pthread_mutex::lock): Ditto.
- (pthread::join): Ditto.
- (semaphore::_timedwait): Ditto.
- * thread.h (fast_mutex::lock): Ditto.
- * wait.cc (wait4): Ditto.
-
-2012-06-18 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * cygwait.cc (cancelable_wait): Mimic old cygwait behavior more closely
- wrt handling of call_signal_handler.
- * cygwait.h (WAIT_CANCELED): Move here and redefine.
- (WAIT_SIGNALED): Ditto.
- * thread.h (WAIT_CANCELED): Delete.
- (WAIT_SIGNALED): Ditto.
-
-2012-06-18 Corinna Vinschen <corinna@vinschen.de>
-
- * cygheap.cc (init_cygheap::init_installation_root): Rearrange code
- creating valid native NT installation_root path. Only strip last
- backslash from path if the result is a valid NT path. Explain why.
-
-2012-06-17 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- Add '#include "cygwait.h"' throughout, where appropriate.
- * DevNotes: Add entry cgf-000012.
- * Makefile.in (DLL_OFILES): Add cygwait.o.
- * sigproc.h: Remove cygwait definitions.
- * cygwait.h: New file. Define/declare Cygwin waitfor functions.
- * cygwait.cc: Ditto.
- * exceptions.cc: Include cygwait.h.
- (handle_sigsuspend): Accommodate change in cancelable_wait arguments.
- (sigpacket::process): Display thread tls in debugging output.
- * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Use symbolic
- names for signal and cancel return.
- * fhandler_console.cc (fhandler_console::read): Ditto.
- (fhandler_dev_dsp::Audio_out::waitforspace): Ditto.
- fhandler_dev_dsp::Audio_in::waitfordata): Ditto.
- * fhandler_fifo.cc (fhandler_fifo::wait): Ditto.
- * fhandler_serial.cc (fhandler_serial::raw_read): Ditto.
- * fhandler_tty.cc (fhandler_pty_slave::read): Ditto.
- * select.cc (cygwin_select): Ditto.
- * wait.cc (wait4): Ditto.
- * thread.cc (cancelable_wait): Move definition to cygwait.h.
- (pthread_cond::wait): Accommodate change in cancelable_wait arguments.
- (pthread_mutex::lock): Ditto.
- (pthread_spinlock::lock): Ditto.
- (pthread::join): Ditto.
- (pthread::thread_init_wrapper): Display tls in debugging output.
- (semaphore::_timedwait): Ditto.
- * thread.h (cw_sig_wait): Move to cygwait.h.
- (cw_cancel_action): Delete.
- (cancelable_wait): Move declaration to cygwait.h.
-
-2012-06-11 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
-
- * regex/regcomp.c (p_ere): Allow vertical-line following
- left-parenthesis in ERE, as in glibc.
-
-2012-06-10 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
-
- * include/sys/elf_common.h (R_386_16): Define.
- (R_386_PC16): Define.
- (R_386_8): Define.
- (R_386_PC8): Define.
-
-2012-06-09 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * select.cc (cygwin_select): Remove select_timeout test.
- (select_stuff::wait): Return select_set_zero on timeout.
- (thread_socket): Report timeout when debugging.
-
-2012-06-05 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
-
- * include/elf.h: Update from FreeBSD.
- * include/machine/elf.h: New header, from FreeBSD.
- * include/sys/elf.h: Ditto.
- * include/sys/elf32.h: Update from FreeBSD.
- * include/sys/elf64.h: Ditto.
- * include/sys/elf_common.h: Ditto.
- (R_IA64_*): Define Linux-style names as aliases to R_IA_64_*.
- (R_SH_*): Define, based on sh-4 psABI.
- (R_390_*): Define, based on s390x psABI.
- * include/sys/elf_generic.h: Ditto.
-
-2012-06-04 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (fhandler_disk_file::link ): Translate
- STATUS_NOT_SUPPORTED to EPERM as well.
-
-2012-06-03 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * dtable.cc (dtable::dup3): Only return with lock set when O_EXCL flag
- is passed in.
- * syscalls.cc (dup_finish): Pass O_EXCL in flags to dtable::dup3.
-
-2012-06-03 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * DevNotes: Add entry cgf-000011.
- * fhandler.h (fhandler_base::refcnt): Delete.
- (fhandler_base::inc_refcnt): New function.
- (fhandler_base::dec_refcnt): New function.
- * cygheap.h (cygheap_fdnew::~cygheap_fdnew): Accommodate split of
- refcnt to inc_refcnt/dec_refcnt.
- (cygheap_fdget::cygheap_fdget): Ditto.
- (cygheap_fdget::~cygheap_fdget::cygheap_fdget): Ditto.
- * dtable.cc (dtable::release): Ditto.
- (cygwin_attach_handle_to_fd): Ditto.
- (dtable::init_std_file_from_handle): Ditto.
- (dtable::dup3): On success, return with fdtab locked.
- * dtable.h (dtable): Add dup_finish as a friend.
- * syscalls.cc (dup_finish): Define new function. Increment refcnt
- while fdtab is locked.
- (dup2): Use common dup_finish() to perform dup operation.
- (dup3): Ditto.
-
-2012-06-03 Corinna Vinschen <corinna@vinschen.de>
-
- * globals.cc (ro_u_refs): New R/O unicode string.
- * mount.cc (fs_info::update): Recognize ReFS.
- * mount.h (enum fs_info_type): Add refs.
- (class fs_info): Add refs flag and accessor methods.
- * ntdll.h (RtlAddAccessAllowedAceEx): Declare.
- (RtlAddAccessDeniedAceEx): Declare.
- * path.h (path_conv::fs_is_refs): Define.
- * sec_helper.cc (_recycler_sd): New function to create security
- descriptors suitable for the recycler bin starting with Vista.
- * security.cc (add_access_allowed_ace): Use RtlAddAccessAllowedAceEx
- and drop code to set AceFlags explicitely.
- (add_access_denied_ace): Use RtlAddAccessDeniedAceEx and drop code to
- set AceFlags explicitely.
- * security.h (_recycler_sd): Declare.
- (recycler_sd): Define.
- * syscalls.cc (desktop_ini): Change formatting.
- (desktop_ini_ext): Define third line of recycler desktop.ini file
- since Vista,
- (try_to_bin): Handle ReFS just like NTFS. Write Vista and later
- Recycler in all uppercase, just like shell32 does when recreating it.
- Fix comments to include ReFS. Don't implicitely reuse object
- attributes from earlier NtOpenFile call, rather recreate it for safety.
- Use recycler_sd call when creating security descriptor for Recycler
- dirs and files on Vista and later. Write third line of desktop.ini
- when on Vista and later.
-
-2012-06-03 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * winbase.h: Add missing copyright date.
-
-2012-06-03 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * select.cc (cygwin_select): Make sure that we only return -1 as an
- error return.
- (select_stuff::wait): Semi-revert to previous method for filling out
- w4.
-
-2012-06-02 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * select.cc (cygwin_select): Add some comments.
- (select_stuff::wait): Ditto.
-
-2012-06-02 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * DevNotes: Add entry cgf-000010.
- * select.cc (set_handle_or_return_if_not_open): Remove unneeded final
- backslash from definition.
- (cygwin_select): Reorganize to incorporate outer retry loop. Move
- remaining time recalculation here for retry case. Use
- select_stuff::wait_states for loop control.
- (select_stuff::cleanup): Avoid unneeded initialization.
- (select_stuff::wait): Modify definition to return
- select_stuff::wait_states. Eliminate is_cancelable. Don't inspect
- element 1 of an array if it is a cancel handle. Remove loop. Rely on
- being called from enclosing loop in cygwin_select. Remove time
- recalculation when restarting. Try harder to always return from the
- bottom.
- * select.h (select_stuff::wait_state): New enum.
- (select_stuff::wait): Modify declaration to return
- select_stuff::wait_states.
-
-2012-06-02 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * exceptions.cc (setup_handler): Make debugging output a little more
- verbose.
-
-2012-06-02 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * cygtls.h (_cygtls::protect_linked_list): Delete unused field.
-
-2012-05-30 Corinna Vinschen <corinna@vinschen.de>
-
- * hookapi.cc (find_first_notloaded_dll): Extend comment. Fix usage of
- mapped memory. Shorten static library name buffer to MAX_PATH. Use
- strlcpy to copy library name to buffer. Only Unmap "map" if it has been
- Mapped before.
- * pinfo.cc (status_exit): Drop unneeded declaration of
- find_first_notloaded_dll in favor of the declaration in winsup.h.
-
-2012-05-30 Corinna Vinschen <corinna@vinschen.de>
-
- * thread.cc: Remove temporary newlib workaround, now that newlib
- handles thread cancellation by itself.
- (class __cygwin_lock_handler): Remove.
- (__cygwin_lock_cleanup): Remove.
- (__cygwin_lock_lock): Revert newlib workaround,
- (__cygwin_lock_trylock): Ditto.
- (__cygwin_lock_unlock): Ditto.
- (pthread::pop_cleanup_handler): Ditto.
-
-2012-05-29 Corinna Vinschen <corinna@vinschen.de>
-
- * select.cc (select_stuff::wait): Temporarily disable restarting
- entirely.
-
-2012-05-29 Corinna Vinschen <corinna@vinschen.de>
-
- * security.h (cygsidlist::+=): Correctly copy well_known_sid info from
- source cygsid.
-
-2012-05-25 Corinna Vinschen <corinna@vinschen.de>
-
- * registry.cc (reg_key::build_reg): Fix typo in debug output.
-
-2012-05-25 Corinna Vinschen <corinna@vinschen.de>
-
- * select.cc (select_stuff::wait): When not returning after receiving
- a signal, recalculate timeout. Apply temporary fix to avoid crashes
- after calling the signal handler. Explain.
-
-2012-05-25 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_serial.cc (fhandler_serial::raw_read): Check for
- ERROR_OPERATION_ABORTED rather than ERROR_IO_INCOMPLETE after CancelIo.
-
-2012-05-25 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_serial.cc (fhandler_serial::raw_read): Just call ReadFile
- directly in case of non-blocking I/O and handle result gracefully.
-
-2012-05-24 Corinna Vinschen <corinna@vinschen.de>
-
- * thread.cc (__cygwin_lock_lock): Replace null thread check with test
- for cygwin_finished_initializing to handle process startup.
- (__cygwin_lock_trylock): Ditto.
- (__cygwin_lock_unlock): Ditto.
-
-2012-05-23 Corinna Vinschen <corinna@vinschen.de>
-
- * thread.cc (__cygwin_lock_lock): Take null thread at process startup
- into account.
- (__cygwin_lock_trylock): Ditto.
- (__cygwin_lock_unlock): Ditto.
-
-2012-05-23 Corinna Vinschen <corinna@vinschen.de>
-
- * thread.cc (pthread::cancel): Re-allow asynchronous cancellation from
- Cygwin code since it looks like the problem is Windows only.
-
-2012-05-23 Corinna Vinschen <corinna@vinschen.de>
-
- * thread.cc: Add a temporary workaround to help Cygwin along while
- newlib doesn't install cleanup handlers. Explain the problem.
- (class __cygwin_lock_handler): New class.
- (__cygwin_lock_cleanup): New function.
- (__cygwin_lock_lock): Push __cygwin_lock_cleanup thread cleanup
- handler.
- (__cygwin_lock_trylock): Ditto.
- (__cygwin_lock_unlock): Pop thread cleanup handler.
- (pthread::pop_cleanup_handler): Temporarily allow cleanup function to
- destroy cleanup handler so we can pop in another function than we
- pushed in.
-
-2012-05-23 Corinna Vinschen <corinna@vinschen.de>
-
- * thread.cc (pthread::cancel): Only allow asynchronous cancellation
- if the thread is not executing Cygwin or Windows code. Explain why.
-
-2012-05-23 Corinna Vinschen <corinna@vinschen.de>
-
- * thread.cc (pthread::precreate): Make sure mutex is recursive.
- Explain why.
-
-2012-05-23 Corinna Vinschen <corinna@vinschen.de>
-
- * thread.cc (pthread::pop_cleanup_handler): Move setting the cancelstate
- to PTHREAD_CANCEL_DISABLE from here...
- (pthread::pop_all_cleanup_handlers): ...to here, otherwise any explicit
- call to pthread_cleanup_pop disables cancellation for this thread.
-
-2012-05-23 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler.h (refcnt): Add i interlocked. Explain why.
- * winbase.h (ilockadd): New function.
- (InterlockedAdd): Define as ilockadd.
-
-2012-05-22 Corinna Vinschen <corinna@vinschen.de>
-
- * devices.in: Fix native name of /dev/kmem.
- * devices.cc: Regenerate.
- * dtable.cc (fh_alloc): Don't forget FH_KMEM.
- * fhandler_mem.cc (fhandler_dev_mem::open): Set errno to EACCES rather
- than ENOENT on systems not granting access to physical memory from
- user space.
-
-2012-05-22 Corinna Vinschen <corinna@vinschen.de>
-
- * thread.cc (pthread::cancel): Set thread's cancel_event in
- PTHREAD_CANCEL_ASYNCHRONOUS case, too. Explain why.
-
-2012-05-21 Corinna Vinschen <corinna@vinschen.de>
-
- * strace.cc (strace::activate): Move printing heap size from here...
- * heap.cc (heap_init_info): ...to here. Explain why. Print heap
- size in hex and decimal.
-
-2012-05-21 Corinna Vinschen <corinna@vinschen.de>
-
- * net.cc (cygwin_recvfrom): Don't shortcircuit if len == 0. Add comment
- to explain why.
- (cygwin_recv): Ditto.
- (cygwin_recvmsg): Ditto.
-
-2012-05-21 Corinna Vinschen <corinna@vinschen.de>
-
- * fhandler_disk_file.cc (path_conv::isgood_inode): Rearrange, take
- Samba versions >= 3.5.4 into account, add comments.
-
-2012-05-16 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * DevNotes: Add entry cgf-000009.
- * smallprint.cc (__small_vsprintf): Always treat '%c' and '%C' as
- characters. Don't decode them if they are > 127.
- (__small_vswprintf): Ditto.
-
-2012-05-15 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * DevNotes: Add entry cgf-000008.
- * fhandler_tty.cc (bytes_available): Simplify by returning the number
- of bytes available in the message unless that is zero.
-
-2012-05-14 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * child_info.h (CURR_CHILD_INFO_MAGIC): Update.
-
-2012-05-14 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * DevNotes: Add entry cgf-000007.
- * child_info.h (child_info_spawn::parent_winpid): Declare new field.
- (child_info_spawn::get_parent_handle): Declare new function.
- * dcrt0.cc (child_info_spawn::get_parent_handle): Define new function.
- (child_info_spawn::handle_spawn): Recreate parent handle if possible
- when dynamically loaded. Don't mess with parent handle if it's NULL.
- * spawn.cc (child_info_spawn::worker): Set parent_winpid appropriately.
-
-2012-05-12 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * DevNotes: Add entry cgf-000006.
- * thread.cc (pthread::pop_cleanup_handler): Set cancel state to
- disabled to avoid recursively waiting for cancel.
-
-2012-05-12 Christopher Faylor <me.cygwin2012@cgf.cx>
-
- * DevNotes: Add entry cgf-000005.
- * fhandler.h (PIPE_ADD_PID): Redefine to something we actually DON'T
- use.
- * pipe.cc (fhandler_pipe::create): Avoid clearing all open_mode bits
- when checking for PIPE_ADD_PID. Properly keep track of len so that
- passed in name is not overwritten.
-
-2012-05-10 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
-
- * cygwin.din (memrchr): Export.
- * posix.sgml (std-gnu): Add memrchr.
- * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
-
-2012-05-10 Corinna Vinschen <corinna@vinschen.de>
-
- * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 16.
-
2012-05-08 Christopher Faylor <me.cygwin2012@cgf.cx>
* DevNotes: Add entry cgf-000004.
diff --git a/winsup/cygwin/DevNotes b/winsup/cygwin/DevNotes
index 68d8320cd..11a01df57 100644
--- a/winsup/cygwin/DevNotes
+++ b/winsup/cygwin/DevNotes
@@ -1,231 +1,3 @@
-2012-08-09 cgf-000014
-
-So, apparently I got it somewhat right before wrt signal handling.
-Checking on linux, it appears that signals will be sent to a thread
-which can accept the signal. So resurrecting and extending the
-"find_tls" function is in order. This function will return the tls
-of any thread which 1) is waiting for a signal with sigwait*() or
-2) has the signal unmasked.
-
-In redoing this it became obvious that I had the class designation wrong
-for the threadlist handling so I moved the manipulation of the global
-threadlist into the cygheap where it logically belongs.
-
-2012-07-21 cgf-000013
-
-These changes reflect a revamp of the "wait for signal" functionality
-which has existed in Cygwin through several signal massages.
-
-We now create a signal event only when a thread is waiting for a signal
-and arm it only for that thread. The "set_signal_arrived" function is
-used to establish the event and set it in a location referencable by
-the caller.
-
-I still do not handle all of the race conditions. What happens when
-a signal comes in just after a WF?O succeeds for some other purpose? I
-suspect that it will arm the next WF?O call and the subsequent call to
-call_signal_handler could cause a function to get an EINTR when possibly
-it shouldn't have.
-
-I haven't yet checked all of the test cases for the URL listed in the
-previous entry.
-
-Baby steps.
-
-2012-06-12 cgf-000012
-
-These changes are the preliminary for redoing the way threads wait for
-signals. The problems are shown by the test case mentioned here:
-
-http://cygwin.com/ml/cygwin/2012-05/msg00434.html
-
-I've known that the signal handling in threads wasn't quite right for
-some time. I lost all of my thread signal tests in the great "rm -r"
-debacle of a few years ago and have been less than enthusiastic about
-redoing everything (I had PCTS tests and everything). But it really is
-time to redo this signal handling to make it more like it is supposed to
-be.
-
-This change should not introduce any new behavior. Things should
-continue to behave as before. The major differences are a change in the
-arguments to cancelable_wait and cygwait now uses cancelable_wait and,
-so, the returns from cygwait now mirror cancelable_wait.
-
-The next change will consolidate cygwait and cancelable_wait into one
-cygwait function.
-
-2012-06-02 cgf-000011
-
-The refcnt handling was tricky to get right but I had convinced myself
-that the refcnt's were always incremented/decremented under a lock.
-Corinna's 2012-05-23 change to refcnt exposed a potential problem with
-dup handling where the fdtab could be updated while not locked.
-
-That should be fixed by this change but, on closer examination, it seems
-like there are many places where it is possible for the refcnt to be
-updated while the fdtab is not locked since the default for
-cygheap_fdget is to not lock the fdtab (and that should be the default -
-you can't have read holding a lock).
-
-Since refcnt was only ever called with 1 or -1, I broke it up into two
-functions but kept the Interlocked* operation. Incrementing a variable
-should not be as racy as adding an arbitrary number to it but we have
-InterlockedIncrement/InterlockedDecrement for a reason so I kept the
-Interlocked operation here.
-
-In the meantime, I'll be mulling over whether the refcnt operations are
-actually safe as they are. Maybe just ensuring that they are atomically
-updated is enough since they control the destruction of an fh. If I got
-the ordering right with incrementing and decrementing then that should
-be adequate.
-
-2012-06-02 cgf-000010
-
-<1.7.16>
-- Fix emacs problem which exposed an issue with Cygwin's select() function.
- If a signal arrives while select is blocking and the program longjmps
- out of the signal handler then threads and memory may be left hanging.
- Fixes: http://cygwin.com/ml/cygwin/2012-05/threads.html#00275
-</1.7.16>
-
-This was try #4 or #5 to get select() signal handling working right.
-It's still not there but it should now at least not leak memory or
-threads.
-
-I mucked with the interface between cygwin_select and select_stuff::wait
-so that the "new" loop in select_stuff::wait() was essentially moved
-into the caller. cygwin_select now uses various enum states to decide
-what to do. It builds the select linked list at the beginning of the
-loop, allowing wait() to tear everything down and restart. This is
-necessary before calling a signal handler because the signal handler may
-longjmp away.
-
-I initially had this all coded up to use a special signal_cleanup
-callback which could be called when a longjmp is called in a signal
-handler. And cygwin_select() set up and tore down this callback. Once
-I got everything compiling it, of course, dawned on me that just because
-you call a longjmp in a signal handler it doesn't mean that you are
-jumping *out* of the signal handler. So, if the signal handler invokes
-the callback and returns it will be very bad for select(). Hence, this
-slower, but hopefully more correct implementation.
-
-(I still wonder if some sort of signal cleanup callback might still
-be useful in the future)
-
-TODO: I need to do an audit of other places where this problem could be
-occurring.
-
-As alluded to above, select's signal handling is still not right. It
-still acts as if it could call a signal handler from something other
-than the main thread but, AFAICT, from my STC, this doesn't seem to be
-the case. It might be worthwhile to extend cygwait to just magically
-figure this out and not even bother using w4[0] for scenarios like this.
-
-2012-05-16 cgf-000009
-
-<1.7.16>
-- Fix broken console mouse handling. Reported here:
- http://cygwin.com/ml/cygwin/2012-05/msg00360.html
-</1.7.16>
-
-I did a cvs annotate on smallprint.cc and see that the code to translate
-%characters > 127 to 0x notation was in the 1.1 revision. Then I
-checked the smallprint.c predecessor. It was in the 1.1 version of that
-program too, which means that this odd change has probably been around
-since <= 2000.
-
-Since __small_sprintf is supposed to emulate sprintf, I got rid of the
-special case handling. This may affect fhandler_socket::bind. If so, we
-should work around this problem there rather than keeping this strange
-hack in __small_printf.
-
-2012-05-14 cgf-000008
-
-<1.7.16>
-- Fix hang when zero bytes are written to a pty using
- Windows WriteFile or equivalent. Fixes:
- http://cygwin.com/ml/cygwin/2012-05/msg00323.html
-</1.7.16>
-
-cgf-000002, as usual, fixed one thing while breaking another. See
-Larry's predicament in: http://goo.gl/oGEr2 .
-
-The problem is that zero byte writes to the pty pipe caused the dread
-end-of-the-world-as-we-know-it problem reported on the mailing list
-where ReadFile reads zero bytes even though there is still more to read
-on the pipe. This is because that change caused a 'record' to be read
-and a record can be zero bytes.
-
-I was never really keen about using a throwaway buffer just to get a
-count of the number of characters available to be read in the pty pipe.
-On closer reading of the documentation for PeekNamedPipe it seemed like
-the sixth argument to PeekNamedPipe should return what I needed without
-using a buffer. And, amazingly, it did, except that the problem still
-remained - a zero byte message still screwed things up.
-
-So, we now detect the case where there is zero bytes available as a
-message but there are bytes available in the pipe. In that scenario,
-return the bytes available in the pipe rather than the message length of
-zero. This could conceivably cause problems with pty pipe handling in
-this scenario but since the only way this scenario could possibly happen
-is when someone is writing zero bytes using WriteFile to a pty pipe, I'm
-ok with that.
-
-2012-05-14 cgf-000007
-
-<1.7.16>
-- Fix invocation of strace from a cygwin process. Fixes:
- http://cygwin.com/ml/cygwin/2012-05/msg00292.html
-</1.7.16>
-
-The change in cgf-000004 introduced a problem for processes which load
-cygwin1.dll dynamically. strace.exe is the most prominent example of
-this.
-
-Since the parent handle is now closed for "non-Cygwin" processes, when
-strace.exe tried to dynamically load cygwin1.dll, the handle was invalid
-and child_info_spawn::handle_spawn couldn't use retrieve information
-from the parent. This eventually led to a strace_printf error due to an
-attempt to dereference an unavailable cygheap. Probably have to fix
-this someday. You shouldn't use the cygheap while attempting to print
-an error about the inavailability of said cygheap.
-
-This was fixed by saving the parent pid in child_info_spawn and calling
-OpenProcess for the parent pid and using that handle iff a process is
-dynamically loaded.
-
-2012-05-12 cgf-000006
-
-<1.7.16>
-- Fix hang when calling pthread_testcancel in a canceled thread.
- Fixes some of: http://cygwin.com/ml/cygwin/2012-05/msg00186.html
-</1.7.16>
-
-This should fix the first part of the reported problem in the above
-message. The cancel seemed to actually be working but, the fprintf
-eventually ended up calling pthread_testcancel. Since we'd gotten here
-via a cancel, it tried to recursively call the cancel handler causing a
-recursive loop.
-
-2012-05-12 cgf-000005
-
-<1.7.16>
-- Fix pipe creation problem which manifested as a problem creating a
-fifo. Fixes: http://cygwin.com/ml/cygwin/2012-05/msg00253.html
-</1.7.16>
-
-My change on 2012-04-28 introduced a problem with fifos. The passed
-in name was overwritten. This was because I wasn't properly keeping
-track of the length of the generated pipe name when there was a
-name passed in to fhandler_pipe::create.
-
-There was also another problem in fhandler_pipe::create. Since fifos
-use PIPE_ACCESS_DUPLEX and PIPE_ACCESS_DUPLEX is an or'ing of
-PIPE_ACCESS_INBOUND and PIPE_ACCESS_OUTBOUND, using PIPE_ACCESS_OUTBOUND
-as a "never-used" option for PIPE_ADD_PID in fhandler.h was wrong. So,
-fifo creation attempted to add the pid of a pipe to the name which is
-wrong for fifos.
-
2012-05-08 cgf-000004
The change for cgf-000003 introduced a new problem:
diff --git a/winsup/cygwin/Makefile.in b/winsup/cygwin/Makefile.in
index 6e4282843..e65b44031 100644
--- a/winsup/cygwin/Makefile.in
+++ b/winsup/cygwin/Makefile.in
@@ -133,16 +133,16 @@ MALLOC_OFILES:=@MALLOC_OFILES@
DLL_IMPORTS:=$(w32api_lib)/libkernel32.a $(w32api_lib)/libntdll.a
MT_SAFE_OBJECTS:=
+# Please maintain this list in sorted order, with maximum files per 86 col line
#
DLL_OFILES:=advapi32.o assert.o autoload.o bsdlib.o ctype.o cxx.o cygheap.o \
- cygthread.o cygtls.o cygwait.o cygxdr.o dcrt0.o debug.o devices.o \
- dir.o dlfcn.o dll_init.o dtable.o environ.o errno.o exceptions.o \
- exec.o external.o fcntl.o fenv.o fhandler.o fhandler_clipboard.o \
- fhandler_console.o fhandler_dev.o fhandler_disk_file.o fhandler_dsp.o \
- fhandler_fifo.o fhandler_floppy.o fhandler_mailslot.o fhandler_mem.o \
- fhandler_netdrive.o fhandler_nodevice.o fhandler_proc.o \
- fhandler_process.o fhandler_procnet.o fhandler_procsys.o \
- fhandler_procsysvipc.o fhandler_random.o fhandler_raw.o \
+ cygthread.o cygtls.o cygxdr.o dcrt0.o debug.o devices.o dir.o dlfcn.o \
+ dll_init.o dtable.o environ.o errno.o exceptions.o exec.o external.o \
+ fcntl.o fenv.o fhandler.o fhandler_clipboard.o fhandler_console.o \
+ fhandler_dev.o fhandler_disk_file.o fhandler_dsp.o fhandler_fifo.o \
+ fhandler_floppy.o fhandler_mailslot.o fhandler_mem.o fhandler_netdrive.o \
+ fhandler_nodevice.o fhandler_proc.o fhandler_process.o fhandler_procnet.o \
+ fhandler_procsys.o fhandler_procsysvipc.o fhandler_random.o fhandler_raw.o \
fhandler_registry.o fhandler_serial.o fhandler_socket.o fhandler_tape.o \
fhandler_termios.o fhandler_tty.o fhandler_virtual.o fhandler_windows.o \
fhandler_zero.o flock.o fnmatch.o fork.o fts.o ftw.o getopt.o glob.o \
@@ -237,7 +237,6 @@ ifneq "${filter -O%,$(CFLAGS)}" ""
cygheap_CFLAGS:=-fomit-frame-pointer
cygthread_CFLAGS:=-fomit-frame-pointer
cygtls_CFLAGS:=-fomit-frame-pointer
-cygwait_CFLAGS=-fomit-frame-pointer
delqueue_CFLAGS:=-fomit-frame-pointer
devices_CFLAGS:=-fomit-frame-pointer -Os
dir_CFLAGS:=-fomit-frame-pointer
@@ -271,12 +270,11 @@ fhandler_zero_CFLAGS:=-fomit-frame-pointer
flock_CFLAGS:=-fomit-frame-pointer
grp_CFLAGS:=-fomit-frame-pointer
libstdcxx_wrapper_CFLAGS:=-fomit-frame-pointer
-malloc_CFLAGS:=-fomit-frame-pointer -O3
+malloc_CFLAGS:=-fomit-frame-pointer
malloc_wrapper_CFLAGS:=-fomit-frame-pointer
miscfuncs_CFLAGS:=-fomit-frame-pointer
net_CFLAGS:=-fomit-frame-pointer
passwd_CFLAGS:=-fomit-frame-pointer
-path_CFLAGS=-fomit-frame-pointer
regcomp_CFLAGS=-fomit-frame-pointer
regerror_CFLAGS=-fomit-frame-pointer
regexec_CFLAGS=-fomit-frame-pointer
@@ -396,7 +394,7 @@ maintainer-clean realclean: clean
# Rule to build cygwin.dll
$(TEST_DLL_NAME): $(LDSCRIPT) dllfixdbg $(DLL_OFILES) $(DLL_IMPORTS) $(LIBSERVER) $(LIBC) $(LIBM) $(API_VER) Makefile winver_stamp
- $(CXX) $(CXXFLAGS) -Wl,--gc-sections $(nostdlib) -Wl,-T$(firstword $^) -static \
+ $(CXX) $(CXXFLAGS) -Wl,--gc-sections $(nostdlib) -Wl,-T$(firstword $^) \
-Wl,--heap=0 -Wl,--out-implib,cygdll.a -shared -o $@ \
-e $(DLL_ENTRY) $(DEF_FILE) $(DLL_OFILES) version.o winver.o \
$(MALLOC_OBJ) $(LIBSERVER) $(LIBM) $(LIBC) \
diff --git a/winsup/cygwin/advapi32.cc b/winsup/cygwin/advapi32.cc
index efc7c3873..47913a031 100644
--- a/winsup/cygwin/advapi32.cc
+++ b/winsup/cygwin/advapi32.cc
@@ -1,6 +1,6 @@
/* advapi32.cc: Win32 replacement functions.
- Copyright 2011, 2012 Red Hat, Inc.
+ Copyright 2011 Red Hat, Inc.
This file is part of Cygwin.
@@ -12,6 +12,7 @@ details. */
#include <winioctl.h>
#include "shared_info.h"
#include "ntdll.h"
+#include <wchar.h>
#define DEFAULT_NTSTATUS_TO_BOOL_RETURN \
if (!NT_SUCCESS (status)) \
@@ -88,7 +89,7 @@ ImpersonateLoggedOnUser (HANDLE tok)
DEFAULT_NTSTATUS_TO_BOOL_RETURN
}
-BOOL WINAPI
+BOOL
ImpersonateNamedPipeClient (HANDLE pipe)
{
IO_STATUS_BLOCK io;
diff --git a/winsup/cygwin/child_info.h b/winsup/cygwin/child_info.h
index eac40c247..36a22539c 100644
--- a/winsup/cygwin/child_info.h
+++ b/winsup/cygwin/child_info.h
@@ -35,7 +35,7 @@ enum child_status
#define EXEC_MAGIC_SIZE sizeof(child_info)
/* Change this value if you get a message indicating that it is out-of-sync. */
-#define CURR_CHILD_INFO_MAGIC 0xf1378eabU
+#define CURR_CHILD_INFO_MAGIC 0xca644850U
#define NPROCS 256
@@ -66,7 +66,6 @@ public:
HANDLE subproc_ready; // used for synchronization with parent
HANDLE user_h;
HANDLE parent;
- DWORD parent_winpid;
DWORD cygheap_reserve_sz;
unsigned fhandler_union_cb;
DWORD exit_code; // process exit code
@@ -176,7 +175,6 @@ public:
lock->release ();
return !!hExeced;
}
- bool get_parent_handle ();
bool has_execed_cygwin () const { return iscygwin () && has_execed (); }
operator HANDLE& () {return hExeced;}
int worker (const char *, const char *const *, const char *const [], int,
diff --git a/winsup/cygwin/cygheap.cc b/winsup/cygwin/cygheap.cc
index 639f4e662..bc96a5533 100644
--- a/winsup/cygwin/cygheap.cc
+++ b/winsup/cygwin/cygheap.cc
@@ -47,23 +47,6 @@ struct cygheap_entry
char data[0];
};
-class tls_sentry
-{
-public:
- static muto lock;
- int destroy;
- void init ();
- bool acquired () {return lock.acquired ();}
- tls_sentry () {destroy = 0;}
- tls_sentry (DWORD wait) {destroy = lock.acquire (wait);}
- ~tls_sentry () {if (destroy) lock.release ();}
-};
-
-muto NO_COPY tls_sentry::lock;
-static NO_COPY size_t nthreads;
-
-#define THREADLIST_CHUNK 256
-
#define NBUCKETS (sizeof (cygheap->buckets) / sizeof (cygheap->buckets[0]))
#define N0 ((_cmalloc_entry *) NULL)
#define to_cmalloc(s) ((_cmalloc_entry *) (((char *) (s)) - (unsigned) (N0->data)))
@@ -187,28 +170,18 @@ init_cygheap::init_installation_root ()
"GetModuleFileNameW(%p, %p, %u), %E",
cygwin_hmodule, installation_root, PATH_MAX);
PWCHAR p = installation_root;
- if (wcsncasecmp (p, L"\\\\", 2)) /* Normal drive letter path */
+ if (wcsncmp (p, L"\\\\?\\", 4)) /* No long path prefix. */
{
- p = wcpcpy (p, L"\\??\\");
- GetModuleFileNameW (cygwin_hmodule, p, PATH_MAX - 4);
- }
- else
- {
- bool unc = false;
- if (wcsncmp (p + 2, L"?\\", 2)) /* No long path prefix, so UNC path. */
+ if (!wcsncasecmp (p, L"\\\\", 2)) /* UNC */
{
p = wcpcpy (p, L"\\??\\UN");
GetModuleFileNameW (cygwin_hmodule, p, PATH_MAX - 6);
*p = L'C';
- unc = true;
}
- else if (!wcsncmp (p + 4, L"UNC\\", 4)) /* Native NT UNC path. */
- unc = true;
- if (unc)
+ else
{
- p = wcschr (p + 2, L'\\'); /* Skip server name */
- if (p)
- p = wcschr (p + 1, L'\\'); /* Skip share name */
+ p = wcpcpy (p, L"\\??\\");
+ GetModuleFileNameW (cygwin_hmodule, p, PATH_MAX - 4);
}
}
installation_root[1] = L'?';
@@ -227,13 +200,7 @@ init_cygheap::init_installation_root ()
if (!w)
api_fatal ("Can't initialize Cygwin installation root dir.\n"
"Invalid DLL path");
- /* If w < p, the Cygwin DLL resides in the root dir of a drive or network
- path. In that case, if we strip off yet another backslash, the path
- becomes invalid. We avoid that here so that the DLL also works in this
- scenario. The /usr/bin and /usr/lib default mounts will probably point
- to something non-existing, but that's life. */
- if (w > p)
- *w = L'\0';
+ *w = L'\0';
for (int i = 1; i >= 0; --i)
{
@@ -273,7 +240,6 @@ cygheap_init ()
cygheap->fdtab.init ();
if (!cygheap->sigs)
sigalloc ();
- cygheap->init_tls_list ();
}
/* Copyright (C) 1997, 2000 DJ Delorie */
@@ -563,84 +529,3 @@ cygheap_user::set_name (const char *new_name)
cfree_and_set (pdomain);
cfree_and_set (pwinname);
}
-
-void
-init_cygheap::init_tls_list ()
-{
- if (threadlist)
- memset (cygheap->threadlist, 0, cygheap->sthreads * sizeof (cygheap->threadlist[0]));
- else
- {
- sthreads = THREADLIST_CHUNK;
- threadlist = (_cygtls **) ccalloc_abort (HEAP_TLS, cygheap->sthreads,
- sizeof (cygheap->threadlist[0]));
- }
- tls_sentry::lock.init ("thread_tls_sentry");
-}
-
-void
-init_cygheap::add_tls (_cygtls *t)
-{
- cygheap->user.reimpersonate ();
- tls_sentry here (INFINITE);
- if (nthreads >= cygheap->sthreads)
- {
- threadlist = (_cygtls **)
- crealloc_abort (threadlist, (sthreads += THREADLIST_CHUNK)
- * sizeof (threadlist[0]));
- // memset (threadlist + nthreads, 0, THREADLIST_CHUNK * sizeof (threadlist[0]));
- }
-
- threadlist[nthreads++] = t;
-}
-
-void
-init_cygheap::remove_tls (_cygtls *t, DWORD wait)
-{
- tls_sentry here (wait);
- if (here.acquired ())
- {
- for (size_t i = 0; i < nthreads; i++)
- if (t == threadlist[i])
- {
- if (i < --nthreads)
- threadlist[i] = threadlist[nthreads];
- debug_only_printf ("removed %p element %d", this, i);
- break;
- }
- }
-}
-
-_cygtls *
-init_cygheap::find_tls (int sig)
-{
- debug_printf ("sig %d\n", sig);
- tls_sentry here (INFINITE);
-
- static int NO_COPY threadlist_ix;
-
- _cygtls *t = _main_tls;
-
- myfault efault;
- if (efault.faulted ())
- threadlist[threadlist_ix]->remove (INFINITE);
- else
- {
- threadlist_ix = -1;
- while (++threadlist_ix < (int) nthreads)
- if (sigismember (&(threadlist[threadlist_ix]->sigwait_mask), sig))
- {
- t = cygheap->threadlist[threadlist_ix];
- goto out;
- }
- threadlist_ix = -1;
- while (++threadlist_ix < (int) nthreads)
- if (!sigismember (&(threadlist[threadlist_ix]->sigmask), sig))
- {
- t = cygheap->threadlist[threadlist_ix];
- break;
- }
- }
-out:
- return t;
-}
diff --git a/winsup/cygwin/cygheap.h b/winsup/cygwin/cygheap.h
index e03774ffd..4895019aa 100644
--- a/winsup/cygwin/cygheap.h
+++ b/winsup/cygwin/cygheap.h
@@ -396,10 +396,6 @@ struct init_cygheap: public mini_cygheap
hook_chain hooks;
void close_ctty ();
void init_installation_root ();
- void init_tls_list () __attribute__ ((regparm (1)));;
- void add_tls (_cygtls *) __attribute__ ((regparm (2)));
- void remove_tls (_cygtls *, DWORD) __attribute__ ((regparm (3)));
- _cygtls *find_tls (int) __attribute__ ((regparm (2)));
};
@@ -462,7 +458,7 @@ class cygheap_fdnew : public cygheap_fdmanip
~cygheap_fdnew ()
{
if (cygheap->fdtab[fd])
- cygheap->fdtab[fd]->inc_refcnt ();
+ cygheap->fdtab[fd]->refcnt (1);
}
void operator = (fhandler_base *fh) {cygheap->fdtab[fd] = fh;}
};
@@ -480,7 +476,7 @@ public:
this->fd = fd;
locked = lockit;
fh = cygheap->fdtab[fd];
- fh->inc_refcnt ();
+ fh->refcnt (1);
}
else
{
@@ -495,7 +491,7 @@ public:
}
~cygheap_fdget ()
{
- if (fh && fh->dec_refcnt () <= 0)
+ if (fh && fh->refcnt (-1) <= 0)
{
debug_only_printf ("deleting fh %p", fh);
delete fh;
diff --git a/winsup/cygwin/cygserver_ipc.h b/winsup/cygwin/cygserver_ipc.h
index 4dbc8212f..2f7c3531f 100644
--- a/winsup/cygwin/cygserver_ipc.h
+++ b/winsup/cygwin/cygserver_ipc.h
@@ -43,7 +43,7 @@ ipc_set_proc_info (proc &blk)
blk.gidcnt = 0;
blk.gidlist = NULL;
blk.is_admin = false;
- _my_tls.set_signal_arrived (true, blk.signal_arrived);
+ blk.signal_arrived = signal_arrived;
}
#endif /* __INSIDE_CYGWIN__ */
diff --git a/winsup/cygwin/cygthread.cc b/winsup/cygwin/cygthread.cc
index 5afc42954..4cbd3b064 100644
--- a/winsup/cygwin/cygthread.cc
+++ b/winsup/cygwin/cygthread.cc
@@ -377,7 +377,7 @@ cygthread::detach (HANDLE sigwait)
unsigned n = 2;
DWORD howlong = INFINITE;
w4[0] = sigwait;
- set_signal_arrived here (w4[1]);
+ w4[1] = signal_arrived;
/* For a description of the below loop see the end of this file */
for (int i = 0; i < 2; i++)
switch (res = WaitForMultipleObjects (n, w4, FALSE, howlong))
diff --git a/winsup/cygwin/cygtls.cc b/winsup/cygwin/cygtls.cc
index abda77c5f..9d5d4ab50 100644
--- a/winsup/cygwin/cygtls.cc
+++ b/winsup/cygwin/cygtls.cc
@@ -19,6 +19,39 @@ details. */
#include "sigproc.h"
#include "exception.h"
+class sentry
+{
+ static muto lock;
+ int destroy;
+public:
+ void init ();
+ bool acquired () {return lock.acquired ();}
+ sentry () {destroy = 0;}
+ sentry (DWORD wait) {destroy = lock.acquire (wait);}
+ ~sentry () {if (destroy) lock.release ();}
+ friend void _cygtls::init ();
+};
+
+muto NO_COPY sentry::lock;
+
+static size_t NO_COPY nthreads;
+
+#define THREADLIST_CHUNK 256
+
+void
+_cygtls::init ()
+{
+ if (cygheap->threadlist)
+ memset (cygheap->threadlist, 0, cygheap->sthreads * sizeof (cygheap->threadlist[0]));
+ else
+ {
+ cygheap->sthreads = THREADLIST_CHUNK;
+ cygheap->threadlist = (_cygtls **) ccalloc_abort (HEAP_TLS, cygheap->sthreads,
+ sizeof (cygheap->threadlist[0]));
+ }
+ sentry::lock.init ("sentry_lock");
+}
+
/* Two calls to get the stack right... */
void
_cygtls::call (DWORD (*func) (void *, void *), void *arg)
@@ -48,9 +81,7 @@ const wchar_t *well_known_dlls[] =
L"kernel32.dll",
L"mswsock.dll",
L"ntdll.dll",
- L"ole32.dll",
L"shlwapi.dll",
- L"wbemprox.dll",
L"ws2_32.dll",
};
@@ -134,7 +165,18 @@ _cygtls::init_thread (void *x, DWORD (*func) (void *, void *))
|| (void *) func == (void *) cygthread::simplestub)
return;
- cygheap->add_tls (this);
+ cygheap->user.reimpersonate ();
+
+ sentry here (INFINITE);
+ if (nthreads >= cygheap->sthreads)
+ {
+ cygheap->threadlist = (_cygtls **)
+ crealloc_abort (cygheap->threadlist, (cygheap->sthreads += THREADLIST_CHUNK)
+ * sizeof (cygheap->threadlist[0]));
+ memset (cygheap->threadlist + nthreads, 0, THREADLIST_CHUNK * sizeof (cygheap->threadlist[0]));
+ }
+
+ cygheap->threadlist[nthreads++] = this;
}
void
@@ -146,7 +188,6 @@ _cygtls::fixup_after_fork ()
sig = 0;
}
stacklock = spinning = 0;
- signal_arrived = NULL;
locals.select.sockevt = NULL;
locals.cw_timer = NULL;
wq.thread_ev = NULL;
@@ -171,13 +212,6 @@ _cygtls::remove (DWORD wait)
/* FIXME: Need some sort of atthreadexit function to allow things like
select to control this themselves. */
- if (signal_arrived)
- {
- HANDLE h = signal_arrived;
- signal_arrived = NULL;
- CloseHandle (h);
- }
-
/* Close handle and free memory used by select. */
if (locals.select.sockevt)
{
@@ -193,7 +227,22 @@ _cygtls::remove (DWORD wait)
free_local (hostent_buf);
/* Free temporary TLS path buffers. */
locals.pathbufs.destroy ();
- cygheap->remove_tls (this, wait);
+
+ do
+ {
+ sentry here (wait);
+ if (here.acquired ())
+ {
+ for (size_t i = 0; i < nthreads; i++)
+ if (this == cygheap->threadlist[i])
+ {
+ if (i < --nthreads)
+ cygheap->threadlist[i] = cygheap->threadlist[nthreads];
+ debug_printf ("removed %p element %d", this, i);
+ break;
+ }
+ }
+ } while (0);
remove_wq (wait);
}
@@ -203,6 +252,31 @@ _cygtls::push (__stack_t addr)
*stackptr++ = (__stack_t) addr;
}
+
+_cygtls *
+_cygtls::find_tls (int sig)
+{
+ static int NO_COPY threadlist_ix;
+
+ debug_printf ("signal %d\n", sig);
+ sentry here (INFINITE);
+
+ _cygtls *res = NULL;
+ threadlist_ix = -1;
+
+ myfault efault;
+ if (efault.faulted ())
+ cygheap->threadlist[threadlist_ix]->remove (INFINITE);
+
+ while (++threadlist_ix < (int) nthreads)
+ if (sigismember (&(cygheap->threadlist[threadlist_ix]->sigwait_mask), sig))
+ {
+ res = cygheap->threadlist[threadlist_ix];
+ break;
+ }
+ return res;
+}
+
void
_cygtls::set_siginfo (sigpacket *pack)
{
diff --git a/winsup/cygwin/cygtls.h b/winsup/cygwin/cygtls.h
index d683cf837..d8940ac26 100644
--- a/winsup/cygwin/cygtls.h
+++ b/winsup/cygwin/cygtls.h
@@ -1,12 +1,13 @@
/* cygtls.h
- Copyright 2003, 2004, 2005, 2008, 2009, 2010, 2011, 2012 Red Hat, Inc.
+ Copyright 2003, 2004, 2005, 2008, 2009, 2010, 2011 Red Hat, Inc.
This software is a copyrighted work licensed under the terms of the
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
details. */
-#pragma once
+#ifndef _CYGTLS_H
+#define _CYGTLS_H
#include <signal.h>
#include <pwd.h>
@@ -157,7 +158,6 @@ typedef struct struct_waitq
/*gentls_offsets*/
#include "cygerrno.h"
-#include "security.h"
extern "C" int __sjfault (jmp_buf);
extern "C" int __ljfault (jmp_buf, int);
@@ -169,29 +169,27 @@ typedef __uint32_t __stack_t;
class _cygtls
{
public:
- /* Please keep these two declarations first */
- struct _local_storage locals;
- union
- {
- struct _reent local_clib;
- char __dontuse[8 * ((sizeof(struct _reent) + 4) / 8)];
- };
- /**/
void (*func) /*gentls_offsets*/(int)/*gentls_offsets*/;
int saved_errno;
int sa_flags;
sigset_t oldmask;
sigset_t deltamask;
+ HANDLE event;
int *errno_addr;
sigset_t sigmask;
sigset_t sigwait_mask;
siginfo_t *sigwait_info;
- HANDLE signal_arrived;
- bool signal_waiting;
struct ucontext thread_context;
DWORD thread_id;
+ unsigned threadkill;
siginfo_t infodata;
struct pthread *tid;
+ union
+ {
+ struct _reent local_clib;
+ char __dontuse[8 * ((sizeof(struct _reent) + 4) / 8)];
+ };
+ struct _local_storage locals;
class cygthread *_ctinfo;
class san *andreas;
waitq wq;
@@ -204,8 +202,11 @@ public:
unsigned initialized;
/*gentls_offsets*/
+ static CRITICAL_SECTION protect_linked_list;
+ static void init ();
void init_thread (void *, DWORD (*) (void *, void *));
static void call (DWORD (*) (void *, void *), void *);
+ static struct _cygtls *find_tls (int sig);
void remove (DWORD);
void push (__stack_t) __attribute__ ((regparm (2)));
__stack_t pop () __attribute__ ((regparm (1)));
@@ -229,30 +230,14 @@ public:
operator HANDLE () const {return tid->win32_obj_id;}
#endif
void set_siginfo (struct sigpacket *) __attribute__ ((regparm (3)));
+ void set_threadkill () {threadkill = true;}
+ void reset_threadkill () {threadkill = false;}
int call_signal_handler () __attribute__ ((regparm (1)));
void remove_wq (DWORD) __attribute__ ((regparm (1)));
void fixup_after_fork () __attribute__ ((regparm (1)));
void lock () __attribute__ ((regparm (1)));
void unlock () __attribute__ ((regparm (1)));
bool locked () __attribute__ ((regparm (1)));
- void set_signal_arrived (bool setit, HANDLE& h)
- {
- if (!setit)
- signal_waiting = false;
- else
- {
- if (!signal_arrived)
- signal_arrived = CreateEvent (&sec_none_nih, false, false, NULL);
- h = signal_arrived;
- signal_waiting = true;
- }
- }
- void reset_signal_arrived ()
- {
- if (signal_arrived)
- ResetEvent (signal_arrived);
- signal_waiting = false;
- }
private:
void call2 (DWORD (*) (void *, void *), void *, void *) __attribute__ ((regparm (3)));
/*gentls_offsets*/
@@ -320,15 +305,6 @@ public:
}
};
-class set_signal_arrived
-{
-public:
- set_signal_arrived (bool setit, HANDLE& h) { _my_tls.set_signal_arrived (setit, h); }
- set_signal_arrived (HANDLE& h) { _my_tls.set_signal_arrived (true, h); }
-
- operator int () const {return _my_tls.signal_waiting;}
- ~set_signal_arrived () { _my_tls.reset_signal_arrived (); }
-};
-
#define __getreent() (&_my_tls.local_clib)
-/*gentls_offsets*/
+
+#endif /*_CYGTLS_H*/ /*gentls_offsets*/
diff --git a/winsup/cygwin/cygwait.cc b/winsup/cygwin/cygwait.cc
deleted file mode 100644
index ee7a705ef..000000000
--- a/winsup/cygwin/cygwait.cc
+++ /dev/null
@@ -1,106 +0,0 @@
-/* cygwait.h
-
- Copyright 2011, 2012 Red Hat, Inc.
-
- This file is part of Cygwin.
-
- This software is a copyrighted work licensed under the terms of the
- Cygwin license. Please consult the file "CYGWIN_LICENSE" for
- details. */
-
-#include "winsup.h"
-#include "sigproc.h"
-#include "cygwait.h"
-#include "ntdll.h"
-
-#define is_cw_cancel (mask & cw_cancel)
-#define is_cw_cancel_self (mask & cw_cancel_self)
-#define is_cw_sig (mask & cw_sig)
-#define is_cw_sig_eintr (mask & cw_sig_eintr)
-#define is_cw_sig_return (mask & cw_sig_return)
-
-#define is_cw_sig_handle (mask & (is_cw_sig | is_cw_sig_eintr))
-
-LARGE_INTEGER cw_nowait_storage;
-
-DWORD
-cancelable_wait (HANDLE object, PLARGE_INTEGER timeout, unsigned mask)
-{
- DWORD res;
- DWORD num = 0;
- HANDLE wait_objects[4];
- pthread_t thread = pthread::self ();
-
- /* Do not change the wait order.
- The object must have higher priority than the cancel event,
- because WaitForMultipleObjects will return the smallest index
- if both objects are signaled. */
- if (object)
- wait_objects[num++] = object;
-
- set_signal_arrived thread_waiting (is_cw_sig_handle, wait_objects[num]);
- debug_only_printf ("object %p, thread waiting %d, signal_arrived %p", object, (int) thread_waiting, _my_tls.signal_arrived);
- DWORD sig_n;
- if (!thread_waiting)
- sig_n = WAIT_TIMEOUT + 1;
- else
- sig_n = WAIT_OBJECT_0 + num++;
-
- DWORD cancel_n;
- if (!is_cw_cancel || !pthread::is_good_object (&thread) ||
- thread->cancelstate == PTHREAD_CANCEL_DISABLE)
- cancel_n = WAIT_TIMEOUT + 1;
- else
- {
- cancel_n = WAIT_OBJECT_0 + num++;
- wait_objects[cancel_n] = thread->cancel_event;
- }
-
- DWORD timeout_n;
- if (!timeout)
- timeout_n = WAIT_TIMEOUT + 1;
- else
- {
- timeout_n = WAIT_OBJECT_0 + num++;
- if (!_my_tls.locals.cw_timer)
- NtCreateTimer (&_my_tls.locals.cw_timer, TIMER_ALL_ACCESS, NULL,
- NotificationTimer);
- NtSetTimer (_my_tls.locals.cw_timer, timeout, NULL, NULL, FALSE, 0, NULL);
- wait_objects[timeout_n] = _my_tls.locals.cw_timer;
- }
-
- while (1)
- {
- res = WaitForMultipleObjects (num, wait_objects, FALSE, INFINITE);
- debug_only_printf ("res %d", res);
- if (res == cancel_n)
- res = WAIT_CANCELED;
- else if (res == timeout_n)
- res = WAIT_TIMEOUT;
- else if (res != sig_n)
- /* all set */;
- else if (is_cw_sig_eintr)
- res = WAIT_SIGNALED; /* caller will deal with signals */
- else if (_my_tls.call_signal_handler ())
- continue;
- break;
- }
-
- if (timeout)
- {
- TIMER_BASIC_INFORMATION tbi;
-
- NtQueryTimer (_my_tls.locals.cw_timer, TimerBasicInformation, &tbi,
- sizeof tbi, NULL);
- /* if timer expired, TimeRemaining is negative and represents the
- system uptime when signalled */
- if (timeout->QuadPart < 0LL)
- timeout->QuadPart = tbi.SignalState ? 0LL : tbi.TimeRemaining.QuadPart;
- NtCancelTimer (_my_tls.locals.cw_timer, NULL);
- }
-
- if (res == WAIT_CANCELED && is_cw_cancel_self)
- pthread::static_cancel_self ();
-
- return res;
-}
diff --git a/winsup/cygwin/cygwait.h b/winsup/cygwin/cygwait.h
deleted file mode 100644
index d52a145ae..000000000
--- a/winsup/cygwin/cygwait.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* cygwait.h
-
- Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
- Red Hat, Inc.
-
- This file is part of Cygwin.
-
- This software is a copyrighted work licensed under the terms of the
- Cygwin license. Please consult the file "CYGWIN_LICENSE" for
- details. */
-
-#pragma once
-
-#define WAIT_CANCELED (WAIT_OBJECT_0 + 2)
-#define WAIT_SIGNALED (WAIT_OBJECT_0 + 1)
-
-enum cw_wait_mask
-{
- cw_cancel = 0x0001,
- cw_cancel_self = 0x0002,
- cw_sig = 0x0004,
- cw_sig_eintr = 0x0008
-};
-
-extern LARGE_INTEGER cw_nowait_storage;
-#define cw_nowait (&cw_nowait_storage)
-#define cw_infinite ((PLARGE_INTEGER) NULL)
-
-const unsigned cw_std_mask = cw_cancel | cw_cancel_self | cw_sig;
-
-DWORD cancelable_wait (HANDLE, PLARGE_INTEGER timeout = NULL,
- unsigned = cw_std_mask)
- __attribute__ ((regparm (3)));
-
-extern inline DWORD __attribute__ ((always_inline))
-cancelable_wait (HANDLE h, DWORD howlong, unsigned mask)
-{
- LARGE_INTEGER li_howlong;
- PLARGE_INTEGER pli_howlong;
- if (howlong == INFINITE)
- pli_howlong = NULL;
- else
- {
- li_howlong.QuadPart = -(10000ULL * howlong);
- pli_howlong = &li_howlong;
- }
- return cancelable_wait (h, pli_howlong, mask);
-}
-
-static inline DWORD __attribute__ ((always_inline))
-cygwait (HANDLE h, DWORD howlong = INFINITE)
-{
- return cancelable_wait (h, howlong, cw_cancel | cw_sig);
-}
-
-static inline DWORD __attribute__ ((always_inline))
-cygwait (DWORD howlong)
-{
- return cygwait (NULL, howlong);
-}
diff --git a/winsup/cygwin/cygwin.din b/winsup/cygwin/cygwin.din
index acd043b30..22b4ea94a 100644
--- a/winsup/cygwin/cygwin.din
+++ b/winsup/cygwin/cygwin.din
@@ -738,7 +738,6 @@ _getlogin = getlogin NOSIGFE
getlogin_r NOSIGFE
getmntent SIGFE
_getmntent = getmntent SIGFE
-getmntent_r SIGFE
getmode SIGFE
_getmode = getmode SIGFE
getnameinfo = cygwin_getnameinfo SIGFE
@@ -1063,7 +1062,6 @@ memmove NOSIGFE
_memmove = memmove NOSIGFE
mempcpy NOSIGFE
__mempcpy = mempcpy NOSIGFE
-memrchr NOSIGFE
memset NOSIGFE
_memset = memset NOSIGFE
mkdir SIGFE
diff --git a/winsup/cygwin/cygwin.sc b/winsup/cygwin/cygwin.sc
index d5f79ab6c..966ea9733 100644
--- a/winsup/cygwin/cygwin.sc
+++ b/winsup/cygwin/cygwin.sc
@@ -134,5 +134,4 @@ SECTIONS
.debug_loc ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_loc) }
.debug_macinfo ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_macinfo) }
.debug_ranges ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_ranges) }
- .debug_pubtypes ALIGN(__section_alignment__) (NOLOAD) : { *(.debug_pubtypes) }
}
diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc
index 0cda2e5d5..aea2a564b 100644
--- a/winsup/cygwin/dcrt0.cc
+++ b/winsup/cygwin/dcrt0.cc
@@ -353,8 +353,7 @@ build_argv (char *cmd, char **&argv, int &argc, int winshell)
}
}
- if (argv)
- argv[argc] = NULL;
+ argv[argc] = NULL;
debug_printf ("argc %d", argc);
}
@@ -626,24 +625,13 @@ child_info_fork::handle_fork ()
api_fatal ("recreate_mmaps_after_fork_failed");
}
-bool
-child_info_spawn::get_parent_handle ()
-{
- parent = OpenProcess (PROCESS_VM_READ, false, parent_winpid);
- moreinfo->myself_pinfo = NULL;
- return !!parent;
-}
-
void
child_info_spawn::handle_spawn ()
{
extern void fixup_lockf_after_exec ();
HANDLE h;
- if (!dynamically_loaded || get_parent_handle ())
- {
- cygheap_fixup_in_child (true);
- memory_init (false);
- }
+ cygheap_fixup_in_child (true);
+ memory_init (false);
if (!moreinfo->myself_pinfo ||
!DuplicateHandle (GetCurrentProcess (), moreinfo->myself_pinfo,
GetCurrentProcess (), &h, 0,
@@ -681,7 +669,7 @@ child_info_spawn::handle_spawn ()
Otherwise, we no longer need this handle so close it.
Need to do this after debug_fixup_after_fork_exec or DEBUGGING handling of
handles might get confused. */
- if (type != _CH_EXEC && child_proc_info->parent)
+ if (type != _CH_EXEC)
{
CloseHandle (child_proc_info->parent);
child_proc_info->parent = NULL;
@@ -773,6 +761,12 @@ dll_crt0_0 ()
user_data->threadinterface->Init ();
+ _cygtls::init ();
+
+ /* Initialize events */
+ events_init ();
+ tty_list::init_session ();
+
_main_tls = &_my_tls;
/* Initialize signal processing here, early, in the hopes that the creation
@@ -837,6 +831,8 @@ dll_crt0_1 (void *)
strace.microseconds ();
#endif
+ create_signal_arrived (); /* FIXME: move into wait_sig? */
+
/* Initialize debug muto, if DLL is built with --enable-debugging.
Need to do this before any helper threads start. */
debug_init ();
diff --git a/winsup/cygwin/devices.cc b/winsup/cygwin/devices.cc
index e2a776a5b..9c8a0d03c 100644
--- a/winsup/cygwin/devices.cc
+++ b/winsup/cygwin/devices.cc
@@ -244,7 +244,7 @@ const _RDATA device dev_storage[] =
{"/dev/fd14", BRACK(FHDEV(DEV_FLOPPY_MAJOR, 14)), "\\Device\\Floppy14", exists_ntdev, S_IFBLK, true},
{"/dev/fd15", BRACK(FHDEV(DEV_FLOPPY_MAJOR, 15)), "\\Device\\Floppy15", exists_ntdev, S_IFBLK, true},
{"/dev/full", BRACK(FH_FULL), "/dev/full", exists, S_IFCHR, true},
- {"/dev/kmem", BRACK(FH_KMEM), "/dev/kmem", exists, S_IFCHR, true},
+ {"/dev/kmem", BRACK(FH_KMEM), "/dev/mem", exists, S_IFCHR, true},
{"/dev/kmsg", BRACK(FH_KMSG), "\\Device\\MailSlot\\cygwin\\dev\\kmsg", exists_ntdev, S_IFCHR, true},
{"/dev/mem", BRACK(FH_MEM), "/dev/mem", exists, S_IFCHR, true},
{"/dev/nst0", BRACK(FHDEV(DEV_TAPE_MAJOR, 128)), "\\Device\\Tape0", exists_ntdev, S_IFBLK, true},
diff --git a/winsup/cygwin/devices.in b/winsup/cygwin/devices.in
index 213226ae6..09a1f7da5 100644
--- a/winsup/cygwin/devices.in
+++ b/winsup/cygwin/devices.in
@@ -157,7 +157,7 @@ const device dev_error_storage =
"/dev/random", BRACK(FH_RANDOM), "/dev/random", exists, S_IFCHR
"/dev/urandom", BRACK(FH_URANDOM), "/dev/urandom", exists, S_IFCHR, =urandom_dev
"/dev/mem", BRACK(FH_MEM), "/dev/mem", exists, S_IFCHR
-"/dev/kmem", BRACK(FH_KMEM), "/dev/kmem", exists, S_IFCHR
+"/dev/kmem", BRACK(FH_KMEM), "/dev/mem", exists, S_IFCHR
"/dev/clipboard", BRACK(FH_CLIPBOARD), "/dev/clipboard", exists, S_IFCHR
"/dev/port", BRACK(FH_PORT), "/dev/port", exists, S_IFCHR
"/dev/com%(1-16)d", BRACK(FHDEV(DEV_SERIAL_MAJOR, {$1 - 1})), "\\??\\COM{$1}", exists_ntdev_silent, S_IFCHR
diff --git a/winsup/cygwin/dll_init.cc b/winsup/cygwin/dll_init.cc
index 420f0d8f2..3b358d5a0 100644
--- a/winsup/cygwin/dll_init.cc
+++ b/winsup/cygwin/dll_init.cc
@@ -180,14 +180,7 @@ dll_list::alloc (HINSTANCE h, per_process *p, dll_type type)
GetModuleFileNameW (h, buf, sizeof (buf));
PWCHAR name = buf;
if (!wcsncmp (name, L"\\\\?\\", 4))
- {
- name += 4;
- if (!wcsncmp (name, L"UNC\\", 4))
- {
- name += 2;
- *name = L'\\';
- }
- }
+ name += 4;
DWORD namelen = wcslen (name);
PWCHAR modname = wcsrchr (name, L'\\') + 1;
diff --git a/winsup/cygwin/dtable.cc b/winsup/cygwin/dtable.cc
index 2a9f8b078..1cd1f6b48 100644
--- a/winsup/cygwin/dtable.cc
+++ b/winsup/cygwin/dtable.cc
@@ -12,6 +12,7 @@ details. */
#define __INSIDE_CYGWIN_NET__
#include "winsup.h"
+#include <sys/socket.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
@@ -242,7 +243,7 @@ dtable::release (int fd)
{
if (fds[fd]->need_fixup_before ())
dec_need_fixup_before ();
- fds[fd]->dec_refcnt ();
+ fds[fd]->refcnt (-1);
fds[fd] = NULL;
if (fd <= 2)
set_std_handle (fd);
@@ -258,7 +259,7 @@ cygwin_attach_handle_to_fd (char *name, int fd, HANDLE handle, mode_t bin,
if (!fh)
return -1;
cygheap->fdtab[fd] = fh;
- cygheap->fdtab[fd]->inc_refcnt ();
+ cygheap->fdtab[fd]->refcnt (1);
fh->init (handle, myaccess, bin ?: fh->pc_binmode ());
return fd;
}
@@ -397,7 +398,7 @@ dtable::init_std_file_from_handle (int fd, HANDLE handle)
fh->open_setup (openflags);
fh->usecount = 0;
cygheap->fdtab[fd] = fh;
- cygheap->fdtab[fd]->inc_refcnt ();
+ cygheap->fdtab[fd]->refcnt (1);
set_std_handle (fd);
paranoid_printf ("fd %d, handle %p", fd, handle);
}
@@ -529,7 +530,6 @@ fh_alloc (path_conv& pc)
fh = cnew (fhandler_dev_random);
break;
case FH_MEM:
- case FH_KMEM:
case FH_PORT:
fh = cnew (fhandler_dev_mem);
break;
@@ -712,15 +712,6 @@ dtable::dup3 (int oldfd, int newfd, int flags)
MALLOC_CHECK;
debug_printf ("dup3 (%d, %d, %p)", oldfd, newfd, flags);
lock ();
- bool do_unlock = true;
- bool unlock_on_return;
- if (!(flags & O_EXCL))
- unlock_on_return = true; /* Relinquish lock on return */
- else
- {
- flags &= ~O_EXCL;
- unlock_on_return = false; /* Return with lock set on success */
- }
if (not_open (oldfd))
{
@@ -772,12 +763,10 @@ dtable::dup3 (int oldfd, int newfd, int flags)
if ((res = newfd) <= 2)
set_std_handle (res);
- do_unlock = unlock_on_return;
done:
MALLOC_CHECK;
- if (do_unlock)
- unlock ();
+ unlock ();
syscall_printf ("%R = dup3(%d, %d, %p)", res, oldfd, newfd, flags);
return res;
diff --git a/winsup/cygwin/dtable.h b/winsup/cygwin/dtable.h
index 7b4cd5d62..288b4767f 100644
--- a/winsup/cygwin/dtable.h
+++ b/winsup/cygwin/dtable.h
@@ -89,7 +89,6 @@ public:
void fixup_before_fork (DWORD win_proc_id);
friend void dtable_init ();
friend void __stdcall close_all_files (bool);
- friend int dup_finish (int, int, int);
friend class fhandler_disk_file;
friend class cygheap_fdmanip;
friend class cygheap_fdget;
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc
index 649574fc2..458029f35 100644
--- a/winsup/cygwin/exceptions.cc
+++ b/winsup/cygwin/exceptions.cc
@@ -1,7 +1,7 @@
/* exceptions.cc
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
- 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Red Hat, Inc.
+ 2005, 2006, 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
This file is part of Cygwin.
@@ -19,8 +19,8 @@ details. */
#include <syslog.h>
#include <wchar.h>
-#include "cygtls.h"
#include "pinfo.h"
+#include "cygtls.h"
#include "sigproc.h"
#include "shared_info.h"
#include "perprocess.h"
@@ -37,13 +37,16 @@ details. */
char debugger_command[2 * NT_MAX_PATH + 20];
-extern "C" void sigdelayed ();
+extern "C" {
+extern void sigdelayed ();
+};
static BOOL WINAPI ctrl_c_handler (DWORD);
/* This is set to indicate that we have already exited. */
static NO_COPY int exit_already = 0;
+static muto NO_COPY mask_sync;
NO_COPY static struct
{
@@ -445,7 +448,7 @@ try_to_debug (bool waitloop)
return dbg;
}
-extern "C" void WINAPI RtlUnwind (void *, void *, PEXCEPTION_RECORD, void *);
+extern "C" DWORD __stdcall RtlUnwind (void *, void *, void *, DWORD);
static void __stdcall rtl_unwind (exception_list *, PEXCEPTION_RECORD) __attribute__ ((noinline, regparm (3)));
void __stdcall
rtl_unwind (exception_list *frame, PEXCEPTION_RECORD e)
@@ -660,7 +663,7 @@ exception::handle (EXCEPTION_RECORD *e, exception_list *frame, CONTEXT *in, void
stackdump ((DWORD) ebp, in, e);
}
- if ((NTSTATUS) e->ExceptionCode == STATUS_ACCESS_VIOLATION)
+ if (e->ExceptionCode == STATUS_ACCESS_VIOLATION)
{
int error_code = 0;
if (si.si_code == SEGV_ACCERR) /* Address present */
@@ -672,7 +675,8 @@ exception::handle (EXCEPTION_RECORD *e, exception_list *frame, CONTEXT *in, void
klog (LOG_INFO, "%s[%d]: segfault at %08x rip %08x rsp %08x error %d",
__progname, myself->pid,
e->ExceptionInformation[1], in->Eip, in->Esp,
- error_code);
+ ((in->Eip >= 0x61000000 && in->Eip < 0x61200000)
+ ? 0 : 4) | (e->ExceptionInformation[0] << 1));
}
/* Flag signal + core dump */
@@ -706,11 +710,11 @@ handle_sigsuspend (sigset_t tempmask)
{
sigset_t oldmask = _my_tls.sigmask; // Remember for restoration
- set_signal_mask (_my_tls.sigmask, tempmask);
+ set_signal_mask (tempmask, _my_tls.sigmask);
sigproc_printf ("oldmask %p, newmask %p", oldmask, tempmask);
pthread_testcancel ();
- cancelable_wait (NULL, cw_infinite, cw_cancel | cw_cancel_self | cw_sig_eintr);
+ cancelable_wait (signal_arrived);
set_sig_errno (EINTR); // Per POSIX
@@ -733,29 +737,31 @@ sig_handle_tty_stop (int sig)
/* Silently ignore attempts to suspend if there is no accommodating
cygwin parent to deal with this behavior. */
if (!myself->cygstarted)
- myself->process_state &= ~PID_STOPPED;
- else
{
- myself->stopsig = sig;
- myself->alert_parent (sig);
- sigproc_printf ("process %d stopped by signal %d", myself->pid, sig);
- /* FIXME! This does nothing to suspend anything other than the main
- thread. */
- DWORD res = cancelable_wait (NULL, cw_infinite, cw_sig_eintr);
- switch (res)
- {
- case WAIT_SIGNALED:
- myself->stopsig = SIGCONT;
- myself->alert_parent (SIGCONT);
- break;
- default:
- api_fatal ("WaitSingleObject returned %d", res);
- break;
- }
+ myself->process_state &= ~PID_STOPPED;
+ return;
+ }
+
+ myself->stopsig = sig;
+ myself->alert_parent (sig);
+ sigproc_printf ("process %d stopped by signal %d", myself->pid, sig);
+ HANDLE w4[2];
+ w4[0] = sigCONT;
+ w4[1] = signal_arrived;
+ switch (WaitForMultipleObjects (2, w4, TRUE, INFINITE))
+ {
+ case WAIT_OBJECT_0:
+ case WAIT_OBJECT_0 + 1:
+ myself->stopsig = SIGCONT;
+ myself->alert_parent (SIGCONT);
+ break;
+ default:
+ api_fatal ("WaitSingleObject failed, %E");
+ break;
}
_my_tls.incyg = 0;
}
-} /* end extern "C" */
+}
bool
_cygtls::interrupt_now (CONTEXT *cx, int sig, void *handler,
@@ -798,11 +804,20 @@ _cygtls::interrupt_setup (int sig, void *handler, struct sigaction& siga)
this->sig = sig; // Should always be last thing set to avoid a race
- if (incyg && signal_arrived)
- SetEvent (signal_arrived);
+ if (!event)
+ threadkill = false;
+ else
+ {
+ HANDLE h = event;
+ event = NULL;
+ SetEvent (h);
+ }
+ /* Clear any waiting threads prior to dispatching to handler function */
+ int res = SetEvent (signal_arrived); // For an EINTR case
proc_subproc (PROC_CLEARWAIT, 1);
- sigproc_printf ("armed signal_arrived %p, signal %d", signal_arrived, sig);
+ sigproc_printf ("armed signal_arrived %p, signal %d, res %d", signal_arrived,
+ sig, res);
}
extern "C" void __stdcall
@@ -850,7 +865,7 @@ setup_handler (int sig, void *handler, struct sigaction& siga, _cygtls *tls)
If the thread is already suspended (which can occur when a program
has called SuspendThread on itself) then just queue the signal. */
- sigproc_printf ("suspending thread, tls %p, _main_tls %p", tls, _main_tls);
+ sigproc_printf ("suspending thread");
res = SuspendThread (hth);
/* Just set pending if thread is already suspended */
if (res)
@@ -865,7 +880,7 @@ setup_handler (int sig, void *handler, struct sigaction& siga, _cygtls *tls)
interrupted = tls->interrupt_now (&cx, sig, handler, siga);
tls->unlock ();
- ResumeThread (hth);
+ res = ResumeThread (hth);
if (interrupted)
goto out;
@@ -1006,7 +1021,7 @@ ctrl_c_handler (DWORD type)
extern "C" void __stdcall
set_process_mask (sigset_t newmask)
{
- set_signal_mask (_my_tls.sigmask, newmask);
+ set_signal_mask (newmask, _my_tls.sigmask);
}
extern "C" int
@@ -1019,9 +1034,11 @@ sighold (int sig)
syscall_printf ("signal %d out of range", sig);
return -1;
}
+ mask_sync.acquire (INFINITE);
sigset_t mask = _my_tls.sigmask;
sigaddset (&mask, sig);
- set_signal_mask (_my_tls.sigmask, mask);
+ set_signal_mask (mask, _my_tls.sigmask);
+ mask_sync.release ();
return 0;
}
@@ -1035,9 +1052,11 @@ sigrelse (int sig)
syscall_printf ("signal %d out of range", sig);
return -1;
}
+ mask_sync.acquire (INFINITE);
sigset_t mask = _my_tls.sigmask;
sigdelset (&mask, sig);
- set_signal_mask (_my_tls.sigmask, mask);
+ set_signal_mask (mask, _my_tls.sigmask);
+ mask_sync.release ();
return 0;
}
@@ -1055,6 +1074,7 @@ sigset (int sig, _sig_func_ptr func)
return (_sig_func_ptr) SIG_ERR;
}
+ mask_sync.acquire (INFINITE);
sigset_t mask = _my_tls.sigmask;
/* If sig was in the signal mask return SIG_HOLD, otherwise return the
previous disposition. */
@@ -1073,7 +1093,8 @@ sigset (int sig, _sig_func_ptr func)
signal (sig, func);
sigdelset (&mask, sig);
}
- set_signal_mask (_my_tls.sigmask, mask);
+ set_signal_mask (mask, _my_tls.sigmask);
+ mask_sync.release ();
return prev;
}
@@ -1084,10 +1105,11 @@ sigignore (int sig)
}
/* Update the signal mask for this process and return the old mask.
- Called from call_signal_handler */
+ Called from sigdelayed */
extern "C" sigset_t
set_process_mask_delta ()
{
+ mask_sync.acquire (INFINITE);
sigset_t newmask, oldmask;
if (_my_tls.deltamask & SIG_NONMASKABLE)
@@ -1098,35 +1120,41 @@ set_process_mask_delta ()
sigproc_printf ("oldmask %p, newmask %p, deltamask %p", oldmask, newmask,
_my_tls.deltamask);
_my_tls.sigmask = newmask;
+ mask_sync.release ();
return oldmask;
}
/* Set the signal mask for this process.
Note that some signals are unmaskable, as in UNIX. */
-
-void
-set_signal_mask (sigset_t& setmask, sigset_t newmask)
+extern "C" void __stdcall
+set_signal_mask (sigset_t newmask, sigset_t& oldmask)
{
+#ifdef CGF
+ if (&_my_tls == _sig_tls)
+ small_printf ("********* waiting in signal thread\n");
+#endif
+ mask_sync.acquire (INFINITE);
newmask &= ~SIG_NONMASKABLE;
- sigset_t mask_bits = setmask & ~newmask;
- sigproc_printf ("setmask %p, newmask %p, mask_bits %p", setmask, newmask,
+ sigset_t mask_bits = oldmask & ~newmask;
+ sigproc_printf ("oldmask %p, newmask %p, mask_bits %p", oldmask, newmask,
mask_bits);
- setmask = newmask;
+ oldmask = newmask;
if (mask_bits)
sig_dispatch_pending (true);
+ mask_sync.release ();
}
int __stdcall
sigpacket::process ()
{
- bool continue_now;
+ DWORD continue_now;
struct sigaction dummy = global_sigs[SIGSTOP];
if (si.si_signo != SIGCONT)
continue_now = false;
else
{
- continue_now = ISSTATE (myself, PID_STOPPED);
+ continue_now = myself->process_state & PID_STOPPED;
myself->stopsig = 0;
myself->process_state &= ~PID_STOPPED;
/* Clear pending stop signals */
@@ -1156,23 +1184,16 @@ sigpacket::process ()
myself->rusage_self.ru_nsignals++;
- void *handler = (void *) thissig.sa_handler;
- if (handler == SIG_IGN)
- {
- sigproc_printf ("signal %d ignored", si.si_signo);
- goto done;
- }
-
- if (have_execed)
+ bool masked;
+ void *handler;
+ if (!have_execed || (void *) thissig.sa_handler == (void *) SIG_IGN)
+ handler = (void *) thissig.sa_handler;
+ else if (tls)
+ return 1;
+ else
handler = NULL;
- if (tls)
- sigproc_printf ("using tls %p", tls);
- else
- {
- tls = cygheap->find_tls (si.si_signo);
- sigproc_printf ("using tls %p", tls);
- }
+ _cygtls *use_tls = tls ?: _main_tls;
if (si.si_signo == SIGKILL)
goto exit_sig;
@@ -1182,12 +1203,30 @@ sigpacket::process ()
goto stop;
}
- if (sigismember (&tls->sigwait_mask, si.si_signo))
+ bool insigwait_mask;
+ if ((masked = ISSTATE (myself, PID_STOPPED)))
+ insigwait_mask = false;
+ else if (tls)
+ insigwait_mask = sigismember (&tls->sigwait_mask, si.si_signo);
+ else if (!(tls = _cygtls::find_tls (si.si_signo)))
+ insigwait_mask = false;
+ else
{
- tls->sigwait_mask = 0;
- goto dosig;
+ use_tls = tls;
+ insigwait_mask = true;
}
- if (sigismember (&tls->sigmask, si.si_signo) || ISSTATE (myself, PID_STOPPED))
+
+ if (insigwait_mask)
+ goto thread_specific;
+
+ if (masked)
+ /* nothing to do */;
+ else if (sigismember (mask, si.si_signo))
+ masked = true;
+ else if (tls)
+ masked = sigismember (&tls->sigmask, si.si_signo);
+
+ if (masked)
{
sigproc_printf ("signal %d blocked", si.si_signo);
rc = -1;
@@ -1200,10 +1239,14 @@ sigpacket::process ()
if (handler == (void *) SIG_DFL)
{
+ if (insigwait_mask)
+ goto thread_specific;
if (si.si_signo == SIGCHLD || si.si_signo == SIGIO || si.si_signo == SIGCONT || si.si_signo == SIGWINCH
|| si.si_signo == SIGURG)
{
- sigproc_printf ("signal %d default is currently ignore", si.si_signo);
+ sigproc_printf ("default signal %d ignored", si.si_signo);
+ if (continue_now)
+ SetEvent (signal_arrived);
goto done;
}
@@ -1213,35 +1256,53 @@ sigpacket::process ()
goto exit_sig;
}
+ if (handler == (void *) SIG_IGN)
+ {
+ sigproc_printf ("signal %d ignored", si.si_signo);
+ goto done;
+ }
+
if (handler == (void *) SIG_ERR)
goto exit_sig;
+ use_tls->set_siginfo (this);
goto dosig;
stop:
+ /* Eat multiple attempts to STOP */
+ if (ISSTATE (myself, PID_STOPPED))
+ goto done;
handler = (void *) sig_handle_tty_stop;
thissig = dummy;
dosig:
- if (ISSTATE (myself, PID_STOPPED) && !continue_now)
- rc = -1; /* No signals delivered if stopped */
- else
- {
- tls->set_siginfo (this);
- /* Dispatch to the appropriate function. */
- sigproc_printf ("signal %d, signal handler %p", si.si_signo, handler);
- rc = setup_handler (si.si_signo, handler, thissig, tls);
- continue_now = false;
- }
+ /* Dispatch to the appropriate function. */
+ sigproc_printf ("signal %d, about to call %p", si.si_signo, handler);
+ rc = setup_handler (si.si_signo, handler, thissig, use_tls);
done:
+ tls = use_tls;
if (continue_now)
- SetEvent (tls->signal_arrived);
+ SetEvent (sigCONT);
sigproc_printf ("returning %d", rc);
return rc;
+thread_specific:
+ use_tls->sig = si.si_signo;
+ use_tls->set_siginfo (this);
+ use_tls->func = NULL;
+ sigproc_printf ("releasing sigwait for thread");
+ SetEvent (use_tls->event);
+ goto done;
+
exit_sig:
- tls->signal_exit (si.si_signo); /* never returns */
+ use_tls->signal_exit (si.si_signo); /* never returns */
+}
+
+void
+events_init ()
+{
+ mask_sync.init ("mask_sync");
}
void
@@ -1257,16 +1318,26 @@ _cygtls::call_signal_handler ()
while (1)
{
lock ();
- if (!sig)
+ if (sig)
+ pop ();
+ else if (this != _main_tls)
{
- unlock ();
- break;
- }
+ _main_tls->lock ();
+ if (_main_tls->sig && _main_tls->incyg)
+ {
+ paranoid_printf ("Redirecting to main_tls signal %d", _main_tls->sig);
+ sig = _main_tls->sig;
+ sa_flags = _main_tls->sa_flags;
+ func = _main_tls->func;
+ infodata = _main_tls->infodata;
+ _main_tls->pop ();
+ _main_tls->sig = 0;
- /* Pop the stack if the next "return address" is sigdelayed, since
- this function is doing what sigdelayed would have done anyway. */
- if (retaddr () == (__stack_t) sigdelayed)
- pop ();
+ }
+ _main_tls->unlock ();
+ }
+ if (!sig)
+ break;
debug_only_printf ("dealing with signal %d", sig);
this_sa_flags = sa_flags;
@@ -1276,12 +1347,12 @@ _cygtls::call_signal_handler ()
sigset_t this_oldmask = set_process_mask_delta ();
int this_errno = saved_errno;
sig = 0;
- reset_signal_arrived ();
unlock (); // make sure synchronized
if (!(this_sa_flags & SA_SIGINFO))
{
+ void (*sigfunc) (int) = thisfunc;
incyg = false;
- thisfunc (thissig);
+ sigfunc (thissig);
}
else
{
@@ -1292,11 +1363,12 @@ _cygtls::call_signal_handler ()
sigact (thissig, &thissi, NULL);
}
incyg = true;
- set_signal_mask (_my_tls.sigmask, this_oldmask);
+ set_signal_mask (this_oldmask, _my_tls.sigmask);
if (this_errno >= 0)
set_errno (this_errno);
}
+ unlock ();
return this_sa_flags & SA_RESTART || (this != _main_tls);
}
diff --git a/winsup/cygwin/external.cc b/winsup/cygwin/external.cc
index 22636aa53..cd86966b8 100644
--- a/winsup/cygwin/external.cc
+++ b/winsup/cygwin/external.cc
@@ -108,7 +108,7 @@ fillout_pinfo (pid_t pid, int winpid)
{
i = 0;
pids.reset ();
- return NULL;
+ return 0;
}
return &ep;
}
@@ -186,12 +186,10 @@ static void
exit_process (UINT status, bool useTerminateProcess)
{
pid_t pid = getpid ();
- external_pinfo *ep = fillout_pinfo (pid, 1);
+ external_pinfo * ep = fillout_pinfo (pid, 1);
DWORD dwpid = ep ? ep->dwProcessId : pid;
pinfo p (pid, PID_MAP_RW);
- if (ep)
- pid = ep->pid;
- if ((dwpid == GetCurrentProcessId()) && (p->pid == pid))
+ if ((dwpid == GetCurrentProcessId()) && (p->pid == ep->pid))
p.set_exit_code ((DWORD)status);
if (useTerminateProcess)
TerminateProcess (GetCurrentProcess(), status);
diff --git a/winsup/cygwin/fhandler.cc b/winsup/cygwin/fhandler.cc
index 55a73b66e..a22fe2496 100644
--- a/winsup/cygwin/fhandler.cc
+++ b/winsup/cygwin/fhandler.cc
@@ -31,7 +31,6 @@ details. */
#include "sigproc.h"
#include "shared_info.h"
#include <asm/socket.h>
-#include "cygwait.h"
#define MAX_OVERLAPPED_WRITE_LEN (64 * 1024 * 1024)
#define MIN_OVERLAPPED_WRITE_LEN (1 * 1024 * 1024)
@@ -1940,7 +1939,7 @@ fhandler_base_overlapped::wait_overlapped (bool inres, bool writing, DWORD *byte
case WAIT_OBJECT_0:
err = ERROR_INVALID_HANDLE;
break;
- case WAIT_SIGNALED:
+ case WAIT_OBJECT_0 + 1:
err = ERROR_INVALID_AT_INTERRUPT_TIME;
break;
default:
diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h
index 39e1e7573..2a639cda8 100644
--- a/winsup/cygwin/fhandler.h
+++ b/winsup/cygwin/fhandler.h
@@ -38,7 +38,7 @@ details. */
/* Used for fhandler_pipe::create. Use an available flag which will
never be used in Cygwin for this function. */
-#define PIPE_ADD_PID FILE_FLAG_FIRST_PIPE_INSTANCE
+#define PIPE_ADD_PID PIPE_ACCESS_OUTBOUND
extern const char *windows_device_names[];
extern struct __cygwin_perfile *perfile_table;
@@ -182,8 +182,11 @@ class fhandler_base
HANDLE read_state;
public:
- long inc_refcnt () {return InterlockedIncrement (&_refcnt);}
- long dec_refcnt () {return InterlockedDecrement (&_refcnt);}
+ long refcnt(long i = 0)
+ {
+ debug_only_printf ("%p, %s, i %d, refcnt %ld", this, get_name (), i, _refcnt + i);
+ return _refcnt += i;
+ }
class fhandler_base *archetype;
int usecount;
@@ -558,7 +561,7 @@ class fhandler_socket: public fhandler_base
int open (int flags, mode_t mode = 0);
void __stdcall read (void *ptr, size_t& len) __attribute__ ((regparm (3)));
ssize_t __stdcall readv (const struct iovec *, int iovcnt, ssize_t tot = -1);
- inline ssize_t recv_internal (struct _WSAMSG *wsamsg, bool use_recvmsg) __attribute__ ((regparm (3)));
+ inline ssize_t recv_internal (struct _WSAMSG *wsamsg);
ssize_t recvfrom (void *ptr, size_t len, int flags,
struct sockaddr *from, int *fromlen);
ssize_t recvmsg (struct msghdr *msg, int flags);
@@ -1721,6 +1724,7 @@ class fhandler_dev_clipboard: public fhandler_base
_off64_t pos;
void *membuffer;
size_t msize;
+ bool eof;
public:
fhandler_dev_clipboard ();
int is_windows () { return 1; }
diff --git a/winsup/cygwin/fhandler_clipboard.cc b/winsup/cygwin/fhandler_clipboard.cc
index 86f126c24..203af58bb 100644
--- a/winsup/cygwin/fhandler_clipboard.cc
+++ b/winsup/cygwin/fhandler_clipboard.cc
@@ -41,7 +41,8 @@ typedef struct
} cygcb_t;
fhandler_dev_clipboard::fhandler_dev_clipboard ()
- : fhandler_base (), pos (0), membuffer (NULL), msize (0)
+ : fhandler_base (), pos (0), membuffer (NULL), msize (0),
+ eof (true)
{
/* FIXME: check for errors and loop until we can open the clipboard */
OpenClipboard (NULL);
@@ -68,6 +69,7 @@ int
fhandler_dev_clipboard::open (int flags, mode_t)
{
set_flags (flags | O_TEXT);
+ eof = false;
pos = 0;
if (membuffer)
free (membuffer);
@@ -156,28 +158,38 @@ set_clipboard (const void *buf, size_t len)
ssize_t __stdcall
fhandler_dev_clipboard::write (const void *buf, size_t len)
{
- /* write to our membuffer */
- size_t cursize = msize;
- void *tempbuffer = realloc (membuffer, cursize + len);
- if (!tempbuffer)
+ if (!eof)
{
- debug_printf ("Couldn't realloc() clipboard buffer for write");
- return -1;
- }
- membuffer = tempbuffer;
- msize = cursize + len;
- memcpy ((unsigned char *) membuffer + cursize, buf, len);
+ /* write to our membuffer */
+ size_t cursize = msize;
+ void *tempbuffer = realloc (membuffer, cursize + len);
+ if (!tempbuffer)
+ {
+ debug_printf ("Couldn't realloc() clipboard buffer for write");
+ return -1;
+ }
+ membuffer = tempbuffer;
+ msize = cursize + len;
+ memcpy ((unsigned char *) membuffer + cursize, buf, len);
- /* now pass to windows */
- if (set_clipboard (membuffer, msize))
+ /* now pass to windows */
+ if (set_clipboard (membuffer, msize))
+ {
+ /* FIXME: membuffer is now out of sync with pos, but msize
+ is used above */
+ return -1;
+ }
+
+ pos = msize;
+
+ eof = false;
+ return len;
+ }
+ else
{
- /* FIXME: membuffer is now out of sync with pos, but msize
- is used above */
- return -1;
+ /* FIXME: return 0 bytes written, file not open */
+ return 0;
}
-
- pos = msize;
- return len;
}
int __stdcall
@@ -218,65 +230,66 @@ void __stdcall
fhandler_dev_clipboard::read (void *ptr, size_t& len)
{
HGLOBAL hglb;
- size_t ret = 0;
+ size_t ret;
UINT formatlist[2];
int format;
- LPVOID cb_data;
+ size_t plen = len;
+ len = 0;
+ if (eof)
+ return;
if (!OpenClipboard (NULL))
+ return;
+ formatlist[0] = cygnativeformat;
+ formatlist[1] = CF_UNICODETEXT;
+ if ((format = GetPriorityClipboardFormat (formatlist, 2)) <= 0)
{
- len = 0;
+ CloseClipboard ();
return;
}
- formatlist[0] = cygnativeformat;
- formatlist[1] = CF_UNICODETEXT;
- if ((format = GetPriorityClipboardFormat (formatlist, 2)) <= 0
- || !(hglb = GetClipboardData (format))
- || !(cb_data = GlobalLock (hglb)))
+ if (!(hglb = GetClipboardData (format)))
{
CloseClipboard ();
- len = 0;
return;
}
if (format == cygnativeformat)
{
- cygcb_t *clipbuf = (cygcb_t *) cb_data;
+ cygcb_t *clipbuf;
- if (pos < clipbuf->len)
- {
- ret = ((len > (clipbuf->len - pos)) ? (clipbuf->len - pos) : len);
- memcpy (ptr, clipbuf->data + pos , ret);
- pos += ret;
+ if (!(clipbuf = (cygcb_t *) GlobalLock (hglb)))
+ {
+ CloseClipboard ();
+ return;
}
+ ret = ((plen > (clipbuf->len - pos)) ? (clipbuf->len - pos) : plen);
+ memcpy (ptr, clipbuf->data + pos , ret);
+ pos += ret;
+ if (pos + plen - ret >= clipbuf->len)
+ eof = true;
}
else
{
- wchar_t *buf = (wchar_t *) cb_data;
+ int wret;
+ PWCHAR buf;
- size_t glen = GlobalSize (hglb) / sizeof (WCHAR) - 1;
- if (pos < glen)
+ if (!(buf = (PWCHAR) GlobalLock (hglb)))
{
- /* Comparing apples and oranges here, but the below loop could become
- extremly slow otherwise. We rather return a few bytes less than
- possible instead of being even more slow than usual... */
- if (glen > pos + len)
- glen = pos + len;
- /* This loop is necessary because the number of bytes returned by
- sys_wcstombs does not indicate the number of wide chars used for
- it, so we could potentially drop wide chars. */
- while ((ret = sys_wcstombs (NULL, 0, buf + pos, glen - pos))
- != (size_t) -1
- && ret > len)
- --glen;
- if (ret == (size_t) -1)
- ret = 0;
- else
- {
- ret = sys_wcstombs ((char *) ptr, (size_t) -1,
- buf + pos, glen - pos);
- pos = glen;
- }
+ CloseClipboard ();
+ return;
}
+ size_t glen = GlobalSize (hglb) / sizeof (WCHAR) - 1;
+ /* This loop is necessary because the number of bytes returned by
+ sys_wcstombs does not indicate the number of wide chars used for
+ it, so we could potentially drop wide chars. */
+ if (glen - pos > plen)
+ glen = pos + plen;
+ while ((wret = sys_wcstombs (NULL, 0, buf + pos, glen - pos)) != -1
+ && (size_t) wret > plen)
+ --glen;
+ ret = sys_wcstombs ((char *) ptr, plen, buf + pos, glen - pos);
+ pos += ret;
+ if (pos + plen - ret >= wcslen (buf))
+ eof = true;
}
GlobalUnlock (hglb);
CloseClipboard ();
@@ -303,6 +316,7 @@ fhandler_dev_clipboard::close ()
{
if (!have_execed)
{
+ eof = true;
pos = 0;
if (membuffer)
{
@@ -319,6 +333,7 @@ fhandler_dev_clipboard::fixup_after_exec ()
{
if (!close_on_exec ())
{
+ eof = false;
pos = msize = 0;
membuffer = NULL;
}
diff --git a/winsup/cygwin/fhandler_console.cc b/winsup/cygwin/fhandler_console.cc
index 0dcd1262b..e54f11f2a 100644
--- a/winsup/cygwin/fhandler_console.cc
+++ b/winsup/cygwin/fhandler_console.cc
@@ -36,7 +36,6 @@ details. */
#include <asm/socket.h>
#include "sync.h"
#include "child_info.h"
-#include "cygwait.h"
/* Don't make this bigger than NT_MAX_PATH as long as the temporary buffer
is allocated using tmp_pathbuf!!! */
@@ -356,9 +355,9 @@ fhandler_console::read (void *pv, size_t& buflen)
{
case WAIT_OBJECT_0:
break;
- case WAIT_SIGNALED:
+ case WAIT_OBJECT_0 + 1:
goto sig_exit;
- case WAIT_CANCELED:
+ case WAIT_OBJECT_0 + 2:
process_state.pop ();
pthread::static_cancel_self ();
/*NOTREACHED*/
@@ -2012,7 +2011,8 @@ fhandler_console::write (const void *vsrc, size_t len)
while (src < end)
{
- paranoid_printf ("char %0c state is %d", *src, dev_state.state_);
+ debug_printf ("at %d(%c) state is %d", *src, isprint (*src) ? *src : ' ',
+ dev_state.state_);
switch (dev_state.state_)
{
case normal:
diff --git a/winsup/cygwin/fhandler_disk_file.cc b/winsup/cygwin/fhandler_disk_file.cc
index 8ed8a8155..734d0accf 100644
--- a/winsup/cygwin/fhandler_disk_file.cc
+++ b/winsup/cygwin/fhandler_disk_file.cc
@@ -154,26 +154,11 @@ public:
inline bool
path_conv::isgood_inode (__ino64_t ino) const
{
- /* If the FS doesn't support nonambiguous inode numbers anyway, bail out
- immediately. */
- if (!hasgood_inode ())
- return false;
- /* If the inode numbers are 64 bit numbers or if it's a local FS, they
- are to be trusted. */
- if (ino > UINT32_MAX || !isremote ())
- return true;
- /* The inode numbers returned from a remote NT4 NTFS are ephemeral
- 32 bit numbers. */
- if (fs_is_ntfs ())
- return false;
- /* Starting with version 3.5.4, Samba returns the real inode numbers, if
- the file is on the same device as the root of the share (Samba function
- get_FileIndex). 32 bit inode numbers returned by older versions (likely
- < 3.0) are ephemeral. */
- if (fs_is_samba () && fs.samba_version () < 0x03050400)
- return false;
- /* Otherwise, trust the inode numbers unless proved otherwise. */
- return true;
+ /* We can't trust remote inode numbers of only 32 bit. That means,
+ remote NT4 NTFS, as well as shares of Samba version < 3.0.
+ The known exception are SFU NFS shares, which return the valid 32 bit
+ inode number from the remote file system unchanged. */
+ return hasgood_inode () && (ino > UINT32_MAX || !isremote () || fs_is_nfs ());
}
/* Check reparse point for type. IO_REPARSE_TAG_MOUNT_POINT types are
@@ -984,6 +969,7 @@ fhandler_disk_file::facl (int cmd, int nentries, __aclent32_t *aclbufp)
cant_access_acl:
switch (cmd)
{
+ struct __stat64 st;
case SETACL:
/* Open for writing required to be able to set ctime
@@ -999,7 +985,6 @@ cant_access_acl:
set_errno (ENOSPC);
else
{
- struct __stat64 st;
if (!fstat (&st))
{
aclbufp[0].a_type = USER_OBJ;
@@ -1283,8 +1268,7 @@ fhandler_disk_file::link (const char *newpath)
status = NtSetInformationFile (fh, &io, pfli, size, FileLinkInformation);
if (!NT_SUCCESS (status))
{
- if (status == STATUS_INVALID_DEVICE_REQUEST
- || status == STATUS_NOT_SUPPORTED)
+ if (status == STATUS_INVALID_DEVICE_REQUEST)
{
/* FS doesn't support hard links. Linux returns EPERM. */
set_errno (EPERM);
diff --git a/winsup/cygwin/fhandler_dsp.cc b/winsup/cygwin/fhandler_dsp.cc
index b16606615..1cb3b465e 100644
--- a/winsup/cygwin/fhandler_dsp.cc
+++ b/winsup/cygwin/fhandler_dsp.cc
@@ -21,7 +21,6 @@ details. */
#include "dtable.h"
#include "cygheap.h"
#include "sigproc.h"
-#include "cygwait.h"
/*------------------------------------------------------------------------
Simple encapsulation of the win32 audio device.
@@ -545,14 +544,14 @@ fhandler_dev_dsp::Audio_out::waitforspace ()
debug_printf ("100ms");
switch (cygwait (100))
{
- case WAIT_SIGNALED:
+ case WAIT_OBJECT_0:
if (!_my_tls.call_signal_handler ())
{
set_errno (EINTR);
return false;
}
break;
- case WAIT_CANCELED:
+ case WAIT_OBJECT_0 + 1:
pthread::static_cancel_self ();
/*NOTREACHED*/
default:
@@ -923,14 +922,14 @@ fhandler_dev_dsp::Audio_in::waitfordata ()
debug_printf ("100ms");
switch (cygwait (100))
{
- case WAIT_SIGNALED:
+ case WAIT_OBJECT_0:
if (!_my_tls.call_signal_handler ())
{
set_errno (EINTR);
return false;
}
break;
- case WAIT_CANCELED:
+ case WAIT_OBJECT_0 + 1:
pthread::static_cancel_self ();
/*NOTREACHED*/
default:
diff --git a/winsup/cygwin/fhandler_fifo.cc b/winsup/cygwin/fhandler_fifo.cc
index d2b236d5c..0e2d2bde4 100644
--- a/winsup/cygwin/fhandler_fifo.cc
+++ b/winsup/cygwin/fhandler_fifo.cc
@@ -22,7 +22,6 @@
#include "cygtls.h"
#include "shared_info.h"
#include "ntdll.h"
-#include "cygwait.h"
fhandler_fifo::fhandler_fifo ():
fhandler_base_overlapped (),
@@ -243,14 +242,6 @@ fhandler_fifo::wait (HANDLE h)
case WAIT_OBJECT_0:
debug_only_printf ("successfully waited for %s", what);
return true;
- case WAIT_SIGNALED:
- debug_only_printf ("interrupted by signal while waiting for %s", what);
- set_errno (EINTR);
- return false;
- case WAIT_CANCELED:
- debug_only_printf ("cancellable interruption while waiting for %s", what);
- pthread::static_cancel_self (); /* never returns */
- break;
case WAIT_TIMEOUT:
if (h == write_ready)
{
@@ -263,6 +254,14 @@ fhandler_fifo::wait (HANDLE h)
return false;
}
break;
+ case WAIT_OBJECT_0 + 1:
+ debug_only_printf ("interrupted by signal while waiting for %s", what);
+ set_errno (EINTR);
+ return false;
+ case WAIT_OBJECT_0 + 2:
+ debug_only_printf ("cancellable interruption while waiting for %s", what);
+ pthread::static_cancel_self (); /* never returns */
+ break;
default:
debug_only_printf ("unknown error while waiting for %s", what);
__seterrno ();
diff --git a/winsup/cygwin/fhandler_mem.cc b/winsup/cygwin/fhandler_mem.cc
index 6b3431bbb..c3c442ebd 100644
--- a/winsup/cygwin/fhandler_mem.cc
+++ b/winsup/cygwin/fhandler_mem.cc
@@ -1,7 +1,7 @@
/* fhandler_mem.cc. See fhandler.h for a description of the fhandler classes.
Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2008, 2009,
- 2010, 2011, 2012 Red Hat, Inc.
+ 2010, 2011 Red Hat, Inc.
This file is part of Cygwin.
@@ -36,7 +36,7 @@ fhandler_dev_mem::open (int flags, mode_t)
if (!wincap.has_physical_mem_access ())
{
- set_errno (EACCES);
+ set_errno (ENOENT);
debug_printf ("%s is accessible under NT4/W2K/XP only", dev ().name);
return 0;
}
diff --git a/winsup/cygwin/fhandler_procnet.cc b/winsup/cygwin/fhandler_procnet.cc
index 21af9fe35..836bf33b8 100644
--- a/winsup/cygwin/fhandler_procnet.cc
+++ b/winsup/cygwin/fhandler_procnet.cc
@@ -1,6 +1,6 @@
/* fhandler_procnet.cc: fhandler for /proc/net virtual filesystem
- Copyright 2007, 2008, 2009, 2010, 2011, 2012 Red Hat, Inc.
+ Copyright 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
This file is part of Cygwin.
@@ -9,7 +9,7 @@ Cygwin license. Please consult the file "CYGWIN_LICENSE" for
details. */
#define __INSIDE_CYGWIN_NET__
-#define USE_SYS_TYPES_FD_SET
+
#include "winsup.h"
#include "cygerrno.h"
#include "security.h"
@@ -18,9 +18,13 @@ details. */
#include "fhandler_virtual.h"
#include "dtable.h"
#include "cygheap.h"
-#include <ws2tcpip.h>
+
+#include <netdb.h>
+#define USE_SYS_TYPES_FD_SET
+#include <winsock2.h>
#include <iphlpapi.h>
#include <asm/byteorder.h>
+#include <cygwin/in6.h>
#define _COMPILING_NEWLIB
#include <dirent.h>
diff --git a/winsup/cygwin/fhandler_registry.cc b/winsup/cygwin/fhandler_registry.cc
index 787922962..e0e595f19 100644
--- a/winsup/cygwin/fhandler_registry.cc
+++ b/winsup/cygwin/fhandler_registry.cc
@@ -77,12 +77,10 @@ static const HKEY registry_keys[] =
static const int ROOT_KEY_COUNT = sizeof (registry_keys) / sizeof (HKEY);
-#ifndef __MINGW64_VERSION_MAJOR
extern "C" {
LONG WINAPI RegOpenUserClassesRoot (HANDLE, DWORD, REGSAM, PHKEY);
LONG WINAPI RegOpenCurrentUser (REGSAM, PHKEY);
};
-#endif
/* Make sure to access the correct per-user HKCR and HKCU hives, even if
the current user is only impersonated in another user's session. */
@@ -850,7 +848,6 @@ fhandler_registry::open (int flags, mode_t mode)
{
set_errno (EROFS);
res = 0;
- goto out;
}
else
{
diff --git a/winsup/cygwin/fhandler_serial.cc b/winsup/cygwin/fhandler_serial.cc
index 96b4062f1..677b6221f 100644
--- a/winsup/cygwin/fhandler_serial.cc
+++ b/winsup/cygwin/fhandler_serial.cc
@@ -19,13 +19,7 @@ details. */
#include "sigproc.h"
#include "pinfo.h"
#include <asm/socket.h>
-#ifdef __MINGW64_VERSION_MAJOR
-#include <devioctl.h>
-#include <ntddser.h>
-#else
#include <ddk/ntddser.h>
-#endif
-#include "cygwait.h"
/**********************************************************************/
/* fhandler_serial */
@@ -77,7 +71,7 @@ fhandler_serial::raw_read (void *ptr, size_t& ulen)
termios_printf ("error detected %x", ev);
else if (st.cbInQue && !vtime_)
inq = st.cbInQue;
- else if (!is_nonblocking () && !overlapped_armed)
+ else if (!overlapped_armed)
{
if ((size_t) tot >= minchars)
break;
@@ -89,6 +83,16 @@ fhandler_serial::raw_read (void *ptr, size_t& ulen)
}
else if (GetLastError () != ERROR_IO_PENDING)
goto err;
+ else if (is_nonblocking ())
+ {
+ PurgeComm (get_handle (), PURGE_RXABORT);
+ if (tot == 0)
+ {
+ tot = -1;
+ set_errno (EAGAIN);
+ }
+ goto out;
+ }
else
{
overlapped_armed = 1;
@@ -100,13 +104,13 @@ fhandler_serial::raw_read (void *ptr, size_t& ulen)
goto err;
debug_printf ("n %d, ev %x", n, ev);
break;
- case WAIT_SIGNALED:
+ case WAIT_OBJECT_0 + 1:
tot = -1;
PurgeComm (get_handle (), PURGE_RXABORT);
overlapped_armed = 0;
set_sig_errno (EINTR);
goto out;
- case WAIT_CANCELED:
+ case WAIT_OBJECT_0 + 2:
PurgeComm (get_handle (), PURGE_RXABORT);
overlapped_armed = 0;
pthread::static_cancel_self ();
@@ -128,14 +132,7 @@ fhandler_serial::raw_read (void *ptr, size_t& ulen)
goto err;
else if (is_nonblocking ())
{
- /* Use CancelIo rather than PurgeComm (PURGE_RXABORT) since
- PurgeComm apparently discards in-flight bytes while CancelIo
- only stops the overlapped IO routine. */
- CancelIo (get_handle ());
- if (GetOverlappedResult (get_handle (), &io_status, &n, FALSE))
- tot = n;
- else if (GetLastError () != ERROR_OPERATION_ABORTED)
- goto err;
+ PurgeComm (get_handle (), PURGE_RXABORT);
if (tot == 0)
{
tot = -1;
@@ -207,12 +204,12 @@ fhandler_serial::raw_write (const void *ptr, size_t len)
{
case WAIT_OBJECT_0:
break;
- case WAIT_SIGNALED:
+ case WAIT_OBJECT_0 + 1:
PurgeComm (get_handle (), PURGE_TXABORT);
set_sig_errno (EINTR);
ForceCloseHandle (write_status.hEvent);
return -1;
- case WAIT_CANCELED:
+ case WAIT_OBJECT_0 + 2:
PurgeComm (get_handle (), PURGE_TXABORT);
pthread::static_cancel_self ();
/*NOTREACHED*/
diff --git a/winsup/cygwin/fhandler_socket.cc b/winsup/cygwin/fhandler_socket.cc
index a11c7efbe..f78002801 100644
--- a/winsup/cygwin/fhandler_socket.cc
+++ b/winsup/cygwin/fhandler_socket.cc
@@ -12,21 +12,24 @@
/* #define DEBUG_NEST_ON 1 */
#define __INSIDE_CYGWIN_NET__
-#define USE_SYS_TYPES_FD_SET
#include "winsup.h"
+#include <sys/un.h>
+#include <asm/byteorder.h>
+
+#include <stdlib.h>
+#define USE_SYS_TYPES_FD_SET
+#include <winsock2.h>
+#include <mswsock.h>
+#include <iphlpapi.h>
#include "cygerrno.h"
#include "security.h"
+#include "cygwin/version.h"
+#include "perprocess.h"
#include "path.h"
#include "fhandler.h"
#include "dtable.h"
#include "cygheap.h"
-#include <ws2tcpip.h>
-#include <mswsock.h>
-#include <iphlpapi.h>
-#include <asm/byteorder.h>
-#include "cygwin/version.h"
-#include "perprocess.h"
#include "shared_info.h"
#include "sigproc.h"
#include "wininfo.h"
@@ -34,7 +37,7 @@
#include <sys/param.h>
#include <sys/acl.h>
#include "cygtls.h"
-#include <sys/un.h>
+#include "cygwin/in6.h"
#include "ntdll.h"
#include "miscfuncs.h"
@@ -125,7 +128,9 @@ get_inet_addr (const struct sockaddr *in, int inlen,
some greedy Win32 application. Therefore we should never wait
endlessly without checking for signals and thread cancel event. */
pthread_testcancel ();
- if (cancelable_wait (NULL, cw_nowait, cw_sig_eintr) == WAIT_SIGNALED
+ /* Using IsEventSignalled like this is racy since another thread could
+ be waiting for signal_arrived. */
+ if (IsEventSignalled (signal_arrived)
&& !_my_tls.call_signal_handler ())
{
set_errno (EINTR);
@@ -657,8 +662,7 @@ fhandler_socket::wait_for_events (const long event_mask, const DWORD flags)
return SOCKET_ERROR;
}
- WSAEVENT ev[2] = { wsock_evt };
- set_signal_arrived here (ev[1]);
+ WSAEVENT ev[2] = { wsock_evt, signal_arrived };
switch (WSAWaitForMultipleEvents (2, ev, FALSE, 50, FALSE))
{
case WSA_WAIT_TIMEOUT:
@@ -1125,9 +1129,14 @@ fhandler_socket::listen (int backlog)
}
else if (get_addr_family () == AF_INET6)
{
- struct sockaddr_in6 sin6;
- memset (&sin6, 0, sizeof sin6);
- sin6.sin6_family = AF_INET6;
+ struct sockaddr_in6 sin6 =
+ {
+ sin6_family: AF_INET6,
+ sin6_port: 0,
+ sin6_flowinfo: 0,
+ sin6_addr: {{IN6ADDR_ANY_INIT}},
+ sin6_scope_id: 0
+ };
if (!::bind (get_socket (), (struct sockaddr *) &sin6, sizeof sin6))
res = ::listen (get_socket (), backlog);
}
@@ -1330,7 +1339,7 @@ fhandler_socket::read (void *in_ptr, size_t& len)
{
WSABUF wsabuf = { len, (char *) in_ptr };
WSAMSG wsamsg = { NULL, 0, &wsabuf, 1, { 0, NULL }, 0 };
- len = recv_internal (&wsamsg, false);
+ len = recv_internal (&wsamsg);
}
int
@@ -1346,16 +1355,14 @@ fhandler_socket::readv (const struct iovec *const iov, const int iovcnt,
wsaptr->buf = (char *) iovptr->iov_base;
}
WSAMSG wsamsg = { NULL, 0, wsabuf, iovcnt, { 0, NULL}, 0 };
- return recv_internal (&wsamsg, false);
+ return recv_internal (&wsamsg);
}
extern "C" {
-#ifndef __MINGW64_VERSION_MAJOR
#define WSAID_WSARECVMSG \
{0xf689d7c8,0x6f1f,0x436b,{0x8a,0x53,0xe5,0x4f,0xe3,0x51,0xc3,0x22}};
typedef int (WSAAPI *LPFN_WSARECVMSG)(SOCKET,LPWSAMSG,LPDWORD,LPWSAOVERLAPPED,
LPWSAOVERLAPPED_COMPLETION_ROUTINE);
-#endif
int WSAAPI WSASendMsg(SOCKET,LPWSAMSG,DWORD,LPDWORD, LPWSAOVERLAPPED,
LPWSAOVERLAPPED_COMPLETION_ROUTINE);
};
@@ -1375,32 +1382,28 @@ get_ext_funcptr (SOCKET sock, void *funcptr)
}
inline ssize_t
-fhandler_socket::recv_internal (LPWSAMSG wsamsg, bool use_recvmsg)
+fhandler_socket::recv_internal (LPWSAMSG wsamsg)
{
ssize_t res = 0;
DWORD ret = 0, wret;
int evt_mask = FD_READ | ((wsamsg->dwFlags & MSG_OOB) ? FD_OOB : 0);
LPWSABUF &wsabuf = wsamsg->lpBuffers;
ULONG &wsacnt = wsamsg->dwBufferCount;
+ bool use_recvmsg = false;
static NO_COPY LPFN_WSARECVMSG WSARecvMsg;
DWORD wait_flags = wsamsg->dwFlags;
bool waitall = !!(wait_flags & MSG_WAITALL);
wsamsg->dwFlags &= (MSG_OOB | MSG_PEEK | MSG_DONTROUTE);
- if (use_recvmsg)
+ if (wsamsg->Control.len > 0)
{
if (!WSARecvMsg
&& get_ext_funcptr (get_socket (), &WSARecvMsg) == SOCKET_ERROR)
{
- if (wsamsg->Control.len > 0)
- {
- set_winsock_errno ();
- return SOCKET_ERROR;
- }
- use_recvmsg = false;
+ set_winsock_errno ();
+ return SOCKET_ERROR;
}
- else /* Only MSG_PEEK is supported by WSARecvMsg. */
- wsamsg->dwFlags &= MSG_PEEK;
+ use_recvmsg = true;
}
if (waitall)
{
@@ -1507,7 +1510,7 @@ fhandler_socket::recvfrom (void *ptr, size_t len, int flags,
&wsabuf, 1,
{ 0, NULL},
flags };
- ssize_t ret = recv_internal (&wsamsg, false);
+ ssize_t ret = recv_internal (&wsamsg);
if (fromlen)
*fromlen = wsamsg.namelen;
return ret;
@@ -1522,12 +1525,12 @@ fhandler_socket::recvmsg (struct msghdr *msg, int flags)
/* Disappointing but true: Even if WSARecvMsg is supported, it's only
supported for datagram and raw sockets. */
- bool use_recvmsg = true;
- if (get_socket_type () == SOCK_STREAM || get_addr_family () == AF_LOCAL
- || !wincap.has_recvmsg ())
+ if (!wincap.has_recvmsg () || get_socket_type () == SOCK_STREAM
+ || get_addr_family () == AF_LOCAL)
{
- use_recvmsg = false;
msg->msg_controllen = 0;
+ if (!CYGWIN_VERSION_CHECK_FOR_USING_ANCIENT_MSGHDR)
+ msg->msg_flags = 0;
}
WSABUF wsabuf[msg->msg_iovlen];
@@ -1542,7 +1545,7 @@ fhandler_socket::recvmsg (struct msghdr *msg, int flags)
wsabuf, msg->msg_iovlen,
{ msg->msg_controllen, (char *) msg->msg_control },
flags };
- ssize_t ret = recv_internal (&wsamsg, use_recvmsg);
+ ssize_t ret = recv_internal (&wsamsg);
if (ret >= 0)
{
msg->msg_namelen = wsamsg.namelen;
@@ -1781,7 +1784,7 @@ fhandler_socket::close ()
res = -1;
break;
}
- if (cygwait (10) == WAIT_SIGNALED)
+ if (WaitForSingleObject (signal_arrived, 10) == WAIT_OBJECT_0)
{
set_errno (EINTR);
res = -1;
diff --git a/winsup/cygwin/fhandler_tape.cc b/winsup/cygwin/fhandler_tape.cc
index 855fd5dfd..c394d862d 100644
--- a/winsup/cygwin/fhandler_tape.cc
+++ b/winsup/cygwin/fhandler_tape.cc
@@ -15,12 +15,7 @@ details. */
#include <stdlib.h>
#include <sys/mtio.h>
#include <sys/param.h>
-#ifdef __MINGW64_VERSION_MAJOR
-#include <devioctl.h>
-#include <ntddstor.h>
-#else
#include <ddk/ntddstor.h>
-#endif
#include "security.h"
#include "path.h"
#include "fhandler.h"
@@ -1147,13 +1142,26 @@ mtinfo::initialize ()
inline bool
fhandler_dev_tape::_lock (bool cancelable)
{
+ HANDLE w4[3] = { mt_mtx, signal_arrived, NULL };
+ DWORD cnt = 2;
+ if (cancelable && (w4[2] = pthread::get_cancel_event ()) != NULL)
+ cnt = 3;
/* O_NONBLOCK is only valid in a read or write call. Only those are
cancelable. */
DWORD timeout = cancelable && is_nonblocking () ? 0 : INFINITE;
- switch (cancelable_wait (mt_mtx, timeout, cw_sig | cw_cancel | cw_cancel_self))
+restart:
+ switch (WaitForMultipleObjects (cnt, w4, FALSE, timeout))
{
case WAIT_OBJECT_0:
return true;
+ case WAIT_OBJECT_0 + 1:
+ if (_my_tls.call_signal_handler ())
+ goto restart;
+ set_errno (EINTR);
+ return false;
+ case WAIT_OBJECT_0 + 2:
+ pthread::static_cancel_self ();
+ /*NOTREACHED*/
case WAIT_TIMEOUT:
set_errno (EAGAIN);
return false;
diff --git a/winsup/cygwin/fhandler_termios.cc b/winsup/cygwin/fhandler_termios.cc
index 18afacf1d..7fddba5b3 100644
--- a/winsup/cygwin/fhandler_termios.cc
+++ b/winsup/cygwin/fhandler_termios.cc
@@ -204,7 +204,7 @@ fhandler_termios::bg_check (int sig)
{
/* Don't raise a SIGTT* signal if we have already been
interrupted by another signal. */
- if (cygwait ((DWORD) 0) != WAIT_SIGNALED)
+ if (WaitForSingleObject (signal_arrived, 0) != WAIT_OBJECT_0)
{
siginfo_t si = {0};
si.si_signo = sig;
@@ -237,7 +237,7 @@ fhandler_termios::line_edit (const char *rptr, int nread, termios& ti)
{
c = *rptr++;
- paranoid_printf ("char %0c", c);
+ termios_printf ("char %c", c);
/* Check for special chars */
diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc
index c5b65c5b8..1428a064e 100644
--- a/winsup/cygwin/fhandler_tty.cc
+++ b/winsup/cygwin/fhandler_tty.cc
@@ -26,7 +26,6 @@ details. */
#include "cygthread.h"
#include "child_info.h"
#include <asm/socket.h>
-#include "cygwait.h"
#define close_maybe(h) \
do { \
@@ -54,20 +53,17 @@ fhandler_pty_slave::get_unit ()
bool
bytes_available (DWORD& n, HANDLE h)
{
- DWORD navail, nleft;
- navail = nleft = 0;
- bool succeeded = PeekNamedPipe (h, NULL, 0, NULL, &navail, &nleft);
- if (succeeded)
- /* nleft should always be the right choice unless something has written 0
- bytes to the pipe. In that pathological case we return the actual number
- of bytes available in the pipe. See cgf-000008 for more details. */
- n = nleft ?: navail;
- else
+ char buf[INP_BUFFER_SIZE];
+ /* Apparently need to pass in a dummy buffer to read a real "record" from
+ the pipe. So buf is used and then discarded just so we can see how many
+ bytes will be read by the next ReadFile(). */
+ bool succeeded = PeekNamedPipe (h, buf, sizeof (buf), &n, NULL, NULL);
+ if (!succeeded)
{
termios_printf ("PeekNamedPipe(%p) failed, %E", h);
n = 0;
}
- debug_only_printf ("n %u, nleft %u, navail %u");
+ debug_only_printf ("%u bytes available", n);
return succeeded;
}
@@ -176,7 +172,7 @@ fhandler_pty_master::accept_input ()
DWORD rc;
DWORD written = 0;
- paranoid_printf ("about to write %d chars to slave", bytes_left);
+ termios_printf ("about to write %d chars to slave", bytes_left);
rc = WriteFile (get_output_handle (), p, bytes_left, &written, NULL);
if (!rc)
{
@@ -281,7 +277,7 @@ fhandler_pty_master::process_slave_output (char *buf, size_t len, int pktmode_on
goto out;
}
pthread_testcancel ();
- if (cancelable_wait (NULL, 10, cw_sig_eintr) == WAIT_SIGNALED
+ if (WaitForSingleObject (signal_arrived, 10) == WAIT_OBJECT_0
&& !_my_tls.call_signal_handler ())
{
set_errno (EINTR);
@@ -738,14 +734,14 @@ fhandler_pty_slave::read (void *ptr, size_t& len)
goto out;
}
break;
- case WAIT_SIGNALED:
+ case WAIT_OBJECT_0 + 1:
if (totalread > 0)
goto out;
termios_printf ("wait catched signal");
set_sig_errno (EINTR);
totalread = -1;
goto out;
- case WAIT_CANCELED:
+ case WAIT_OBJECT_0 + 2:
process_state.pop ();
pthread::static_cancel_self ();
/*NOTREACHED*/
@@ -773,14 +769,14 @@ fhandler_pty_slave::read (void *ptr, size_t& len)
case WAIT_OBJECT_0:
case WAIT_ABANDONED_0:
break;
- case WAIT_SIGNALED:
+ case WAIT_OBJECT_0 + 1:
if (totalread > 0)
goto out;
- termios_printf ("wait for mutex caught signal");
+ termios_printf ("wait for mutex catched signal");
set_sig_errno (EINTR);
totalread = -1;
goto out;
- case WAIT_CANCELED:
+ case WAIT_OBJECT_0 + 2:
process_state.pop ();
pthread::static_cancel_self ();
/*NOTREACHED*/
@@ -835,6 +831,7 @@ fhandler_pty_slave::read (void *ptr, size_t& len)
if (!ReadFile (get_handle (), buf, readlen, &n, NULL))
{
termios_printf ("read failed, %E");
+ bytes_in_pipe = 0;
raise (SIGHUP);
bytes_in_pipe = 0;
ptr = NULL;
@@ -1482,9 +1479,7 @@ fhandler_pty_slave::fixup_after_exec ()
fixup_after_fork (NULL);
}
-#ifndef __MINGW64_VERSION_MAJOR
extern "C" BOOL WINAPI GetNamedPipeClientProcessId (HANDLE, PULONG);
-#endif
/* This thread function handles the master control pipe. It waits for a
client to connect. Then it checks if the client process has permissions
diff --git a/winsup/cygwin/fhandler_virtual.cc b/winsup/cygwin/fhandler_virtual.cc
index af73dde15..59bb6763c 100644
--- a/winsup/cygwin/fhandler_virtual.cc
+++ b/winsup/cygwin/fhandler_virtual.cc
@@ -77,6 +77,7 @@ fhandler_virtual::opendir (int fd)
if (fd >= 0)
{
dir->__d_fd = fd;
+ res = dir;
dir->__fh = this;
res = dir;
}
diff --git a/winsup/cygwin/fhandler_windows.cc b/winsup/cygwin/fhandler_windows.cc
index cb22416df..c89d98e16 100644
--- a/winsup/cygwin/fhandler_windows.cc
+++ b/winsup/cygwin/fhandler_windows.cc
@@ -96,47 +96,43 @@ fhandler_windows::read (void *buf, size_t& len)
return;
}
- HANDLE w4[3] = { get_handle (), };
- set_signal_arrived here (w4[1]);
+ HANDLE w4[3] = { get_handle (), signal_arrived, NULL };
DWORD cnt = 2;
if ((w4[cnt] = pthread::get_cancel_event ()) != NULL)
++cnt;
- for (;;)
+restart:
+ switch (MsgWaitForMultipleObjectsEx (cnt, w4,
+ is_nonblocking () ? 0 : INFINITE,
+ QS_ALLINPUT | QS_ALLPOSTMESSAGE,
+ MWMO_INPUTAVAILABLE))
{
- switch (MsgWaitForMultipleObjectsEx (cnt, w4,
- is_nonblocking () ? 0 : INFINITE,
- QS_ALLINPUT | QS_ALLPOSTMESSAGE,
- MWMO_INPUTAVAILABLE))
+ case WAIT_OBJECT_0:
+ if (!PeekMessageW (ptr, hWnd_, 0, 0, PM_REMOVE))
{
- case WAIT_OBJECT_0:
- if (!PeekMessageW (ptr, hWnd_, 0, 0, PM_REMOVE))
- {
- len = (size_t) -1;
- __seterrno ();
- }
- else if (ptr->message == WM_QUIT)
- len = 0;
- else
- len = sizeof (MSG);
- break;
- case WAIT_OBJECT_0 + 1:
- if (_my_tls.call_signal_handler ())
- continue;
- len = (size_t) -1;
- set_errno (EINTR);
- break;
- case WAIT_OBJECT_0 + 2:
- pthread::static_cancel_self ();
- break;
- case WAIT_TIMEOUT:
- len = (size_t) -1;
- set_errno (EAGAIN);
- break;
- default:
len = (size_t) -1;
__seterrno ();
- break;
}
+ else if (ptr->message == WM_QUIT)
+ len = 0;
+ else
+ len = sizeof (MSG);
+ break;
+ case WAIT_OBJECT_0 + 1:
+ if (_my_tls.call_signal_handler ())
+ goto restart;
+ len = (size_t) -1;
+ set_errno (EINTR);
+ break;
+ case WAIT_OBJECT_0 + 2:
+ pthread::static_cancel_self ();
+ break;
+ case WAIT_TIMEOUT:
+ len = (size_t) -1;
+ set_errno (EAGAIN);
+ break;
+ default:
+ len = (size_t) -1;
+ __seterrno ();
break;
}
}
diff --git a/winsup/cygwin/flock.cc b/winsup/cygwin/flock.cc
index 4d683cfd4..176e4869e 100644
--- a/winsup/cygwin/flock.cc
+++ b/winsup/cygwin/flock.cc
@@ -164,7 +164,7 @@ allow_others_to_sync ()
at this point because this gets called during initialization when the tls
is not really available. */
#define MAX_PROCESS_SD_SIZE 3072
- PISECURITY_DESCRIPTOR sd = (PISECURITY_DESCRIPTOR) alloca (MAX_PROCESS_SD_SIZE);
+ PSECURITY_DESCRIPTOR sd = (PSECURITY_DESCRIPTOR) alloca (MAX_PROCESS_SD_SIZE);
status = NtQuerySecurityObject (NtCurrentProcess (),
DACL_SECURITY_INFORMATION, sd,
MAX_PROCESS_SD_SIZE, &len);
@@ -1247,7 +1247,7 @@ lf_setlock (lockf_t *lock, inode_t *node, lockf_t **clean, HANDLE fhdl)
timeout = 100L;
DWORD WAIT_SIGNAL_ARRIVED = WAIT_OBJECT_0 + wait_count;
- set_signal_arrived here (w4[wait_count++]);
+ w4[wait_count++] = signal_arrived;
DWORD WAIT_THREAD_CANCELED = WAIT_TIMEOUT + 1;
HANDLE cancel_event = pthread::get_cancel_event ();
diff --git a/winsup/cygwin/gendef b/winsup/cygwin/gendef
index 5cc06f76c..a76711279 100755
--- a/winsup/cygwin/gendef
+++ b/winsup/cygwin/gendef
@@ -162,23 +162,62 @@ __sigbe: # return here after cygwin syscall
.global _sigdelayed
_sigdelayed:
- pushl %ebp
- movl %esp,%ebp
+ pushl %ebp
+ movl %esp,%ebp
pushf
- pushl %esi
- pushl %edi
- pushl %edx
- pushl %ecx
- pushl %ebx
- pushl %eax
- movl %fs:4,%ebx # get tls
- pushl $tls::saved_errno(%ebx) # saved errno
-
- movl \$$tls::start_offset,%eax # point to beginning
- addl %ebx,%eax # of tls block
- call __ZN7_cygtls19call_signal_handlerEv # call handler
+ pushl %esi
+ pushl %edi
+ pushl %edx
+ pushl %ecx
+ pushl %ebx
+ pushl %eax
+ movl %fs:4,%ebx
+1: movl \$1,%eax
+ xchgl %eax,$tls::stacklock(%ebx)
+ movl %eax,$tls::spinning(%ebx) # flag if we are waiting for lock
+ # If %eax is 1 then someone else has
+ # the lock but we want to flag that
+ # we're waiting for it. If %eax is 0
+ # then we're not spinning and 0 will
+ # reflect that.
+ testl %eax,%eax
+ jz 2f
+ call _yield
+ jmp 1b
+2: incl $tls::incyg(%ebx)
+ movl $tls::sig(%ebx),%eax
+ testl %eax,%eax
+ jz leave # call_signal_handler may have beat us
+ # to it
+ pushl $tls::saved_errno(%ebx) # saved errno
+ call _set_process_mask_delta
+ pushl %eax
+
+ # fill out handler arguments
+ xorl %eax,%eax # ucontext_t (currently not set)
+ pushl %eax
+ leal $tls::infodata(%ebx),%eax
+ pushl %eax # siginfo
+ pushl $tls::sig(%ebx) # signal number
+
+ pushl \$_sigreturn # where to return
+ pushl $tls::func(%ebx) # user-supplied signal func
+ cmpl \$0,$tls::threadkill(%ebx)#pthread_kill signal?
+ jnz 4f # yes. callee clears signal number
+ movl \$0,$tls::sig(%ebx) # zero the signal number as a
+ # flag to the signal handler thread
+ # that it is ok to set up sigsave
+4: decl $tls::incyg(%ebx)
+ decl $tls::stacklock(%ebx)
+ ret # return via signal handler
+
+ .global _sigreturn
+_sigreturn:
+ movl %fs:4,%ebx
+ incl $tls::incyg(%ebx)
+ addl \$12,%esp # remove arguments
+ call _set_process_mask\@4
- movl %fs:4,%ebx # reget tls
1: movl \$1,%eax # potential lock value
xchgl %eax,$tls::stacklock(%ebx) # see if we can grab it
movl %eax,$tls::spinning(%ebx) # flag if we are waiting for lock
@@ -255,7 +294,7 @@ stabilize_sig_stack:
cmpl \$0,$tls::sig(%ebx)
jz 3f
decl $tls::stacklock(%ebx) # unlock
- movl \$$tls::start_offset,%eax # point to beginning
+ movl \$-$tls::sizeof__cygtls,%eax # point to beginning
addl %ebx,%eax # of tls block
call __ZN7_cygtls19call_signal_handlerEv
jmp 1b
diff --git a/winsup/cygwin/gentls_offsets b/winsup/cygwin/gentls_offsets
index de9f1b993..2c96487d4 100755
--- a/winsup/cygwin/gentls_offsets
+++ b/winsup/cygwin/gentls_offsets
@@ -14,10 +14,10 @@ my $struct = '';
my @fields = ();
my $def = '';
$tls = join('', <TLS>);
-$tls =~ s/\A.*\n#pragma once\n//os;
$tls =~ s/\n[^\n]*gentls_offsets[^\n]*\n(.+)\Z/$1/os;
my $pre = $`;
substr($tls, 0, length($pre)) = '';
+$pre =~ s/\n#ifndef _[^\n]+\n/\n/os;
$pre .= "\n//*/";
$tls =~ s%/\*\s*gentls_offsets.*?/\*\s*gentls_offsets\s*\*/%%ogs;
foreach ($tls =~ /^.*\n/mg) {
@@ -60,7 +60,7 @@ main(int argc, char **argv)
# define poffset(f) (((char *) &(foo->f)) - ((char *) foo))
EOF
print TMP 'puts ("//;# autogenerated: Do not edit.\n");', "\n\n";
- print TMP "printf (\"//; \$tls::start_offset = -%d;\\n\", CYGTLS_PADSIZE);\n";
+ print TMP "printf (\"//; \$tls::sizeof_$struct = %d;\\n\", sizeof($struct\));\n";
for my $f (@fields) {
print TMP ' printf ("//; $tls::', $f, ' = %d;\n", ', "offset($f));\n";
print TMP ' printf ("//; $tls::p', $f, ' = %d;\n", ', "poffset($f));\n";
diff --git a/winsup/cygwin/globals.cc b/winsup/cygwin/globals.cc
index 05a3c390b..9bce8f395 100644
--- a/winsup/cygwin/globals.cc
+++ b/winsup/cygwin/globals.cc
@@ -107,7 +107,6 @@ UNICODE_STRING _RDATA ro_u_fat = _ROU (L"FAT");
UNICODE_STRING _RDATA ro_u_mvfs = _ROU (L"MVFS");
UNICODE_STRING _RDATA ro_u_nfs = _ROU (L"NFS");
UNICODE_STRING _RDATA ro_u_ntfs = _ROU (L"NTFS");
-UNICODE_STRING _RDATA ro_u_refs = _ROU (L"ReFS");
UNICODE_STRING _RDATA ro_u_sunwnfs = _ROU (L"SUNWNFS");
UNICODE_STRING _RDATA ro_u_udf = _ROU (L"UDF");
UNICODE_STRING _RDATA ro_u_unixfs = _ROU (L"UNIXFS");
diff --git a/winsup/cygwin/heap.cc b/winsup/cygwin/heap.cc
index 433628e06..d58a4cfcc 100644
--- a/winsup/cygwin/heap.cc
+++ b/winsup/cygwin/heap.cc
@@ -192,15 +192,8 @@ heap_init ()
api_fatal ("MEM_COMMIT failed, %E");
}
- /* CV 2012-05-21: Moved printing heap size here from strace::activate.
- The value printed in strace.activate was always wrong, because at the
- time it's called, cygheap points to cygheap_dummy. Above all, the heap
- size has not been evaluated yet, except in a forked child. Since
- heap_init is called early, the heap size is printed pretty much at the
- start of the strace output, so there isn't anything lost. */
- debug_printf ("heap base %p, heap top %p, heap size %p (%u)",
- cygheap->user_heap.base, cygheap->user_heap.top,
- cygheap->user_heap.chunk, cygheap->user_heap.chunk);
+ debug_printf ("heap base %p, heap top %p", cygheap->user_heap.base,
+ cygheap->user_heap.top);
page_const--;
// malloc_init ();
}
diff --git a/winsup/cygwin/hookapi.cc b/winsup/cygwin/hookapi.cc
index 83e9f498a..ba9d55112 100644
--- a/winsup/cygwin/hookapi.cc
+++ b/winsup/cygwin/hookapi.cc
@@ -165,8 +165,7 @@ makename (const char *name, char *&buf, int& i, int inc)
/* Find first missing dll in a given executable.
FIXME: This is not foolproof since it doesn't look for dlls in the
same directory as the given executable, like Windows. Instead it
- searches for dlls in the context of the current executable.
- It also only finds direct dependencies, not indirect ones. */
+ searches for dlls in the context of the current executable. */
const char *
find_first_notloaded_dll (path_conv& pc)
{
@@ -215,8 +214,10 @@ find_first_notloaded_dll (path_conv& pc)
if (pExeNTHdr)
{
DWORD importRVA;
+ DWORD importRVASize;
DWORD importRVAMaxSize;
importRVA = pExeNTHdr->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress;
+ importRVASize = pExeNTHdr->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].Size;
if (importRVA)
{
long delta = rvadelta (pExeNTHdr, importRVA, importRVAMaxSize);
@@ -225,37 +226,32 @@ find_first_notloaded_dll (path_conv& pc)
importRVA -= delta;
DWORD offset = 0;
- HMODULE map = NULL;
+ char *map = NULL;
if (importRVA + importRVAMaxSize > wincap.allocation_granularity ())
{
offset = rounddown (importRVA, wincap.allocation_granularity ());
DWORD size = importRVA - offset + importRVAMaxSize;
- map = (HMODULE) MapViewOfFile (hc, FILE_MAP_READ, 0,
- offset, size);
+ map = (char *) MapViewOfFile (hc, FILE_MAP_READ, 0, offset, size);
if (!map)
goto out;
}
// Convert imports RVA to a usable pointer
PIMAGE_IMPORT_DESCRIPTOR pdfirst;
- pdfirst = rva (PIMAGE_IMPORT_DESCRIPTOR, map ?: hm,
- importRVA - offset);
+ pdfirst = rva (PIMAGE_IMPORT_DESCRIPTOR, hm, importRVA - offset);
// Iterate through each import descriptor, and redirect if appropriate
for (PIMAGE_IMPORT_DESCRIPTOR pd = pdfirst; pd->FirstThunk; pd++)
{
- const char *lib = rva (PSTR, map ?: hm,
- pd->Name - delta - offset);
+ const char *lib = rva (PSTR, hm, pd->Name - delta - offset);
if (!LoadLibraryEx (lib, NULL, DONT_RESOLVE_DLL_REFERENCES
| LOAD_LIBRARY_AS_DATAFILE))
{
- static char buf[MAX_PATH];
- strlcpy (buf, lib, MAX_PATH);
- res = buf;
+ static char buf[NT_MAX_PATH];
+ res = strcpy (buf, lib);
}
}
- if (map)
- UnmapViewOfFile (map);
+ UnmapViewOfFile (map);
}
}
diff --git a/winsup/cygwin/include/cygwin/if.h b/winsup/cygwin/include/cygwin/if.h
index d99cda7bc..8f76e836e 100644
--- a/winsup/cygwin/include/cygwin/if.h
+++ b/winsup/cygwin/include/cygwin/if.h
@@ -111,12 +111,10 @@ struct ifconf
#define ifc_buf ifc_ifcu.ifcu_buf /* buffer address */
#define ifc_req ifc_ifcu.ifcu_req /* array of structures */
-#ifndef __INSIDE_CYGWIN_NET__
extern unsigned if_nametoindex (const char *);
extern char *if_indextoname (unsigned, char *);
extern struct if_nameindex *if_nameindex (void);
extern void if_freenameindex (struct if_nameindex *);
-#endif
#ifdef __cplusplus
};
diff --git a/winsup/cygwin/include/cygwin/in.h b/winsup/cygwin/include/cygwin/in.h
index 49957293d..30ac623a8 100644
--- a/winsup/cygwin/include/cygwin/in.h
+++ b/winsup/cygwin/include/cygwin/in.h
@@ -23,8 +23,6 @@
typedef uint16_t in_port_t;
typedef uint32_t in_addr_t;
-#ifndef __INSIDE_CYGWIN_NET__
-
/* Standard well-defined IP protocols. If you ever add one here, don't
forget to define it below. */
enum
@@ -262,6 +260,4 @@ struct sockaddr_in
#ifdef AF_INET6
#include <cygwin/in6.h>
#endif
-#endif
-
#endif /* _CYGWIN_IN_H */
diff --git a/winsup/cygwin/include/cygwin/socket.h b/winsup/cygwin/include/cygwin/socket.h
index 678b1031a..41c2eb5f8 100644
--- a/winsup/cygwin/include/cygwin/socket.h
+++ b/winsup/cygwin/include/cygwin/socket.h
@@ -26,7 +26,6 @@ typedef int socklen_t;
typedef uint16_t sa_family_t;
-#ifndef __INSIDE_CYGWIN_NET__
struct sockaddr {
sa_family_t sa_family; /* address family, AF_xxx */
char sa_data[14]; /* 14 bytes of protocol address */
@@ -45,7 +44,6 @@ struct sockaddr_storage {
int64_t __ss_align;
char _ss_pad2[_SS_PAD2SIZE];
};
-#endif
#include <asm/socket.h> /* arch-dependent defines */
#include <cygwin/sockios.h> /* the SIOCxxx I/O controls */
@@ -205,9 +203,6 @@ struct OLD_msghdr
#define MSG_NOSIGNAL 0x20 /* Don't raise SIGPIPE */
#define MSG_TRUNC 0x0100 /* Normal data truncated */
#define MSG_CTRUNC 0x0200 /* Control data truncated */
-/* Windows-specific flag values returned by recvmsg. */
-#define MSG_BCAST 0x0400 /* Broadcast datagram */
-#define MSG_MCAST 0x0800 /* Multicast datagram */
/* Setsockoptions(2) level. Thanks to BSD these must match IPPROTO_xxx */
#define SOL_IP 0
@@ -274,10 +269,8 @@ struct OLD_msghdr
#define MCAST_JOIN_SOURCE_GROUP 45
#define MCAST_LEAVE_SOURCE_GROUP 46
-#ifndef __INSIDE_CYGWIN_NET__
#define MCAST_INCLUDE 0
#define MCAST_EXCLUDE 1
-#endif
/* Old WinSock1 values, needed internally */
#ifdef __INSIDE_CYGWIN__
diff --git a/winsup/cygwin/include/cygwin/version.h b/winsup/cygwin/include/cygwin/version.h
index 34f501f13..f139fe5ef 100644
--- a/winsup/cygwin/include/cygwin/version.h
+++ b/winsup/cygwin/include/cygwin/version.h
@@ -43,7 +43,7 @@ details. */
changes to the DLL and is mainly informative in nature. */
#define CYGWIN_VERSION_DLL_MAJOR 1007
-#define CYGWIN_VERSION_DLL_MINOR 17
+#define CYGWIN_VERSION_DLL_MINOR 15
/* Major numbers before CYGWIN_VERSION_DLL_EPOCH are
incompatible. */
@@ -429,14 +429,12 @@ details. */
258: Export get_current_dir_name.
259: Export pthread_sigqueue.
260: Export scandirat.
- 261: Export memrchr.
- 262: Export getmntent_r.
*/
/* Note that we forgot to bump the api for ualarm, strtoll, strtoull */
#define CYGWIN_VERSION_API_MAJOR 0
-#define CYGWIN_VERSION_API_MINOR 262
+#define CYGWIN_VERSION_API_MINOR 260
/* There is also a compatibity version number associated with the
shared memory regions. It is incremented when incompatible
diff --git a/winsup/cygwin/include/elf.h b/winsup/cygwin/include/elf.h
index c094a1c78..0981dedce 100644
--- a/winsup/cygwin/include/elf.h
+++ b/winsup/cygwin/include/elf.h
@@ -1,41 +1,25 @@
-/*-
- * Copyright (c) 2001 David E. O'Brien.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD$
- */
+/* elf.h
-/*
- * This is a Solaris compatibility header
- */
+ Copyright 2005 Red Hat, Inc.
+
+This file is part of Cygwin.
+
+This software is a copyrighted work licensed under the terms of the
+Cygwin license. Please consult the file "CYGWIN_LICENSE" for
+details. */
#ifndef _ELF_H_
#define _ELF_H_
+#ifdef __cplusplus
+extern "C" {
+#endif
#include <sys/types.h>
-#include <machine/elf.h>
#include <sys/elf32.h>
#include <sys/elf64.h>
+#include <sys/elf_generic.h>
+#ifdef __cplusplus
+}
+#endif
-#endif /* !_ELF_H_ */
+#endif /*_ELF_H_*/
diff --git a/winsup/cygwin/include/inttypes.h b/winsup/cygwin/include/inttypes.h
index cc1d8970a..b24037eb4 100644
--- a/winsup/cygwin/include/inttypes.h
+++ b/winsup/cygwin/include/inttypes.h
@@ -1,6 +1,6 @@
/* inttypes.h - fixed size integer types
- Copyright 2003, 2005, 2009, 2010, 2012 Red Hat, Inc.
+ Copyright 2003, 2009, 2010 Red Hat, Inc.
This file is part of Cygwin.
@@ -15,238 +15,211 @@ details. */
#define __need_wchar_t
#include <stddef.h>
-/* C99 requires that in C++ the following macros should be defined only
- if requested. */
-#if !defined (__cplusplus) || defined (__STDC_FORMAT_MACROS) \
- || defined (__INSIDE_CYGWIN__)
-
-#ifdef __x86_64__
-#define __PRI64 "l"
-#define __PRIFAST "l"
-#define __PRIPTR "l"
-#else
-#define __PRI64 "ll"
-#define __PRIFAST
-#define __PRIPTR
-#endif
-
/* fprintf() macros for signed integers */
#define PRId8 "d"
#define PRId16 "d"
#define PRId32 "d"
-#define PRId64 __PRI64 "d"
+#define PRId64 "lld"
#define PRIdLEAST8 "d"
#define PRIdLEAST16 "d"
#define PRIdLEAST32 "d"
-#define PRIdLEAST64 __PRI64 "d"
+#define PRIdLEAST64 "lld"
#define PRIdFAST8 "d"
-#define PRIdFAST16 __PRIFAST "d"
-#define PRIdFAST32 __PRIFAST "d"
-#define PRIdFAST64 __PRI64 "d"
+#define PRIdFAST16 "d"
+#define PRIdFAST32 "d"
+#define PRIdFAST64 "lld"
-#define PRIdMAX __PRI64 "d"
-#define PRIdPTR __PRIPTR "d"
+#define PRIdMAX "lld"
+#define PRIdPTR "d"
#define PRIi8 "i"
#define PRIi16 "i"
#define PRIi32 "i"
-#define PRIi64 __PRI64 "i"
+#define PRIi64 "lli"
#define PRIiLEAST8 "i"
#define PRIiLEAST16 "i"
#define PRIiLEAST32 "i"
-#define PRIiLEAST64 __PRI64 "i"
+#define PRIiLEAST64 "lli"
#define PRIiFAST8 "i"
-#define PRIiFAST16 __PRIFAST "i"
-#define PRIiFAST32 __PRIFAST "i"
-#define PRIiFAST64 __PRI64 "i"
+#define PRIiFAST16 "i"
+#define PRIiFAST32 "i"
+#define PRIiFAST64 "lli"
-#define PRIiMAX __PRI64 "i"
-#define PRIiPTR __PRIPTR "i"
+#define PRIiMAX "lli"
+#define PRIiPTR "i"
/* fprintf() macros for unsigned integers */
#define PRIo8 "o"
#define PRIo16 "o"
#define PRIo32 "o"
-#define PRIo64 __PRI64 "o"
+#define PRIo64 "llo"
#define PRIoLEAST8 "o"
#define PRIoLEAST16 "o"
#define PRIoLEAST32 "o"
-#define PRIoLEAST64 __PRI64 "o"
+#define PRIoLEAST64 "llo"
#define PRIoFAST8 "o"
-#define PRIoFAST16 __PRIFAST "o"
-#define PRIoFAST32 __PRIFAST "o"
-#define PRIoFAST64 __PRI64 "o"
+#define PRIoFAST16 "o"
+#define PRIoFAST32 "o"
+#define PRIoFAST64 "llo"
-#define PRIoMAX __PRI64 "o"
-#define PRIoPTR __PRIPTR "o"
+#define PRIoMAX "llo"
+#define PRIoPTR "o"
#define PRIu8 "u"
#define PRIu16 "u"
#define PRIu32 "u"
-#define PRIu64 __PRI64 "u"
+#define PRIu64 "llu"
#define PRIuLEAST8 "u"
#define PRIuLEAST16 "u"
#define PRIuLEAST32 "u"
-#define PRIuLEAST64 __PRI64 "u"
+#define PRIuLEAST64 "llu"
#define PRIuFAST8 "u"
-#define PRIuFAST16 __PRIFAST "u"
-#define PRIuFAST32 __PRIFAST "u"
-#define PRIuFAST64 __PRI64 "u"
+#define PRIuFAST16 "u"
+#define PRIuFAST32 "u"
+#define PRIuFAST64 "llu"
-#define PRIuMAX __PRI64 "u"
-#define PRIuPTR __PRIPTR "u"
+#define PRIuMAX "llu"
+#define PRIuPTR "u"
#define PRIx8 "x"
#define PRIx16 "x"
#define PRIx32 "x"
-#define PRIx64 __PRI64 "x"
+#define PRIx64 "llx"
#define PRIxLEAST8 "x"
#define PRIxLEAST16 "x"
#define PRIxLEAST32 "x"
-#define PRIxLEAST64 __PRI64 "x"
+#define PRIxLEAST64 "llx"
#define PRIxFAST8 "x"
-#define PRIxFAST16 __PRIFAST "x"
-#define PRIxFAST32 __PRIFAST "x"
-#define PRIxFAST64 __PRI64 "x"
+#define PRIxFAST16 "x"
+#define PRIxFAST32 "x"
+#define PRIxFAST64 "llx"
-#define PRIxMAX __PRI64 "x"
-#define PRIxPTR __PRIPTR "x"
+#define PRIxMAX "llx"
+#define PRIxPTR "x"
#define PRIX8 "X"
#define PRIX16 "X"
#define PRIX32 "X"
-#define PRIX64 __PRI64 "X"
+#define PRIX64 "llX"
#define PRIXLEAST8 "X"
#define PRIXLEAST16 "X"
#define PRIXLEAST32 "X"
-#define PRIXLEAST64 __PRI64 "X"
+#define PRIXLEAST64 "llX"
#define PRIXFAST8 "X"
-#define PRIXFAST16 __PRIFAST "X"
-#define PRIXFAST32 __PRIFAST "X"
-#define PRIXFAST64 __PRI64 "X"
+#define PRIXFAST16 "X"
+#define PRIXFAST32 "X"
+#define PRIXFAST64 "llX"
-#define PRIXMAX __PRI64 "X"
-#define PRIXPTR __PRIPTR "X"
+#define PRIXMAX "llX"
+#define PRIXPTR "X"
/* fscanf() macros for signed integers */
-#ifdef __x86_64__
-#define __SCN64 "l"
-#define __SCNFAST "l"
-#define __SCNPTR "l"
-#else
-#define __SCN64 "ll"
-#define __SCNFAST
-#define __SCNPTR
-#endif
-
#define SCNd8 "hhd"
#define SCNd16 "hd"
#define SCNd32 "d"
-#define SCNd64 __SCN64 "d"
+#define SCNd64 "lld"
#define SCNdLEAST8 "hhd"
#define SCNdLEAST16 "hd"
#define SCNdLEAST32 "d"
-#define SCNdLEAST64 __SCN64 "d"
+#define SCNdLEAST64 "lld"
#define SCNdFAST8 "hhd"
-#define SCNdFAST16 __SCNFAST "d"
-#define SCNdFAST32 __SCNFAST "d"
-#define SCNdFAST64 __SCN64 "d"
+#define SCNdFAST16 "d"
+#define SCNdFAST32 "d"
+#define SCNdFAST64 "lld"
-#define SCNdMAX __SCN64 "d"
-#define SCNdPTR __SCNPTR "d"
+#define SCNdMAX "lld"
+#define SCNdPTR "d"
#define SCNi8 "hhi"
#define SCNi16 "hi"
#define SCNi32 "i"
-#define SCNi64 __SCN64 "i"
+#define SCNi64 "lli"
#define SCNiLEAST8 "hhi"
#define SCNiLEAST16 "hi"
#define SCNiLEAST32 "i"
-#define SCNiLEAST64 __SCN64 "i"
+#define SCNiLEAST64 "lli"
#define SCNiFAST8 "hhi"
-#define SCNiFAST16 __SCNFAST "i"
-#define SCNiFAST32 __SCNFAST "i"
-#define SCNiFAST64 __SCN64 "i"
+#define SCNiFAST16 "i"
+#define SCNiFAST32 "i"
+#define SCNiFAST64 "lli"
-#define SCNiMAX __SCN64 "i"
-#define SCNiPTR __SCNPTR "i"
+#define SCNiMAX "lli"
+#define SCNiPTR "i"
/* fscanf() macros for unsigned integers */
#define SCNo8 "hho"
#define SCNo16 "ho"
#define SCNo32 "o"
-#define SCNo64 __SCN64 "o"
+#define SCNo64 "llo"
#define SCNoLEAST8 "hho"
#define SCNoLEAST16 "ho"
#define SCNoLEAST32 "o"
-#define SCNoLEAST64 __SCN64 "o"
+#define SCNoLEAST64 "llo"
#define SCNoFAST8 "hho"
-#define SCNoFAST16 __SCNFAST "o"
-#define SCNoFAST32 __SCNFAST "o"
-#define SCNoFAST64 __SCN64 "o"
+#define SCNoFAST16 "o"
+#define SCNoFAST32 "o"
+#define SCNoFAST64 "llo"
-#define SCNoMAX __SCN64 "o"
-#define SCNoPTR __SCNPTR "o"
+#define SCNoMAX "llo"
+#define SCNoPTR "o"
#define SCNu8 "hhu"
#define SCNu16 "hu"
#define SCNu32 "u"
-#define SCNu64 __SCN64 "u"
+#define SCNu64 "llu"
#define SCNuLEAST8 "hhu"
#define SCNuLEAST16 "hu"
#define SCNuLEAST32 "u"
-#define SCNuLEAST64 __SCN64 "u"
+#define SCNuLEAST64 "llu"
#define SCNuFAST8 "hhu"
-#define SCNuFAST16 __SCNFAST "u"
-#define SCNuFAST32 __SCNFAST "u"
-#define SCNuFAST64 __SCN64 "u"
+#define SCNuFAST16 "u"
+#define SCNuFAST32 "u"
+#define SCNuFAST64 "llu"
-#define SCNuMAX __SCN64 "u"
-#define SCNuPTR __SCNPTR "u"
+#define SCNuMAX "llu"
+#define SCNuPTR "u"
#define SCNx8 "hhx"
#define SCNx16 "hx"
#define SCNx32 "x"
-#define SCNx64 __SCN64 "x"
+#define SCNx64 "llx"
#define SCNxLEAST8 "hhx"
#define SCNxLEAST16 "hx"
#define SCNxLEAST32 "x"
-#define SCNxLEAST64 __SCN64 "x"
+#define SCNxLEAST64 "llx"
#define SCNxFAST8 "hhx"
-#define SCNxFAST16 __SCNFAST "x"
-#define SCNxFAST32 __SCNFAST "x"
-#define SCNxFAST64 __SCN64 "x"
-
-#define SCNxMAX __SCN64 "x"
-#define SCNxPTR __SCNPTR "x"
+#define SCNxFAST16 "x"
+#define SCNxFAST32 "x"
+#define SCNxFAST64 "llx"
-#endif /* !__cplusplus || __STDC_FORMAT_MACROS || __INSIDE_CYGWIN__ */
+#define SCNxMAX "llx"
+#define SCNxPTR "x"
#ifdef __cplusplus
extern "C" {
diff --git a/winsup/cygwin/include/machine/elf.h b/winsup/cygwin/include/machine/elf.h
deleted file mode 100644
index 94278118f..000000000
--- a/winsup/cygwin/include/machine/elf.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/*-
- * Copyright (c) 1996-1997 John D. Polstra.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD$
- */
-
-#ifndef _MACHINE_ELF_H_
-#define _MACHINE_ELF_H_ 1
-
-/*
- * ELF definitions for the i386 architecture.
- */
-
-#include <sys/elf32.h> /* Definitions common to all 32 bit architectures. */
-#if defined(__ELF_WORD_SIZE) && __ELF_WORD_SIZE == 64
-#include <sys/elf64.h> /* Definitions common to all 64 bit architectures. */
-#endif
-
-#ifndef __ELF_WORD_SIZE
-#define __ELF_WORD_SIZE 32 /* Used by <sys/elf_generic.h> */
-#endif
-
-#include <sys/elf_generic.h>
-
-#define ELF_ARCH EM_386
-
-#define ELF_MACHINE_OK(x) ((x) == EM_386 || (x) == EM_486)
-
-/*
- * Auxiliary vector entries for passing information to the interpreter.
- *
- * The i386 supplement to the SVR4 ABI specification names this "auxv_t",
- * but POSIX lays claim to all symbols ending with "_t".
- */
-
-typedef struct { /* Auxiliary vector entry on initial stack */
- int a_type; /* Entry type. */
- union {
- long a_val; /* Integer value. */
- void *a_ptr; /* Address. */
- void (*a_fcn)(void); /* Function pointer (not used). */
- } a_un;
-} Elf32_Auxinfo;
-
-#if __ELF_WORD_SIZE == 64
-/* Fake for amd64 loader support */
-typedef struct {
- int fake;
-} Elf64_Auxinfo;
-#endif
-
-__ElfType(Auxinfo);
-
-/* Values for a_type. */
-#define AT_NULL 0 /* Terminates the vector. */
-#define AT_IGNORE 1 /* Ignored entry. */
-#define AT_EXECFD 2 /* File descriptor of program to load. */
-#define AT_PHDR 3 /* Program header of program already loaded. */
-#define AT_PHENT 4 /* Size of each program header entry. */
-#define AT_PHNUM 5 /* Number of program header entries. */
-#define AT_PAGESZ 6 /* Page size in bytes. */
-#define AT_BASE 7 /* Interpreter's base address. */
-#define AT_FLAGS 8 /* Flags (unused for i386). */
-#define AT_ENTRY 9 /* Where interpreter should transfer control. */
-#define AT_NOTELF 10 /* Program is not ELF ?? */
-#define AT_UID 11 /* Real uid. */
-#define AT_EUID 12 /* Effective uid. */
-#define AT_GID 13 /* Real gid. */
-#define AT_EGID 14 /* Effective gid. */
-#define AT_EXECPATH 15 /* Path to the executable. */
-#define AT_CANARY 16 /* Canary for SSP. */
-#define AT_CANARYLEN 17 /* Length of the canary. */
-#define AT_OSRELDATE 18 /* OSRELDATE. */
-#define AT_NCPUS 19 /* Number of CPUs. */
-#define AT_PAGESIZES 20 /* Pagesizes. */
-#define AT_PAGESIZESLEN 21 /* Number of pagesizes. */
-#define AT_STACKPROT 23 /* Initial stack protection. */
-
-#define AT_COUNT 24 /* Count of defined aux entry types. */
-
-/*
- * Relocation types.
- */
-
-#define R_386_COUNT 38 /* Count of defined relocation types. */
-
-/* Define "machine" characteristics */
-#define ELF_TARG_CLASS ELFCLASS32
-#define ELF_TARG_DATA ELFDATA2LSB
-#define ELF_TARG_MACH EM_386
-#define ELF_TARG_VER 1
-
-#define ET_DYN_LOAD_ADDR 0x01001000
-
-#endif /* !_MACHINE_ELF_H_ */
diff --git a/winsup/cygwin/include/mntent.h b/winsup/cygwin/include/mntent.h
index 5fb8e3a70..8ad270ba0 100644
--- a/winsup/cygwin/include/mntent.h
+++ b/winsup/cygwin/include/mntent.h
@@ -31,7 +31,6 @@ struct mntent
#include <stdio.h>
FILE *setmntent (const char *__filep, const char *__type);
struct mntent *getmntent (FILE *__filep);
-struct mntent *getmntent_r (FILE *, struct mntent *, char *, int);
int endmntent (FILE *__filep);
#endif
diff --git a/winsup/cygwin/include/netdb.h b/winsup/cygwin/include/netdb.h
index e4b85c6a7..f59a780f0 100644
--- a/winsup/cygwin/include/netdb.h
+++ b/winsup/cygwin/include/netdb.h
@@ -117,7 +117,6 @@ struct rpcent {
int r_number; /* rpc program number */
};
-#ifndef __INSIDE_CYGWIN_NET__
struct addrinfo {
int ai_flags; /* input flags */
int ai_family; /* address family of socket */
@@ -128,7 +127,6 @@ struct addrinfo {
struct sockaddr *ai_addr; /* socket address of socket */
struct addrinfo *ai_next; /* pointer to next in list */
};
-#endif
/*
* Error return codes from gethostbyname() and gethostbyaddr()
diff --git a/winsup/cygwin/include/stdint.h b/winsup/cygwin/include/stdint.h
index 070f7f306..12f16e220 100644
--- a/winsup/cygwin/include/stdint.h
+++ b/winsup/cygwin/include/stdint.h
@@ -1,6 +1,6 @@
/* stdint.h - integer types
- Copyright 2003, 2006, 2007, 2008, 2009, 2010, 2012 Red Hat, Inc.
+ Copyright 2003, 2006, 2007 Red Hat, Inc.
This file is part of Cygwin.
@@ -18,12 +18,8 @@ details. */
typedef signed char int8_t;
typedef short int16_t;
typedef int int32_t;
-#ifdef __x86_64__
-typedef long int64_t;
-#else
typedef long long int64_t;
#endif
-#endif
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
@@ -31,190 +27,114 @@ typedef unsigned short uint16_t;
#define __uint32_t_defined
typedef unsigned int uint32_t;
#endif
-#ifdef __x86_64__
-typedef unsigned long uint64_t;
-#else
typedef unsigned long long uint64_t;
-#endif
/* Minimum-width integer types */
typedef signed char int_least8_t;
typedef short int_least16_t;
typedef int int_least32_t;
-#ifdef __x86_64__
-typedef long int_least64_t;
-#else
typedef long long int_least64_t;
-#endif
typedef unsigned char uint_least8_t;
typedef unsigned short uint_least16_t;
typedef unsigned int uint_least32_t;
-#ifdef __x86_64__
-typedef unsigned long uint_least64_t;
-#else
typedef unsigned long long uint_least64_t;
-#endif
/* Fastest minimum-width integer types */
typedef signed char int_fast8_t;
-#ifdef __x86_64__
-typedef long int_fast16_t;
-typedef long int_fast32_t;
-typedef long int_fast64_t;
-#else
typedef int int_fast16_t;
typedef int int_fast32_t;
typedef long long int_fast64_t;
-#endif
typedef unsigned char uint_fast8_t;
-#ifdef __x86_64__
-typedef unsigned long uint_fast16_t;
-typedef unsigned long uint_fast32_t;
-typedef unsigned long uint_fast64_t;
-#else
typedef unsigned int uint_fast16_t;
typedef unsigned int uint_fast32_t;
typedef unsigned long long uint_fast64_t;
-#endif
/* Integer types capable of holding object pointers */
#ifndef __intptr_t_defined
#define __intptr_t_defined
-#ifdef __x86_64__
-typedef long intptr_t;
-#else
typedef int intptr_t;
#endif
-#endif
-#ifdef __x86_64__
-typedef unsigned long uintptr_t;
-#else
typedef unsigned int uintptr_t;
-#endif
/* Greatest-width integer types */
-#ifdef __x86_64__
-typedef long intmax_t;
-typedef unsigned long uintmax_t;
-#else
typedef long long intmax_t;
typedef unsigned long long uintmax_t;
-#endif
-
-/* C99 requires that in C++ the following macros should be defined only
- if requested. */
-#if !defined (__cplusplus) || defined (__STDC_LIMIT_MACROS) \
- || defined (__INSIDE_CYGWIN__)
-
-#if __x86_64__
-# define __I64(n) n ## L
-# define __U64(n) n ## UL
-#else
-# define __I64(n) n ## LL
-# define __U64(n) n ## ULL
-#endif
/* Limits of exact-width integer types */
#define INT8_MIN (-128)
#define INT16_MIN (-32768)
#define INT32_MIN (-2147483647 - 1)
-#define INT64_MIN (-__I64(9223372036854775807) - 1)
+#define INT64_MIN (-9223372036854775807LL - 1LL)
#define INT8_MAX (127)
#define INT16_MAX (32767)
#define INT32_MAX (2147483647)
-#define INT64_MAX (__I64(9223372036854775807))
+#define INT64_MAX (9223372036854775807LL)
#define UINT8_MAX (255)
#define UINT16_MAX (65535)
#define UINT32_MAX (4294967295U)
-#define UINT64_MAX (__U64(18446744073709551615))
+#define UINT64_MAX (18446744073709551615ULL)
/* Limits of minimum-width integer types */
#define INT_LEAST8_MIN (-128)
#define INT_LEAST16_MIN (-32768)
#define INT_LEAST32_MIN (-2147483647 - 1)
-#define INT_LEAST64_MIN (-__I64(9223372036854775807) - 1)
+#define INT_LEAST64_MIN (-9223372036854775807LL - 1LL)
#define INT_LEAST8_MAX (127)
#define INT_LEAST16_MAX (32767)
#define INT_LEAST32_MAX (2147483647)
-#define INT_LEAST64_MAX (__I64(9223372036854775807))
+#define INT_LEAST64_MAX (9223372036854775807LL)
#define UINT_LEAST8_MAX (255)
#define UINT_LEAST16_MAX (65535)
#define UINT_LEAST32_MAX (4294967295U)
-#define UINT_LEAST64_MAX (__U64(18446744073709551615))
+#define UINT_LEAST64_MAX (18446744073709551615ULL)
/* Limits of fastest minimum-width integer types */
#define INT_FAST8_MIN (-128)
-#ifdef __x86_64__
-#define INT_FAST16_MIN (-__I64(9223372036854775807) - 1)
-#define INT_FAST32_MIN (-__I64(9223372036854775807) - 1)
-#else
#define INT_FAST16_MIN (-2147483647 - 1)
#define INT_FAST32_MIN (-2147483647 - 1)
-#endif
-#define INT_FAST64_MIN (-__I64(9223372036854775807) - 1)
+#define INT_FAST64_MIN (-9223372036854775807LL - 1LL)
#define INT_FAST8_MAX (127)
-#ifdef __x86_64__
-#define INT_FAST16_MAX (__I64(9223372036854775807))
-#define INT_FAST32_MAX (__I64(9223372036854775807))
-#else
#define INT_FAST16_MAX (2147483647)
#define INT_FAST32_MAX (2147483647)
-#endif
-#define INT_FAST64_MAX (__I64(9223372036854775807))
+#define INT_FAST64_MAX (9223372036854775807LL)
#define UINT_FAST8_MAX (255)
-#ifdef __x86_64__
-#define UINT_FAST16_MAX (__U64(18446744073709551615))
-#define UINT_FAST32_MAX (__U64(18446744073709551615))
-#else
#define UINT_FAST16_MAX (4294967295U)
#define UINT_FAST32_MAX (4294967295U)
-#endif
-#define UINT_FAST64_MAX (__U64(18446744073709551615))
+#define UINT_FAST64_MAX (18446744073709551615ULL)
/* Limits of integer types capable of holding object pointers */
-#ifdef __x86_64__
-#define INTPTR_MIN (-__I64(9223372036854775807) - 1)
-#define INTPTR_MAX (__I64(9223372036854775807)
-#define UINTPTR_MAX (__U64(18446744073709551615))
-#else
#define INTPTR_MIN (-2147483647 - 1)
#define INTPTR_MAX (2147483647)
#define UINTPTR_MAX (4294967295U)
-#endif
/* Limits of greatest-width integer types */
-#define INTMAX_MIN (-__I64(9223372036854775807) - 1)
-#define INTMAX_MAX (__I64(9223372036854775807))
-#define UINTMAX_MAX (__U64(18446744073709551615))
+#define INTMAX_MIN (-9223372036854775807LL - 1LL)
+#define INTMAX_MAX (9223372036854775807LL)
+#define UINTMAX_MAX (18446744073709551615ULL)
/* Limits of other integer types */
#ifndef PTRDIFF_MIN
-#ifdef __x86_64__
-#define PTRDIFF_MIN (-9223372036854775807L - 1)
-#define PTRDIFF_MAX (9223372036854775807L)
-#else
#define PTRDIFF_MIN (-2147483647 - 1)
#define PTRDIFF_MAX (2147483647)
#endif
-#endif
#ifndef SIG_ATOMIC_MIN
#define SIG_ATOMIC_MIN (-2147483647 - 1)
@@ -224,12 +144,8 @@ typedef unsigned long long uintmax_t;
#endif
#ifndef SIZE_MAX
-#ifdef __x86_64__
-#define SIZE_MAX (18446744073709551615UL)
-#else
#define SIZE_MAX (4294967295U)
#endif
-#endif
#ifndef WCHAR_MIN
#ifdef __WCHAR_MIN__
@@ -246,43 +162,21 @@ typedef unsigned long long uintmax_t;
#define WINT_MAX (4294967295U)
#endif
-#endif /* !__cplusplus || __STDC_LIMIT_MACROS || __INSIDE_CYGWIN__ */
-
-/* C99 requires that in C++ the following macros should be defined only
- if requested. */
-#if !defined (__cplusplus) || defined (__STDC_CONSTANT_MACROS) \
- || defined (__INSIDE_CYGWIN__)
-
/* Macros for minimum-width integer constant expressions */
#define INT8_C(x) x
#define INT16_C(x) x
#define INT32_C(x) x
-#ifdef __x86_64__
-#define INT64_C(x) x ## L
-#else
#define INT64_C(x) x ## LL
-#endif
#define UINT8_C(x) x
#define UINT16_C(x) x
#define UINT32_C(x) x ## U
-#ifdef __x86_64__
-#define UINT64_C(x) x ## UL
-#else
#define UINT64_C(x) x ## ULL
-#endif
/* Macros for greatest-width integer constant expressions */
-#ifdef __x86_64__
-#define INTMAX_C(x) x ## L
-#define UINTMAX_C(x) x ## UL
-#else
#define INTMAX_C(x) x ## LL
#define UINTMAX_C(x) x ## ULL
-#endif
-
-#endif /* !__cplusplus || __STDC_CONSTANT_MACROS || __INSIDE_CYGWIN__ */
#endif /* _STDINT_H */
diff --git a/winsup/cygwin/include/sys/elf.h b/winsup/cygwin/include/sys/elf.h
deleted file mode 100644
index b2d6b77c9..000000000
--- a/winsup/cygwin/include/sys/elf.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*-
- * Copyright (c) 2001 David E. O'Brien.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD$
- */
-
-/*
- * This is a Solaris compatibility header
- */
-
-#ifndef _SYS_ELF_H_
-#define _SYS_ELF_H_
-
-#include <sys/types.h>
-#include <machine/elf.h>
-#include <sys/elf32.h>
-#include <sys/elf64.h>
-
-#endif /* !_SYS_ELF_H_ */
diff --git a/winsup/cygwin/include/sys/elf32.h b/winsup/cygwin/include/sys/elf32.h
index 62bf7be68..5dfe9c8b0 100644
--- a/winsup/cygwin/include/sys/elf32.h
+++ b/winsup/cygwin/include/sys/elf32.h
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD$
+ * $FreeBSD: src/sys/sys/elf32.h,v 1.8 2002/05/30 08:32:18 dfr Exp $
*/
#ifndef _SYS_ELF32_H_
@@ -35,18 +35,13 @@
* ELF definitions common to all 32-bit architectures.
*/
-typedef uint32_t Elf32_Addr;
-typedef uint16_t Elf32_Half;
-typedef uint32_t Elf32_Off;
+typedef u_int32_t Elf32_Addr;
+typedef u_int16_t Elf32_Half;
+typedef u_int32_t Elf32_Off;
typedef int32_t Elf32_Sword;
-typedef uint32_t Elf32_Word;
-typedef uint64_t Elf32_Lword;
-
-typedef Elf32_Word Elf32_Hashelt;
-
-/* Non-standard class-dependent datatype used for abstraction. */
-typedef Elf32_Word Elf32_Size;
-typedef Elf32_Sword Elf32_Ssize;
+typedef u_int32_t Elf32_Word;
+typedef u_int32_t Elf32_Size;
+typedef Elf32_Off Elf32_Hashelt;
/*
* ELF header.
@@ -80,11 +75,11 @@ typedef struct {
Elf32_Word sh_flags; /* Section flags. */
Elf32_Addr sh_addr; /* Address in memory image. */
Elf32_Off sh_offset; /* Offset in file. */
- Elf32_Word sh_size; /* Size in bytes. */
+ Elf32_Size sh_size; /* Size in bytes. */
Elf32_Word sh_link; /* Index of a related section. */
Elf32_Word sh_info; /* Depends on section type. */
- Elf32_Word sh_addralign; /* Alignment in bytes. */
- Elf32_Word sh_entsize; /* Size of each entry in section. */
+ Elf32_Size sh_addralign; /* Alignment in bytes. */
+ Elf32_Size sh_entsize; /* Size of each entry in section. */
} Elf32_Shdr;
/*
@@ -96,10 +91,10 @@ typedef struct {
Elf32_Off p_offset; /* File offset of contents. */
Elf32_Addr p_vaddr; /* Virtual address in memory image. */
Elf32_Addr p_paddr; /* Physical address (not used). */
- Elf32_Word p_filesz; /* Size of contents in file. */
- Elf32_Word p_memsz; /* Size of contents in memory. */
+ Elf32_Size p_filesz; /* Size of contents in file. */
+ Elf32_Size p_memsz; /* Size of contents in memory. */
Elf32_Word p_flags; /* Access permission flags. */
- Elf32_Word p_align; /* Alignment in memory and file. */
+ Elf32_Size p_align; /* Alignment in memory and file. */
} Elf32_Phdr;
/*
@@ -109,7 +104,7 @@ typedef struct {
typedef struct {
Elf32_Sword d_tag; /* Entry type. */
union {
- Elf32_Word d_val; /* Integer value. */
+ Elf32_Size d_val; /* Integer value. */
Elf32_Addr d_ptr; /* Address value. */
} d_un;
} Elf32_Dyn;
@@ -139,51 +134,13 @@ typedef struct {
#define ELF32_R_INFO(sym, type) (((sym) << 8) + (unsigned char)(type))
/*
- * Note entry header
- */
-typedef Elf_Note Elf32_Nhdr;
-
-/*
- * Move entry
- */
-typedef struct {
- Elf32_Lword m_value; /* symbol value */
- Elf32_Word m_info; /* size + index */
- Elf32_Word m_poffset; /* symbol offset */
- Elf32_Half m_repeat; /* repeat count */
- Elf32_Half m_stride; /* stride info */
-} Elf32_Move;
-
-/*
- * The macros compose and decompose values for Move.r_info
- *
- * sym = ELF32_M_SYM(M.m_info)
- * size = ELF32_M_SIZE(M.m_info)
- * M.m_info = ELF32_M_INFO(sym, size)
- */
-#define ELF32_M_SYM(info) ((info)>>8)
-#define ELF32_M_SIZE(info) ((unsigned char)(info))
-#define ELF32_M_INFO(sym, size) (((sym)<<8)+(unsigned char)(size))
-
-/*
- * Hardware/Software capabilities entry
- */
-typedef struct {
- Elf32_Word c_tag; /* how to interpret value */
- union {
- Elf32_Word c_val;
- Elf32_Addr c_ptr;
- } c_un;
-} Elf32_Cap;
-
-/*
* Symbol table entries.
*/
typedef struct {
Elf32_Word st_name; /* String table index of name. */
Elf32_Addr st_value; /* Symbol value. */
- Elf32_Word st_size; /* Size of associated object. */
+ Elf32_Size st_size; /* Size of associated object. */
unsigned char st_info; /* Type and binding information. */
unsigned char st_other; /* Reserved (not used). */
Elf32_Half st_shndx; /* Section index of symbol. */
@@ -196,50 +153,4 @@ typedef struct {
/* Macro for constructing st_info from field values. */
#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
-/* Macro for accessing the fields of st_other. */
-#define ELF32_ST_VISIBILITY(oth) ((oth) & 0x3)
-
-/* Structures used by Sun & GNU symbol versioning. */
-typedef struct
-{
- Elf32_Half vd_version;
- Elf32_Half vd_flags;
- Elf32_Half vd_ndx;
- Elf32_Half vd_cnt;
- Elf32_Word vd_hash;
- Elf32_Word vd_aux;
- Elf32_Word vd_next;
-} Elf32_Verdef;
-
-typedef struct
-{
- Elf32_Word vda_name;
- Elf32_Word vda_next;
-} Elf32_Verdaux;
-
-typedef struct
-{
- Elf32_Half vn_version;
- Elf32_Half vn_cnt;
- Elf32_Word vn_file;
- Elf32_Word vn_aux;
- Elf32_Word vn_next;
-} Elf32_Verneed;
-
-typedef struct
-{
- Elf32_Word vna_hash;
- Elf32_Half vna_flags;
- Elf32_Half vna_other;
- Elf32_Word vna_name;
- Elf32_Word vna_next;
-} Elf32_Vernaux;
-
-typedef Elf32_Half Elf32_Versym;
-
-typedef struct {
- Elf32_Half si_boundto; /* direct bindings - symbol bound to */
- Elf32_Half si_flags; /* per symbol flags */
-} Elf32_Syminfo;
-
#endif /* !_SYS_ELF32_H_ */
diff --git a/winsup/cygwin/include/sys/elf64.h b/winsup/cygwin/include/sys/elf64.h
index 4ec7d341e..48556be5f 100644
--- a/winsup/cygwin/include/sys/elf64.h
+++ b/winsup/cygwin/include/sys/elf64.h
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD$
+ * $FreeBSD: src/sys/sys/elf64.h,v 1.10 2002/05/30 08:32:18 dfr Exp $
*/
#ifndef _SYS_ELF64_H_
@@ -37,12 +37,14 @@
typedef uint64_t Elf64_Addr;
typedef uint16_t Elf64_Half;
-typedef uint64_t Elf64_Off;
-typedef int32_t Elf64_Sword;
-typedef int64_t Elf64_Sxword;
typedef uint32_t Elf64_Word;
-typedef uint64_t Elf64_Lword;
+typedef int32_t Elf64_Sword;
typedef uint64_t Elf64_Xword;
+typedef int64_t Elf64_Sxword;
+typedef uint64_t Elf64_Off;
+typedef uint16_t Elf64_Section;
+typedef Elf64_Half Elf64_Versym;
+typedef uint16_t Elf64_Quarter;
/*
* Types of dynamic symbol hash table bucket and chain elements.
@@ -51,11 +53,11 @@ typedef uint64_t Elf64_Xword;
* typedef is required.
*/
-typedef Elf64_Word Elf64_Hashelt;
-
-/* Non-standard class-dependent datatype used for abstraction. */
-typedef Elf64_Xword Elf64_Size;
-typedef Elf64_Sxword Elf64_Ssize;
+#ifdef __alpha__
+typedef Elf64_Off Elf64_Hashelt;
+#else
+typedef Elf64_Half Elf64_Hashelt;
+#endif
/*
* ELF header.
@@ -141,47 +143,11 @@ typedef struct {
} Elf64_Rela;
/* Macros for accessing the fields of r_info. */
-#define ELF64_R_SYM(info) ((info) >> 32)
-#define ELF64_R_TYPE(info) ((info) & 0xffffffffL)
+#define ELF64_R_SYM(info) ((info) >> 32)
+#define ELF64_R_TYPE(info) ((unsigned char)(info))
/* Macro for constructing r_info from field values. */
-#define ELF64_R_INFO(sym, type) (((sym) << 32) + ((type) & 0xffffffffL))
-
-#define ELF64_R_TYPE_DATA(info) (((Elf64_Xword)(info)<<32)>>40)
-#define ELF64_R_TYPE_ID(info) (((Elf64_Xword)(info)<<56)>>56)
-#define ELF64_R_TYPE_INFO(data, type) \
- (((Elf64_Xword)(data)<<8)+(Elf64_Xword)(type))
-
-/*
- * Note entry header
- */
-typedef Elf_Note Elf64_Nhdr;
-
-/*
- * Move entry
- */
-typedef struct {
- Elf64_Lword m_value; /* symbol value */
- Elf64_Xword m_info; /* size + index */
- Elf64_Xword m_poffset; /* symbol offset */
- Elf64_Half m_repeat; /* repeat count */
- Elf64_Half m_stride; /* stride info */
-} Elf64_Move;
-
-#define ELF64_M_SYM(info) ((info)>>8)
-#define ELF64_M_SIZE(info) ((unsigned char)(info))
-#define ELF64_M_INFO(sym, size) (((sym)<<8)+(unsigned char)(size))
-
-/*
- * Hardware/Software capabilities entry
- */
-typedef struct {
- Elf64_Xword c_tag; /* how to interpret value */
- union {
- Elf64_Xword c_val;
- Elf64_Addr c_ptr;
- } c_un;
-} Elf64_Cap;
+#define ELF64_R_INFO(sym, type) (((sym) << 32) + (unsigned char)(type))
/*
* Symbol table entries.
@@ -191,58 +157,16 @@ typedef struct {
Elf64_Word st_name; /* String table index of name. */
unsigned char st_info; /* Type and binding information. */
unsigned char st_other; /* Reserved (not used). */
- Elf64_Half st_shndx; /* Section index of symbol. */
+ Elf64_Section st_shndx; /* Section index of symbol. */
Elf64_Addr st_value; /* Symbol value. */
Elf64_Xword st_size; /* Size of associated object. */
} Elf64_Sym;
/* Macros for accessing the fields of st_info. */
-#define ELF64_ST_BIND(info) ((info) >> 4)
-#define ELF64_ST_TYPE(info) ((info) & 0xf)
+#define ELF64_ST_BIND(info) ((info) >> 4)
+#define ELF64_ST_TYPE(info) ((info) & 0xf)
/* Macro for constructing st_info from field values. */
-#define ELF64_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
-
-/* Macro for accessing the fields of st_other. */
-#define ELF64_ST_VISIBILITY(oth) ((oth) & 0x3)
-
-/* Structures used by Sun & GNU-style symbol versioning. */
-typedef struct {
- Elf64_Half vd_version;
- Elf64_Half vd_flags;
- Elf64_Half vd_ndx;
- Elf64_Half vd_cnt;
- Elf64_Word vd_hash;
- Elf64_Word vd_aux;
- Elf64_Word vd_next;
-} Elf64_Verdef;
-
-typedef struct {
- Elf64_Word vda_name;
- Elf64_Word vda_next;
-} Elf64_Verdaux;
-
-typedef struct {
- Elf64_Half vn_version;
- Elf64_Half vn_cnt;
- Elf64_Word vn_file;
- Elf64_Word vn_aux;
- Elf64_Word vn_next;
-} Elf64_Verneed;
-
-typedef struct {
- Elf64_Word vna_hash;
- Elf64_Half vna_flags;
- Elf64_Half vna_other;
- Elf64_Word vna_name;
- Elf64_Word vna_next;
-} Elf64_Vernaux;
-
-typedef Elf64_Half Elf64_Versym;
-
-typedef struct {
- Elf64_Half si_boundto; /* direct bindings - symbol bound to */
- Elf64_Half si_flags; /* per symbol flags */
-} Elf64_Syminfo;
+#define ELF64_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
#endif /* !_SYS_ELF64_H_ */
diff --git a/winsup/cygwin/include/sys/elf_common.h b/winsup/cygwin/include/sys/elf_common.h
index 4b1025613..b864f0464 100644
--- a/winsup/cygwin/include/sys/elf_common.h
+++ b/winsup/cygwin/include/sys/elf_common.h
@@ -1,5 +1,4 @@
/*-
- * Copyright (c) 2000, 2001, 2008, 2011, David E. O'Brien
* Copyright (c) 1998 John D. Polstra.
* All rights reserved.
*
@@ -24,11 +23,11 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD$
+ * $FreeBSD: src/sys/sys/elf_common.h,v 1.15 2004/05/05 02:38:54 marcel Exp $
*/
#ifndef _SYS_ELF_COMMON_H_
-#define _SYS_ELF_COMMON_H_ 1
+#define _SYS_ELF_COMMON_H_ 1
/*
* ELF definitions that are independent of architecture or word size.
@@ -49,336 +48,185 @@ typedef struct {
u_int32_t n_type; /* Type of this note. */
} Elf_Note;
-/*
- * The header for GNU-style hash sections.
- */
-
-typedef struct {
- u_int32_t gh_nbuckets; /* Number of hash buckets. */
- u_int32_t gh_symndx; /* First visible symbol in .dynsym. */
- u_int32_t gh_maskwords; /* #maskwords used in bloom filter. */
- u_int32_t gh_shift2; /* Bloom filter shift count. */
-} Elf_GNU_Hash_Header;
-
/* Indexes into the e_ident array. Keep synced with
- http://www.sco.com/developers/gabi/latest/ch4.eheader.html */
-#define EI_MAG0 0 /* Magic number, byte 0. */
-#define EI_MAG1 1 /* Magic number, byte 1. */
-#define EI_MAG2 2 /* Magic number, byte 2. */
-#define EI_MAG3 3 /* Magic number, byte 3. */
-#define EI_CLASS 4 /* Class of machine. */
-#define EI_DATA 5 /* Data format. */
-#define EI_VERSION 6 /* ELF format version. */
-#define EI_OSABI 7 /* Operating system / ABI identification */
-#define EI_ABIVERSION 8 /* ABI version */
-#define OLD_EI_BRAND 8 /* Start of architecture identification. */
-#define EI_PAD 9 /* Start of padding (per SVR4 ABI). */
-#define EI_NIDENT 16 /* Size of e_ident array. */
+ http://www.sco.com/developer/gabi/ch4.eheader.html */
+#define EI_MAG0 0 /* Magic number, byte 0. */
+#define EI_MAG1 1 /* Magic number, byte 1. */
+#define EI_MAG2 2 /* Magic number, byte 2. */
+#define EI_MAG3 3 /* Magic number, byte 3. */
+#define EI_CLASS 4 /* Class of machine. */
+#define EI_DATA 5 /* Data format. */
+#define EI_VERSION 6 /* ELF format version. */
+#define EI_OSABI 7 /* Operating system / ABI identification */
+#define EI_ABIVERSION 8 /* ABI version */
+#define OLD_EI_BRAND 8 /* Start of architecture identification. */
+#define EI_PAD 9 /* Start of padding (per SVR4 ABI). */
+#define EI_NIDENT 16 /* Size of e_ident array. */
/* Values for the magic number bytes. */
-#define ELFMAG0 0x7f
-#define ELFMAG1 'E'
-#define ELFMAG2 'L'
-#define ELFMAG3 'F'
-#define ELFMAG "\177ELF" /* magic string */
-#define SELFMAG 4 /* magic string size */
+#define ELFMAG0 0x7f
+#define ELFMAG1 'E'
+#define ELFMAG2 'L'
+#define ELFMAG3 'F'
+#define ELFMAG "\177ELF" /* magic string */
+#define SELFMAG 4 /* magic string size */
/* Values for e_ident[EI_VERSION] and e_version. */
-#define EV_NONE 0
-#define EV_CURRENT 1
+#define EV_NONE 0
+#define EV_CURRENT 1
/* Values for e_ident[EI_CLASS]. */
-#define ELFCLASSNONE 0 /* Unknown class. */
-#define ELFCLASS32 1 /* 32-bit architecture. */
-#define ELFCLASS64 2 /* 64-bit architecture. */
+#define ELFCLASSNONE 0 /* Unknown class. */
+#define ELFCLASS32 1 /* 32-bit architecture. */
+#define ELFCLASS64 2 /* 64-bit architecture. */
/* Values for e_ident[EI_DATA]. */
-#define ELFDATANONE 0 /* Unknown data format. */
-#define ELFDATA2LSB 1 /* 2's complement little-endian. */
-#define ELFDATA2MSB 2 /* 2's complement big-endian. */
+#define ELFDATANONE 0 /* Unknown data format. */
+#define ELFDATA2LSB 1 /* 2's complement little-endian. */
+#define ELFDATA2MSB 2 /* 2's complement big-endian. */
/* Values for e_ident[EI_OSABI]. */
-#define ELFOSABI_NONE 0 /* UNIX System V ABI */
-#define ELFOSABI_HPUX 1 /* HP-UX operating system */
-#define ELFOSABI_NETBSD 2 /* NetBSD */
-#define ELFOSABI_LINUX 3 /* GNU/Linux */
-#define ELFOSABI_HURD 4 /* GNU/Hurd */
-#define ELFOSABI_86OPEN 5 /* 86Open common IA32 ABI */
-#define ELFOSABI_SOLARIS 6 /* Solaris */
-#define ELFOSABI_AIX 7 /* AIX */
-#define ELFOSABI_IRIX 8 /* IRIX */
-#define ELFOSABI_FREEBSD 9 /* FreeBSD */
-#define ELFOSABI_TRU64 10 /* TRU64 UNIX */
-#define ELFOSABI_MODESTO 11 /* Novell Modesto */
-#define ELFOSABI_OPENBSD 12 /* OpenBSD */
-#define ELFOSABI_OPENVMS 13 /* Open VMS */
-#define ELFOSABI_NSK 14 /* HP Non-Stop Kernel */
-#define ELFOSABI_AROS 15 /* Amiga Research OS */
-#define ELFOSABI_ARM 97 /* ARM */
-#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */
-
-#define ELFOSABI_SYSV ELFOSABI_NONE /* symbol used in old spec */
-#define ELFOSABI_MONTEREY ELFOSABI_AIX /* Monterey */
+#define ELFOSABI_SYSV 0 /* UNIX System V ABI */
+#define ELFOSABI_NONE ELFOSABI_SYSV /* symbol used in old spec */
+#define ELFOSABI_HPUX 1 /* HP-UX operating system */
+#define ELFOSABI_NETBSD 2 /* NetBSD */
+#define ELFOSABI_LINUX 3 /* GNU/Linux */
+#define ELFOSABI_HURD 4 /* GNU/Hurd */
+#define ELFOSABI_86OPEN 5 /* 86Open common IA32 ABI */
+#define ELFOSABI_SOLARIS 6 /* Solaris */
+#define ELFOSABI_MONTEREY 7 /* Monterey */
+#define ELFOSABI_IRIX 8 /* IRIX */
+#define ELFOSABI_FREEBSD 9 /* FreeBSD */
+#define ELFOSABI_TRU64 10 /* TRU64 UNIX */
+#define ELFOSABI_MODESTO 11 /* Novell Modesto */
+#define ELFOSABI_OPENBSD 12 /* OpenBSD */
+#define ELFOSABI_ARM 97 /* ARM */
+#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */
/* e_ident */
-#define IS_ELF(ehdr) ((ehdr).e_ident[EI_MAG0] == ELFMAG0 && \
+#define IS_ELF(ehdr) ((ehdr).e_ident[EI_MAG0] == ELFMAG0 && \
(ehdr).e_ident[EI_MAG1] == ELFMAG1 && \
(ehdr).e_ident[EI_MAG2] == ELFMAG2 && \
(ehdr).e_ident[EI_MAG3] == ELFMAG3)
/* Values for e_type. */
-#define ET_NONE 0 /* Unknown type. */
-#define ET_REL 1 /* Relocatable. */
-#define ET_EXEC 2 /* Executable. */
-#define ET_DYN 3 /* Shared object. */
-#define ET_CORE 4 /* Core file. */
-#define ET_LOOS 0xfe00 /* First operating system specific. */
-#define ET_HIOS 0xfeff /* Last operating system-specific. */
-#define ET_LOPROC 0xff00 /* First processor-specific. */
-#define ET_HIPROC 0xffff /* Last processor-specific. */
+#define ET_NONE 0 /* Unknown type. */
+#define ET_REL 1 /* Relocatable. */
+#define ET_EXEC 2 /* Executable. */
+#define ET_DYN 3 /* Shared object. */
+#define ET_CORE 4 /* Core file. */
/* Values for e_machine. */
-#define EM_NONE 0 /* Unknown machine. */
-#define EM_M32 1 /* AT&T WE32100. */
-#define EM_SPARC 2 /* Sun SPARC. */
-#define EM_386 3 /* Intel i386. */
-#define EM_68K 4 /* Motorola 68000. */
-#define EM_88K 5 /* Motorola 88000. */
-#define EM_860 7 /* Intel i860. */
-#define EM_MIPS 8 /* MIPS R3000 Big-Endian only. */
-#define EM_S370 9 /* IBM System/370. */
-#define EM_MIPS_RS3_LE 10 /* MIPS R3000 Little-Endian. */
-#define EM_PARISC 15 /* HP PA-RISC. */
-#define EM_VPP500 17 /* Fujitsu VPP500. */
-#define EM_SPARC32PLUS 18 /* SPARC v8plus. */
-#define EM_960 19 /* Intel 80960. */
-#define EM_PPC 20 /* PowerPC 32-bit. */
-#define EM_PPC64 21 /* PowerPC 64-bit. */
-#define EM_S390 22 /* IBM System/390. */
-#define EM_V800 36 /* NEC V800. */
-#define EM_FR20 37 /* Fujitsu FR20. */
-#define EM_RH32 38 /* TRW RH-32. */
-#define EM_RCE 39 /* Motorola RCE. */
-#define EM_ARM 40 /* ARM. */
-#define EM_SH 42 /* Hitachi SH. */
-#define EM_SPARCV9 43 /* SPARC v9 64-bit. */
-#define EM_TRICORE 44 /* Siemens TriCore embedded processor. */
-#define EM_ARC 45 /* Argonaut RISC Core. */
-#define EM_H8_300 46 /* Hitachi H8/300. */
-#define EM_H8_300H 47 /* Hitachi H8/300H. */
-#define EM_H8S 48 /* Hitachi H8S. */
-#define EM_H8_500 49 /* Hitachi H8/500. */
-#define EM_IA_64 50 /* Intel IA-64 Processor. */
-#define EM_MIPS_X 51 /* Stanford MIPS-X. */
-#define EM_COLDFIRE 52 /* Motorola ColdFire. */
-#define EM_68HC12 53 /* Motorola M68HC12. */
-#define EM_MMA 54 /* Fujitsu MMA. */
-#define EM_PCP 55 /* Siemens PCP. */
-#define EM_NCPU 56 /* Sony nCPU. */
-#define EM_NDR1 57 /* Denso NDR1 microprocessor. */
-#define EM_STARCORE 58 /* Motorola Star*Core processor. */
-#define EM_ME16 59 /* Toyota ME16 processor. */
-#define EM_ST100 60 /* STMicroelectronics ST100 processor. */
-#define EM_TINYJ 61 /* Advanced Logic Corp. TinyJ processor. */
-#define EM_X86_64 62 /* Advanced Micro Devices x86-64 */
-#define EM_AMD64 EM_X86_64 /* Advanced Micro Devices x86-64 (compat) */
-#define EM_PDSP 63 /* Sony DSP Processor. */
-#define EM_FX66 66 /* Siemens FX66 microcontroller. */
-#define EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16
- microcontroller. */
-#define EM_ST7 68 /* STmicroelectronics ST7 8-bit
- microcontroller. */
-#define EM_68HC16 69 /* Motorola MC68HC16 microcontroller. */
-#define EM_68HC11 70 /* Motorola MC68HC11 microcontroller. */
-#define EM_68HC08 71 /* Motorola MC68HC08 microcontroller. */
-#define EM_68HC05 72 /* Motorola MC68HC05 microcontroller. */
-#define EM_SVX 73 /* Silicon Graphics SVx. */
-#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. */
-#define EM_FIREPATH 78 /* Element 14 64-bit DSP Processor. */
-#define EM_ZSP 79 /* LSI Logic 16-bit DSP Processor. */
-#define EM_MMIX 80 /* Donald Knuth's educational 64-bit proc. */
-#define EM_HUANY 81 /* Harvard University machine-independent
- object files. */
-#define EM_PRISM 82 /* SiTera Prism. */
-#define EM_AVR 83 /* Atmel AVR 8-bit microcontroller. */
-#define EM_FR30 84 /* Fujitsu FR30. */
-#define EM_D10V 85 /* Mitsubishi D10V. */
-#define EM_D30V 86 /* Mitsubishi D30V. */
-#define EM_V850 87 /* NEC v850. */
-#define EM_M32R 88 /* Mitsubishi M32R. */
-#define EM_MN10300 89 /* Matsushita MN10300. */
-#define EM_MN10200 90 /* Matsushita MN10200. */
-#define EM_PJ 91 /* picoJava. */
-#define EM_OPENRISC 92 /* OpenRISC 32-bit embedded processor. */
-#define EM_ARC_A5 93 /* ARC Cores Tangent-A5. */
-#define EM_XTENSA 94 /* Tensilica Xtensa Architecture. */
-#define EM_VIDEOCORE 95 /* Alphamosaic VideoCore processor. */
-#define EM_TMM_GPP 96 /* Thompson Multimedia General Purpose
- Processor. */
-#define EM_NS32K 97 /* National Semiconductor 32000 series. */
-#define EM_TPC 98 /* Tenor Network TPC processor. */
-#define EM_SNP1K 99 /* Trebia SNP 1000 processor. */
-#define EM_ST200 100 /* STMicroelectronics ST200 microcontroller. */
-#define EM_IP2K 101 /* Ubicom IP2xxx microcontroller family. */
-#define EM_MAX 102 /* MAX Processor. */
-#define EM_CR 103 /* National Semiconductor CompactRISC
- microprocessor. */
-#define EM_F2MC16 104 /* Fujitsu F2MC16. */
-#define EM_MSP430 105 /* Texas Instruments embedded microcontroller
- msp430. */
-#define EM_BLACKFIN 106 /* Analog Devices Blackfin (DSP) processor. */
-#define EM_SE_C33 107 /* S1C33 Family of Seiko Epson processors. */
-#define EM_SEP 108 /* Sharp embedded microprocessor. */
-#define EM_ARCA 109 /* Arca RISC Microprocessor. */
-#define EM_UNICORE 110 /* Microprocessor series from PKU-Unity Ltd.
- and MPRC of Peking University */
-
-/* Non-standard or deprecated. */
-#define EM_486 6 /* Intel i486. */
-#define EM_MIPS_RS4_BE 10 /* MIPS R4000 Big-Endian */
-#define EM_ALPHA_STD 41 /* Digital Alpha (standard value). */
-#define EM_ALPHA 0x9026 /* Alpha (written in the absence of an ABI) */
+#define EM_NONE 0 /* Unknown machine. */
+#define EM_M32 1 /* AT&T WE32100. */
+#define EM_SPARC 2 /* Sun SPARC. */
+#define EM_386 3 /* Intel i386. */
+#define EM_68K 4 /* Motorola 68000. */
+#define EM_88K 5 /* Motorola 88000. */
+#define EM_486 6 /* Intel i486. */
+#define EM_860 7 /* Intel i860. */
+#define EM_MIPS 8 /* MIPS R3000 Big-Endian only */
+
+/* Extensions. This list is not complete. */
+#define EM_S370 9 /* IBM System/370 */
+#define EM_MIPS_RS4_BE 10 /* MIPS R4000 Big-Endian */ /* Depreciated */
+#define EM_PARISC 15 /* HPPA */
+#define EM_SPARC32PLUS 18 /* SPARC v8plus */
+#define EM_PPC 20 /* PowerPC 32-bit */
+#define EM_PPC64 21 /* PowerPC 64-bit */
+#define EM_ARM 40 /* ARM */
+#define EM_SPARCV9 43 /* SPARC v9 64-bit */
+#define EM_IA_64 50 /* Intel IA-64 Processor */
+#define EM_X86_64 62 /* Advanced Micro Devices x86-64 */
+#define EM_ALPHA 0x9026 /* Alpha (written in the absence of an ABI */
/* Special section indexes. */
-#define SHN_UNDEF 0 /* Undefined, missing, irrelevant. */
-#define SHN_LORESERVE 0xff00 /* First of reserved range. */
-#define SHN_LOPROC 0xff00 /* First processor-specific. */
-#define SHN_HIPROC 0xff1f /* Last processor-specific. */
-#define SHN_LOOS 0xff20 /* First operating system-specific. */
-#define SHN_HIOS 0xff3f /* Last operating system-specific. */
-#define SHN_ABS 0xfff1 /* Absolute values. */
-#define SHN_COMMON 0xfff2 /* Common data. */
-#define SHN_XINDEX 0xffff /* Escape -- index stored elsewhere. */
-#define SHN_HIRESERVE 0xffff /* Last of reserved range. */
+#define SHN_UNDEF 0 /* Undefined, missing, irrelevant. */
+#define SHN_LORESERVE 0xff00 /* First of reserved range. */
+#define SHN_LOPROC 0xff00 /* First processor-specific. */
+#define SHN_HIPROC 0xff1f /* Last processor-specific. */
+#define SHN_ABS 0xfff1 /* Absolute values. */
+#define SHN_COMMON 0xfff2 /* Common data. */
+#define SHN_HIRESERVE 0xffff /* Last of reserved range. */
/* sh_type */
-#define SHT_NULL 0 /* inactive */
-#define SHT_PROGBITS 1 /* program defined information */
-#define SHT_SYMTAB 2 /* symbol table section */
-#define SHT_STRTAB 3 /* string table section */
-#define SHT_RELA 4 /* relocation section with addends */
-#define SHT_HASH 5 /* symbol hash table section */
-#define SHT_DYNAMIC 6 /* dynamic section */
-#define SHT_NOTE 7 /* note section */
-#define SHT_NOBITS 8 /* no space section */
-#define SHT_REL 9 /* relocation section - no addends */
-#define SHT_SHLIB 10 /* reserved - purpose unknown */
-#define SHT_DYNSYM 11 /* dynamic symbol table section */
-#define SHT_INIT_ARRAY 14 /* Initialization function pointers. */
-#define SHT_FINI_ARRAY 15 /* Termination function pointers. */
-#define SHT_PREINIT_ARRAY 16 /* Pre-initialization function ptrs. */
-#define SHT_GROUP 17 /* Section group. */
-#define SHT_SYMTAB_SHNDX 18 /* Section indexes (see SHN_XINDEX). */
-#define SHT_LOOS 0x60000000 /* First of OS specific semantics */
-#define SHT_LOSUNW 0x6ffffff4
-#define SHT_SUNW_dof 0x6ffffff4
-#define SHT_SUNW_cap 0x6ffffff5
-#define SHT_SUNW_SIGNATURE 0x6ffffff6
-#define SHT_GNU_HASH 0x6ffffff6
-#define SHT_SUNW_ANNOTATE 0x6ffffff7
-#define SHT_SUNW_DEBUGSTR 0x6ffffff8
-#define SHT_SUNW_DEBUG 0x6ffffff9
-#define SHT_SUNW_move 0x6ffffffa
-#define SHT_SUNW_COMDAT 0x6ffffffb
-#define SHT_SUNW_syminfo 0x6ffffffc
-#define SHT_SUNW_verdef 0x6ffffffd
-#define SHT_GNU_verdef 0x6ffffffd /* Symbol versions provided */
-#define SHT_SUNW_verneed 0x6ffffffe
-#define SHT_GNU_verneed 0x6ffffffe /* Symbol versions required */
-#define SHT_SUNW_versym 0x6fffffff
-#define SHT_GNU_versym 0x6fffffff /* Symbol version table */
-#define SHT_HISUNW 0x6fffffff
-#define SHT_HIOS 0x6fffffff /* Last of OS specific semantics */
-#define SHT_LOPROC 0x70000000 /* reserved range for processor */
-#define SHT_AMD64_UNWIND 0x70000001 /* unwind information */
-#define SHT_MIPS_REGINFO 0x70000006
-#define SHT_MIPS_OPTIONS 0x7000000d
-#define SHT_MIPS_DWARF 0x7000001e /* MIPS gcc uses MIPS_DWARF */
-#define SHT_HIPROC 0x7fffffff /* specific section header types */
-#define SHT_LOUSER 0x80000000 /* reserved range for application */
-#define SHT_HIUSER 0xffffffff /* specific indexes */
+#define SHT_NULL 0 /* inactive */
+#define SHT_PROGBITS 1 /* program defined information */
+#define SHT_SYMTAB 2 /* symbol table section */
+#define SHT_STRTAB 3 /* string table section */
+#define SHT_RELA 4 /* relocation section with addends */
+#define SHT_HASH 5 /* symbol hash table section */
+#define SHT_DYNAMIC 6 /* dynamic section */
+#define SHT_NOTE 7 /* note section */
+#define SHT_NOBITS 8 /* no space section */
+#define SHT_REL 9 /* relocation section - no addends */
+#define SHT_SHLIB 10 /* reserved - purpose unknown */
+#define SHT_DYNSYM 11 /* dynamic symbol table section */
+#define SHT_NUM 12 /* number of section types */
+#define SHT_LOOS 0x60000000 /* First of OS specific semantics */
+#define SHT_HIOS 0x6fffffff /* Last of OS specific semantics */
+#define SHT_LOPROC 0x70000000 /* reserved range for processor */
+#define SHT_HIPROC 0x7fffffff /* specific section header types */
+#define SHT_LOUSER 0x80000000 /* reserved range for application */
+#define SHT_HIUSER 0xffffffff /* specific indexes */
/* Flags for sh_flags. */
-#define SHF_WRITE 0x1 /* Section contains writable data. */
-#define SHF_ALLOC 0x2 /* Section occupies memory. */
-#define SHF_EXECINSTR 0x4 /* Section contains instructions. */
-#define SHF_MERGE 0x10 /* Section may be merged. */
-#define SHF_STRINGS 0x20 /* Section contains strings. */
-#define SHF_INFO_LINK 0x40 /* sh_info holds section index. */
-#define SHF_LINK_ORDER 0x80 /* Special ordering requirements. */
-#define SHF_OS_NONCONFORMING 0x100 /* OS-specific processing required. */
-#define SHF_GROUP 0x200 /* Member of section group. */
-#define SHF_TLS 0x400 /* Section contains TLS data. */
-#define SHF_MASKOS 0x0ff00000 /* OS-specific semantics. */
-#define SHF_MASKPROC 0xf0000000 /* Processor-specific semantics. */
+#define SHF_WRITE 0x1 /* Section contains writable data. */
+#define SHF_ALLOC 0x2 /* Section occupies memory. */
+#define SHF_EXECINSTR 0x4 /* Section contains instructions. */
+#define SHF_TLS 0x400 /* Section contains TLS data. */
+#define SHF_MASKPROC 0xf0000000 /* Reserved for processor-specific. */
/* Values for p_type. */
-#define PT_NULL 0 /* Unused entry. */
-#define PT_LOAD 1 /* Loadable segment. */
-#define PT_DYNAMIC 2 /* Dynamic linking information segment. */
-#define PT_INTERP 3 /* Pathname of interpreter. */
-#define PT_NOTE 4 /* Auxiliary information. */
-#define PT_SHLIB 5 /* Reserved (not used). */
-#define PT_PHDR 6 /* Location of program header itself. */
+#define PT_NULL 0 /* Unused entry. */
+#define PT_LOAD 1 /* Loadable segment. */
+#define PT_DYNAMIC 2 /* Dynamic linking information segment. */
+#define PT_INTERP 3 /* Pathname of interpreter. */
+#define PT_NOTE 4 /* Auxiliary information. */
+#define PT_SHLIB 5 /* Reserved (not used). */
+#define PT_PHDR 6 /* Location of program header itself. */
#define PT_TLS 7 /* Thread local storage segment */
-#define PT_LOOS 0x60000000 /* First OS-specific. */
-#define PT_SUNW_UNWIND 0x6464e550 /* amd64 UNWIND program header */
-#define PT_GNU_EH_FRAME 0x6474e550
-#define PT_GNU_STACK 0x6474e551
-#define PT_GNU_RELRO 0x6474e552
-#define PT_LOSUNW 0x6ffffffa
-#define PT_SUNWBSS 0x6ffffffa /* Sun Specific segment */
-#define PT_SUNWSTACK 0x6ffffffb /* describes the stack segment */
-#define PT_SUNWDTRACE 0x6ffffffc /* private */
-#define PT_SUNWCAP 0x6ffffffd /* hard/soft capabilities segment */
-#define PT_HISUNW 0x6fffffff
-#define PT_HIOS 0x6fffffff /* Last OS-specific. */
-#define PT_LOPROC 0x70000000 /* First processor-specific type. */
-#define PT_HIPROC 0x7fffffff /* Last processor-specific type. */
-/* Values for p_flags. */
-#define PF_X 0x1 /* Executable. */
-#define PF_W 0x2 /* Writable. */
-#define PF_R 0x4 /* Readable. */
-#define PF_MASKOS 0x0ff00000 /* Operating system-specific. */
-#define PF_MASKPROC 0xf0000000 /* Processor-specific. */
+#define PT_COUNT 8 /* Number of defined p_type values. */
-/* Extended program header index. */
-#define PN_XNUM 0xffff
+#define PT_LOOS 0x60000000 /* OS-specific */
+#define PT_HIOS 0x6fffffff /* OS-specific */
+#define PT_LOPROC 0x70000000 /* First processor-specific type. */
+#define PT_HIPROC 0x7fffffff /* Last processor-specific type. */
+
+/* Values for p_flags. */
+#define PF_X 0x1 /* Executable. */
+#define PF_W 0x2 /* Writable. */
+#define PF_R 0x4 /* Readable. */
/* Values for d_tag. */
-#define DT_NULL 0 /* Terminating entry. */
-#define DT_NEEDED 1 /* String table offset of a needed shared
+#define DT_NULL 0 /* Terminating entry. */
+#define DT_NEEDED 1 /* String table offset of a needed shared
library. */
-#define DT_PLTRELSZ 2 /* Total size in bytes of PLT relocations. */
-#define DT_PLTGOT 3 /* Processor-dependent address. */
-#define DT_HASH 4 /* Address of symbol hash table. */
-#define DT_STRTAB 5 /* Address of string table. */
-#define DT_SYMTAB 6 /* Address of symbol table. */
-#define DT_RELA 7 /* Address of ElfNN_Rela relocations. */
-#define DT_RELASZ 8 /* Total size of ElfNN_Rela relocations. */
-#define DT_RELAENT 9 /* Size of each ElfNN_Rela relocation entry. */
-#define DT_STRSZ 10 /* Size of string table. */
-#define DT_SYMENT 11 /* Size of each symbol table entry. */
-#define DT_INIT 12 /* Address of initialization function. */
-#define DT_FINI 13 /* Address of finalization function. */
-#define DT_SONAME 14 /* String table offset of shared object
+#define DT_PLTRELSZ 2 /* Total size in bytes of PLT relocations. */
+#define DT_PLTGOT 3 /* Processor-dependent address. */
+#define DT_HASH 4 /* Address of symbol hash table. */
+#define DT_STRTAB 5 /* Address of string table. */
+#define DT_SYMTAB 6 /* Address of symbol table. */
+#define DT_RELA 7 /* Address of ElfNN_Rela relocations. */
+#define DT_RELASZ 8 /* Total size of ElfNN_Rela relocations. */
+#define DT_RELAENT 9 /* Size of each ElfNN_Rela relocation entry. */
+#define DT_STRSZ 10 /* Size of string table. */
+#define DT_SYMENT 11 /* Size of each symbol table entry. */
+#define DT_INIT 12 /* Address of initialization function. */
+#define DT_FINI 13 /* Address of finalization function. */
+#define DT_SONAME 14 /* String table offset of shared object
name. */
-#define DT_RPATH 15 /* String table offset of library path. [sup] */
-#define DT_SYMBOLIC 16 /* Indicates "symbolic" linking. [sup] */
-#define DT_REL 17 /* Address of ElfNN_Rel relocations. */
-#define DT_RELSZ 18 /* Total size of ElfNN_Rel relocations. */
-#define DT_RELENT 19 /* Size of each ElfNN_Rel relocation. */
-#define DT_PLTREL 20 /* Type of relocation used for PLT. */
-#define DT_DEBUG 21 /* Reserved (not used). */
-#define DT_TEXTREL 22 /* Indicates there may be relocations in
+#define DT_RPATH 15 /* String table offset of library path. [sup] */
+#define DT_SYMBOLIC 16 /* Indicates "symbolic" linking. [sup] */
+#define DT_REL 17 /* Address of ElfNN_Rel relocations. */
+#define DT_RELSZ 18 /* Total size of ElfNN_Rel relocations. */
+#define DT_RELENT 19 /* Size of each ElfNN_Rel relocation. */
+#define DT_PLTREL 20 /* Type of relocation used for PLT. */
+#define DT_DEBUG 21 /* Reserved (not used). */
+#define DT_TEXTREL 22 /* Indicates there may be relocations in
non-writable segments. [sup] */
-#define DT_JMPREL 23 /* Address of PLT relocations. */
+#define DT_JMPREL 23 /* Address of PLT relocations. */
#define DT_BIND_NOW 24 /* [sup] */
#define DT_INIT_ARRAY 25 /* Address of the array of pointers to
initialization functions */
@@ -387,75 +235,25 @@ typedef struct {
#define DT_INIT_ARRAYSZ 27 /* Size in bytes of the array of
initialization functions. */
#define DT_FINI_ARRAYSZ 28 /* Size in bytes of the array of
- termination functions. */
+ terminationfunctions. */
#define DT_RUNPATH 29 /* String table offset of a null-terminated
library search path string. */
#define DT_FLAGS 30 /* Object specific flag values. */
#define DT_ENCODING 32 /* Values greater than or equal to DT_ENCODING
and less than DT_LOOS follow the rules for
the interpretation of the d_un union
- as follows: even == 'd_ptr', odd == 'd_val'
+ as follows: even == 'd_ptr', even == 'd_val'
or none */
#define DT_PREINIT_ARRAY 32 /* Address of the array of pointers to
pre-initialization functions. */
#define DT_PREINIT_ARRAYSZ 33 /* Size in bytes of the array of
pre-initialization functions. */
-#define DT_MAXPOSTAGS 34 /* number of positive tags */
-#define DT_LOOS 0x6000000d /* First OS-specific */
-#define DT_SUNW_AUXILIARY 0x6000000d /* symbol auxiliary name */
-#define DT_SUNW_RTLDINF 0x6000000e /* ld.so.1 info (private) */
-#define DT_SUNW_FILTER 0x6000000f /* symbol filter name */
-#define DT_SUNW_CAP 0x60000010 /* hardware/software */
-#define DT_HIOS 0x6ffff000 /* Last OS-specific */
-
-/*
- * DT_* entries which fall between DT_VALRNGHI & DT_VALRNGLO use the
- * Dyn.d_un.d_val field of the Elf*_Dyn structure.
- */
-#define DT_VALRNGLO 0x6ffffd00
-#define DT_CHECKSUM 0x6ffffdf8 /* elf checksum */
-#define DT_PLTPADSZ 0x6ffffdf9 /* pltpadding size */
-#define DT_MOVEENT 0x6ffffdfa /* move table entry size */
-#define DT_MOVESZ 0x6ffffdfb /* move table size */
-#define DT_FEATURE_1 0x6ffffdfc /* feature holder */
-#define DT_POSFLAG_1 0x6ffffdfd /* flags for DT_* entries, effecting */
- /* the following DT_* entry. */
- /* See DF_P1_* definitions */
-#define DT_SYMINSZ 0x6ffffdfe /* syminfo table size (in bytes) */
-#define DT_SYMINENT 0x6ffffdff /* syminfo entry size (in bytes) */
-#define DT_VALRNGHI 0x6ffffdff
-
-/*
- * DT_* entries which fall between DT_ADDRRNGHI & DT_ADDRRNGLO use the
- * Dyn.d_un.d_ptr field of the Elf*_Dyn structure.
- *
- * If any adjustment is made to the ELF object after it has been
- * built, these entries will need to be adjusted.
- */
-#define DT_ADDRRNGLO 0x6ffffe00
-#define DT_GNU_HASH 0x6ffffef5 /* GNU-style hash table */
-#define DT_CONFIG 0x6ffffefa /* configuration information */
-#define DT_DEPAUDIT 0x6ffffefb /* dependency auditing */
-#define DT_AUDIT 0x6ffffefc /* object auditing */
-#define DT_PLTPAD 0x6ffffefd /* pltpadding (sparcv9) */
-#define DT_MOVETAB 0x6ffffefe /* move table */
-#define DT_SYMINFO 0x6ffffeff /* syminfo table */
-#define DT_ADDRRNGHI 0x6ffffeff
-#define DT_VERSYM 0x6ffffff0 /* Address of versym section. */
-#define DT_RELACOUNT 0x6ffffff9 /* number of RELATIVE relocations */
-#define DT_RELCOUNT 0x6ffffffa /* number of RELATIVE relocations */
-#define DT_FLAGS_1 0x6ffffffb /* state flags - see DF_1_* defs */
-#define DT_VERDEF 0x6ffffffc /* Address of verdef section. */
-#define DT_VERDEFNUM 0x6ffffffd /* Number of elems in verdef section */
-#define DT_VERNEED 0x6ffffffe /* Address of verneed section. */
-#define DT_VERNEEDNUM 0x6fffffff /* Number of elems in verneed section */
+#define DT_COUNT 33 /* Number of defined d_tag values. */
+#define DT_LOOS 0x6000000d /* First OS-specific */
+#define DT_HIOS 0x6fff0000 /* Last OS-specific */
#define DT_LOPROC 0x70000000 /* First processor-specific type. */
-#define DT_DEPRECATED_SPARC_REGISTER 0x7000001
-#define DT_AUXILIARY 0x7ffffffd /* shared library auxiliary name */
-#define DT_USED 0x7ffffffe /* ignored - same as needed */
-#define DT_FILTER 0x7fffffff /* shared library filter name */
#define DT_HIPROC 0x7fffffff /* Last processor-specific type. */
/* Values for DT_FLAGS */
@@ -473,638 +271,29 @@ typedef struct {
executable contains code using a static
thread-local storage scheme. */
-/* Values for DT_FLAGS_1 */
-#define DF_1_BIND_NOW 0x00000001 /* Same as DF_BIND_NOW */
-#define DF_1_GLOBAL 0x00000002 /* Set the RTLD_GLOBAL for object */
-#define DF_1_NODELETE 0x00000008 /* Set the RTLD_NODELETE for object */
-#define DF_1_LOADFLTR 0x00000010 /* Immediate loading of filtees */
-#define DF_1_NOOPEN 0x00000040 /* Do not allow loading on dlopen() */
-#define DF_1_ORIGIN 0x00000080 /* Process $ORIGIN */
-#define DF_1_NODEFLIB 0x00000800 /* Do not search default paths */
-
/* Values for n_type. Used in core files. */
-#define NT_PRSTATUS 1 /* Process status. */
-#define NT_FPREGSET 2 /* Floating point registers. */
-#define NT_PRPSINFO 3 /* Process state info. */
-#define NT_THRMISC 7 /* Thread miscellaneous info. */
+#define NT_PRSTATUS 1 /* Process status. */
+#define NT_FPREGSET 2 /* Floating point registers. */
+#define NT_PRPSINFO 3 /* Process state info. */
/* Symbol Binding - ELFNN_ST_BIND - st_info */
-#define STB_LOCAL 0 /* Local symbol */
-#define STB_GLOBAL 1 /* Global symbol */
-#define STB_WEAK 2 /* like global - lower precedence */
-#define STB_LOOS 10 /* Reserved range for operating system */
-#define STB_HIOS 12 /* specific semantics. */
-#define STB_LOPROC 13 /* reserved range for processor */
-#define STB_HIPROC 15 /* specific semantics. */
+#define STB_LOCAL 0 /* Local symbol */
+#define STB_GLOBAL 1 /* Global symbol */
+#define STB_WEAK 2 /* like global - lower precedence */
+#define STB_LOPROC 13 /* reserved range for processor */
+#define STB_HIPROC 15 /* specific symbol bindings */
/* Symbol type - ELFNN_ST_TYPE - st_info */
-#define STT_NOTYPE 0 /* Unspecified type. */
-#define STT_OBJECT 1 /* Data object. */
-#define STT_FUNC 2 /* Function. */
-#define STT_SECTION 3 /* Section. */
-#define STT_FILE 4 /* Source file. */
-#define STT_COMMON 5 /* Uninitialized common block. */
-#define STT_TLS 6 /* TLS object. */
-#define STT_NUM 7
-#define STT_LOOS 10 /* Reserved range for operating system */
-#define STT_GNU_IFUNC 10
-#define STT_HIOS 12 /* specific semantics. */
-#define STT_LOPROC 13 /* reserved range for processor */
-#define STT_HIPROC 15 /* specific semantics. */
-
-/* Symbol visibility - ELFNN_ST_VISIBILITY - st_other */
-#define STV_DEFAULT 0x0 /* Default visibility (see binding). */
-#define STV_INTERNAL 0x1 /* Special meaning in relocatable objects. */
-#define STV_HIDDEN 0x2 /* Not visible. */
-#define STV_PROTECTED 0x3 /* Visible but not preemptible. */
-#define STV_EXPORTED 0x4
-#define STV_SINGLETON 0x5
-#define STV_ELIMINATE 0x6
+#define STT_NOTYPE 0 /* Unspecified type. */
+#define STT_OBJECT 1 /* Data object. */
+#define STT_FUNC 2 /* Function. */
+#define STT_SECTION 3 /* Section. */
+#define STT_FILE 4 /* Source file. */
+#define STT_TLS 6 /* TLS object. */
+#define STT_LOPROC 13 /* reserved range for processor */
+#define STT_HIPROC 15 /* specific symbol types */
/* Special symbol table indexes. */
-#define STN_UNDEF 0 /* Undefined symbol index. */
-
-/* Symbol versioning flags. */
-#define VER_DEF_CURRENT 1
-#define VER_DEF_IDX(x) VER_NDX(x)
-
-#define VER_FLG_BASE 0x01
-#define VER_FLG_WEAK 0x02
-
-#define VER_NEED_CURRENT 1
-#define VER_NEED_WEAK (1u << 15)
-#define VER_NEED_HIDDEN VER_NDX_HIDDEN
-#define VER_NEED_IDX(x) VER_NDX(x)
-
-#define VER_NDX_LOCAL 0
-#define VER_NDX_GLOBAL 1
-#define VER_NDX_GIVEN 2
-
-#define VER_NDX_HIDDEN (1u << 15)
-#define VER_NDX(x) ((x) & ~(1u << 15))
-
-#define CA_SUNW_NULL 0
-#define CA_SUNW_HW_1 1 /* first hardware capabilities entry */
-#define CA_SUNW_SF_1 2 /* first software capabilities entry */
-
-/*
- * Syminfo flag values
- */
-#define SYMINFO_FLG_DIRECT 0x0001 /* symbol ref has direct association */
- /* to object containing defn. */
-#define SYMINFO_FLG_PASSTHRU 0x0002 /* ignored - see SYMINFO_FLG_FILTER */
-#define SYMINFO_FLG_COPY 0x0004 /* symbol is a copy-reloc */
-#define SYMINFO_FLG_LAZYLOAD 0x0008 /* object containing defn should be */
- /* lazily-loaded */
-#define SYMINFO_FLG_DIRECTBIND 0x0010 /* ref should be bound directly to */
- /* object containing defn. */
-#define SYMINFO_FLG_NOEXTDIRECT 0x0020 /* don't let an external reference */
- /* directly bind to this symbol */
-#define SYMINFO_FLG_FILTER 0x0002 /* symbol ref is associated to a */
-#define SYMINFO_FLG_AUXILIARY 0x0040 /* standard or auxiliary filter */
-
-/*
- * Syminfo.si_boundto values.
- */
-#define SYMINFO_BT_SELF 0xffff /* symbol bound to self */
-#define SYMINFO_BT_PARENT 0xfffe /* symbol bound to parent */
-#define SYMINFO_BT_NONE 0xfffd /* no special symbol binding */
-#define SYMINFO_BT_EXTERN 0xfffc /* symbol defined as external */
-#define SYMINFO_BT_LOWRESERVE 0xff00 /* beginning of reserved entries */
-
-/*
- * Syminfo version values.
- */
-#define SYMINFO_NONE 0 /* Syminfo version */
-#define SYMINFO_CURRENT 1
-#define SYMINFO_NUM 2
-
-/*
- * Relocation types.
- *
- * All machine architectures are defined here to allow tools on one to
- * handle others.
- */
-
-#define R_386_NONE 0 /* No relocation. */
-#define R_386_32 1 /* Add symbol value. */
-#define R_386_PC32 2 /* Add PC-relative symbol value. */
-#define R_386_GOT32 3 /* Add PC-relative GOT offset. */
-#define R_386_PLT32 4 /* Add PC-relative PLT offset. */
-#define R_386_COPY 5 /* Copy data from shared object. */
-#define R_386_GLOB_DAT 6 /* Set GOT entry to data address. */
-#define R_386_JMP_SLOT 7 /* Set GOT entry to code address. */
-#define R_386_RELATIVE 8 /* Add load address of shared object. */
-#define R_386_GOTOFF 9 /* Add GOT-relative symbol address. */
-#define R_386_GOTPC 10 /* Add PC-relative GOT table address. */
-#define R_386_TLS_TPOFF 14 /* Negative offset in static TLS block */
-#define R_386_TLS_IE 15 /* Absolute address of GOT for -ve static TLS */
-#define R_386_TLS_GOTIE 16 /* GOT entry for negative static TLS block */
-#define R_386_TLS_LE 17 /* Negative offset relative to static TLS */
-#define R_386_TLS_GD 18 /* 32 bit offset to GOT (index,off) pair */
-#define R_386_TLS_LDM 19 /* 32 bit offset to GOT (index,zero) pair */
-#define R_386_16 20
-#define R_386_PC16 21
-#define R_386_8 22
-#define R_386_PC8 23
-#define R_386_TLS_GD_32 24 /* 32 bit offset to GOT (index,off) pair */
-#define R_386_TLS_GD_PUSH 25 /* pushl instruction for Sun ABI GD sequence */
-#define R_386_TLS_GD_CALL 26 /* call instruction for Sun ABI GD sequence */
-#define R_386_TLS_GD_POP 27 /* popl instruction for Sun ABI GD sequence */
-#define R_386_TLS_LDM_32 28 /* 32 bit offset to GOT (index,zero) pair */
-#define R_386_TLS_LDM_PUSH 29 /* pushl instruction for Sun ABI LD sequence */
-#define R_386_TLS_LDM_CALL 30 /* call instruction for Sun ABI LD sequence */
-#define R_386_TLS_LDM_POP 31 /* popl instruction for Sun ABI LD sequence */
-#define R_386_TLS_LDO_32 32 /* 32 bit offset from start of TLS block */
-#define R_386_TLS_IE_32 33 /* 32 bit offset to GOT static TLS offset entry */
-#define R_386_TLS_LE_32 34 /* 32 bit offset within static TLS block */
-#define R_386_TLS_DTPMOD32 35 /* GOT entry containing TLS index */
-#define R_386_TLS_DTPOFF32 36 /* GOT entry containing TLS offset */
-#define R_386_TLS_TPOFF32 37 /* GOT entry of -ve static TLS offset */
-#define R_386_IRELATIVE 42 /* PLT entry resolved indirectly at runtime */
-
-#define R_ARM_NONE 0 /* No relocation. */
-#define R_ARM_PC24 1
-#define R_ARM_ABS32 2
-#define R_ARM_REL32 3
-#define R_ARM_PC13 4
-#define R_ARM_ABS16 5
-#define R_ARM_ABS12 6
-#define R_ARM_THM_ABS5 7
-#define R_ARM_ABS8 8
-#define R_ARM_SBREL32 9
-#define R_ARM_THM_PC22 10
-#define R_ARM_THM_PC8 11
-#define R_ARM_AMP_VCALL9 12
-#define R_ARM_SWI24 13
-#define R_ARM_THM_SWI8 14
-#define R_ARM_XPC25 15
-#define R_ARM_THM_XPC22 16
-/* TLS relocations */
-#define R_ARM_TLS_DTPMOD32 17 /* ID of module containing symbol */
-#define R_ARM_TLS_DTPOFF32 18 /* Offset in TLS block */
-#define R_ARM_TLS_TPOFF32 19 /* Offset in static TLS block */
-#define R_ARM_COPY 20 /* Copy data from shared object. */
-#define R_ARM_GLOB_DAT 21 /* Set GOT entry to data address. */
-#define R_ARM_JUMP_SLOT 22 /* Set GOT entry to code address. */
-#define R_ARM_RELATIVE 23 /* Add load address of shared object. */
-#define R_ARM_GOTOFF 24 /* Add GOT-relative symbol address. */
-#define R_ARM_GOTPC 25 /* Add PC-relative GOT table address. */
-#define R_ARM_GOT32 26 /* Add PC-relative GOT offset. */
-#define R_ARM_PLT32 27 /* Add PC-relative PLT offset. */
-#define R_ARM_GNU_VTENTRY 100
-#define R_ARM_GNU_VTINHERIT 101
-#define R_ARM_RSBREL32 250
-#define R_ARM_THM_RPC22 251
-#define R_ARM_RREL32 252
-#define R_ARM_RABS32 253
-#define R_ARM_RPC24 254
-#define R_ARM_RBASE 255
-
-/* Name Value Field Calculation */
-#define R_IA_64_NONE 0 /* None */
-#define R_IA_64_IMM14 0x21 /* immediate14 S + A */
-#define R_IA_64_IMM22 0x22 /* immediate22 S + A */
-#define R_IA_64_IMM64 0x23 /* immediate64 S + A */
-#define R_IA_64_DIR32MSB 0x24 /* word32 MSB S + A */
-#define R_IA_64_DIR32LSB 0x25 /* word32 LSB S + A */
-#define R_IA_64_DIR64MSB 0x26 /* word64 MSB S + A */
-#define R_IA_64_DIR64LSB 0x27 /* word64 LSB S + A */
-#define R_IA_64_GPREL22 0x2a /* immediate22 @gprel(S + A) */
-#define R_IA_64_GPREL64I 0x2b /* immediate64 @gprel(S + A) */
-#define R_IA_64_GPREL32MSB 0x2c /* word32 MSB @gprel(S + A) */
-#define R_IA_64_GPREL32LSB 0x2d /* word32 LSB @gprel(S + A) */
-#define R_IA_64_GPREL64MSB 0x2e /* word64 MSB @gprel(S + A) */
-#define R_IA_64_GPREL64LSB 0x2f /* word64 LSB @gprel(S + A) */
-#define R_IA_64_LTOFF22 0x32 /* immediate22 @ltoff(S + A) */
-#define R_IA_64_LTOFF64I 0x33 /* immediate64 @ltoff(S + A) */
-#define R_IA_64_PLTOFF22 0x3a /* immediate22 @pltoff(S + A) */
-#define R_IA_64_PLTOFF64I 0x3b /* immediate64 @pltoff(S + A) */
-#define R_IA_64_PLTOFF64MSB 0x3e /* word64 MSB @pltoff(S + A) */
-#define R_IA_64_PLTOFF64LSB 0x3f /* word64 LSB @pltoff(S + A) */
-#define R_IA_64_FPTR64I 0x43 /* immediate64 @fptr(S + A) */
-#define R_IA_64_FPTR32MSB 0x44 /* word32 MSB @fptr(S + A) */
-#define R_IA_64_FPTR32LSB 0x45 /* word32 LSB @fptr(S + A) */
-#define R_IA_64_FPTR64MSB 0x46 /* word64 MSB @fptr(S + A) */
-#define R_IA_64_FPTR64LSB 0x47 /* word64 LSB @fptr(S + A) */
-#define R_IA_64_PCREL60B 0x48 /* immediate60 form1 S + A - P */
-#define R_IA_64_PCREL21B 0x49 /* immediate21 form1 S + A - P */
-#define R_IA_64_PCREL21M 0x4a /* immediate21 form2 S + A - P */
-#define R_IA_64_PCREL21F 0x4b /* immediate21 form3 S + A - P */
-#define R_IA_64_PCREL32MSB 0x4c /* word32 MSB S + A - P */
-#define R_IA_64_PCREL32LSB 0x4d /* word32 LSB S + A - P */
-#define R_IA_64_PCREL64MSB 0x4e /* word64 MSB S + A - P */
-#define R_IA_64_PCREL64LSB 0x4f /* word64 LSB S + A - P */
-#define R_IA_64_LTOFF_FPTR22 0x52 /* immediate22 @ltoff(@fptr(S + A)) */
-#define R_IA_64_LTOFF_FPTR64I 0x53 /* immediate64 @ltoff(@fptr(S + A)) */
-#define R_IA_64_LTOFF_FPTR32MSB 0x54 /* word32 MSB @ltoff(@fptr(S + A)) */
-#define R_IA_64_LTOFF_FPTR32LSB 0x55 /* word32 LSB @ltoff(@fptr(S + A)) */
-#define R_IA_64_LTOFF_FPTR64MSB 0x56 /* word64 MSB @ltoff(@fptr(S + A)) */
-#define R_IA_64_LTOFF_FPTR64LSB 0x57 /* word64 LSB @ltoff(@fptr(S + A)) */
-#define R_IA_64_SEGREL32MSB 0x5c /* word32 MSB @segrel(S + A) */
-#define R_IA_64_SEGREL32LSB 0x5d /* word32 LSB @segrel(S + A) */
-#define R_IA_64_SEGREL64MSB 0x5e /* word64 MSB @segrel(S + A) */
-#define R_IA_64_SEGREL64LSB 0x5f /* word64 LSB @segrel(S + A) */
-#define R_IA_64_SECREL32MSB 0x64 /* word32 MSB @secrel(S + A) */
-#define R_IA_64_SECREL32LSB 0x65 /* word32 LSB @secrel(S + A) */
-#define R_IA_64_SECREL64MSB 0x66 /* word64 MSB @secrel(S + A) */
-#define R_IA_64_SECREL64LSB 0x67 /* word64 LSB @secrel(S + A) */
-#define R_IA_64_REL32MSB 0x6c /* word32 MSB BD + A */
-#define R_IA_64_REL32LSB 0x6d /* word32 LSB BD + A */
-#define R_IA_64_REL64MSB 0x6e /* word64 MSB BD + A */
-#define R_IA_64_REL64LSB 0x6f /* word64 LSB BD + A */
-#define R_IA_64_LTV32MSB 0x74 /* word32 MSB S + A */
-#define R_IA_64_LTV32LSB 0x75 /* word32 LSB S + A */
-#define R_IA_64_LTV64MSB 0x76 /* word64 MSB S + A */
-#define R_IA_64_LTV64LSB 0x77 /* word64 LSB S + A */
-#define R_IA_64_PCREL21BI 0x79 /* immediate21 form1 S + A - P */
-#define R_IA_64_PCREL22 0x7a /* immediate22 S + A - P */
-#define R_IA_64_PCREL64I 0x7b /* immediate64 S + A - P */
-#define R_IA_64_IPLTMSB 0x80 /* function descriptor MSB special */
-#define R_IA_64_IPLTLSB 0x81 /* function descriptor LSB speciaal */
-#define R_IA_64_SUB 0x85 /* immediate64 A - S */
-#define R_IA_64_LTOFF22X 0x86 /* immediate22 special */
-#define R_IA_64_LDXMOV 0x87 /* immediate22 special */
-#define R_IA_64_TPREL14 0x91 /* imm14 @tprel(S + A) */
-#define R_IA_64_TPREL22 0x92 /* imm22 @tprel(S + A) */
-#define R_IA_64_TPREL64I 0x93 /* imm64 @tprel(S + A) */
-#define R_IA_64_TPREL64MSB 0x96 /* word64 MSB @tprel(S + A) */
-#define R_IA_64_TPREL64LSB 0x97 /* word64 LSB @tprel(S + A) */
-#define R_IA_64_LTOFF_TPREL22 0x9a /* imm22 @ltoff(@tprel(S+A)) */
-#define R_IA_64_DTPMOD64MSB 0xa6 /* word64 MSB @dtpmod(S + A) */
-#define R_IA_64_DTPMOD64LSB 0xa7 /* word64 LSB @dtpmod(S + A) */
-#define R_IA_64_LTOFF_DTPMOD22 0xaa /* imm22 @ltoff(@dtpmod(S+A)) */
-#define R_IA_64_DTPREL14 0xb1 /* imm14 @dtprel(S + A) */
-#define R_IA_64_DTPREL22 0xb2 /* imm22 @dtprel(S + A) */
-#define R_IA_64_DTPREL64I 0xb3 /* imm64 @dtprel(S + A) */
-#define R_IA_64_DTPREL32MSB 0xb4 /* word32 MSB @dtprel(S + A) */
-#define R_IA_64_DTPREL32LSB 0xb5 /* word32 LSB @dtprel(S + A) */
-#define R_IA_64_DTPREL64MSB 0xb6 /* word64 MSB @dtprel(S + A) */
-#define R_IA_64_DTPREL64LSB 0xb7 /* word64 LSB @dtprel(S + A) */
-#define R_IA_64_LTOFF_DTPREL22 0xba /* imm22 @ltoff(@dtprel(S+A)) */
-
-/* Linux style aliases */
-#define R_IA64_NONE R_IA_64_NONE
-#define R_IA64_IMM14 R_IA_64_IMM14
-#define R_IA64_IMM22 R_IA_64_IMM22
-#define R_IA64_IMM64 R_IA_64_IMM64
-#define R_IA64_DIR32MSB R_IA_64_DIR32MSB
-#define R_IA64_DIR32LSB R_IA_64_DIR32LSB
-#define R_IA64_DIR64MSB R_IA_64_DIR64MSB
-#define R_IA64_DIR64LSB R_IA_64_DIR64LSB
-#define R_IA64_GPREL22 R_IA_64_GPREL22
-#define R_IA64_GPREL64I R_IA_64_GPREL64I
-#define R_IA64_GPREL32MSB R_IA_64_GPREL32MSB
-#define R_IA64_GPREL32LSB R_IA_64_GPREL32LSB
-#define R_IA64_GPREL64MSB R_IA_64_GPREL64MSB
-#define R_IA64_GPREL64LSB R_IA_64_GPREL64LSB
-#define R_IA64_LTOFF22 R_IA_64_LTOFF22
-#define R_IA64_LTOFF64I R_IA_64_LTOFF64I
-#define R_IA64_PLTOFF22 R_IA_64_PLTOFF22
-#define R_IA64_PLTOFF64I R_IA_64_PLTOFF64I
-#define R_IA64_PLTOFF64MSB R_IA_64_PLTOFF64MSB
-#define R_IA64_PLTOFF64LSB R_IA_64_PLTOFF64LSB
-#define R_IA64_FPTR64I R_IA_64_FPTR64I
-#define R_IA64_FPTR32MSB R_IA_64_FPTR32MSB
-#define R_IA64_FPTR32LSB R_IA_64_FPTR32LSB
-#define R_IA64_FPTR64MSB R_IA_64_FPTR64MSB
-#define R_IA64_FPTR64LSB R_IA_64_FPTR64LSB
-#define R_IA64_PCREL60B R_IA_64_PCREL60B
-#define R_IA64_PCREL21B R_IA_64_PCREL21B
-#define R_IA64_PCREL21M R_IA_64_PCREL21M
-#define R_IA64_PCREL21F R_IA_64_PCREL21F
-#define R_IA64_PCREL32MSB R_IA_64_PCREL32MSB
-#define R_IA64_PCREL32LSB R_IA_64_PCREL32LSB
-#define R_IA64_PCREL64MSB R_IA_64_PCREL64MSB
-#define R_IA64_PCREL64LSB R_IA_64_PCREL64LSB
-#define R_IA64_LTOFF_FPTR22 R_IA_64_LTOFF_FPTR22
-#define R_IA64_LTOFF_FPTR64I R_IA_64_LTOFF_FPTR64I
-#define R_IA64_LTOFF_FPTR32MSB R_IA_64_LTOFF_FPTR32MSB
-#define R_IA64_LTOFF_FPTR32LSB R_IA_64_LTOFF_FPTR32LSB
-#define R_IA64_LTOFF_FPTR64MSB R_IA_64_LTOFF_FPTR64MSB
-#define R_IA64_LTOFF_FPTR64LSB R_IA_64_LTOFF_FPTR64LSB
-#define R_IA64_SEGREL32MSB R_IA_64_SEGREL32MSB
-#define R_IA64_SEGREL32LSB R_IA_64_SEGREL32LSB
-#define R_IA64_SEGREL64MSB R_IA_64_SEGREL64MSB
-#define R_IA64_SEGREL64LSB R_IA_64_SEGREL64LSB
-#define R_IA64_SECREL32MSB R_IA_64_SECREL32MSB
-#define R_IA64_SECREL32LSB R_IA_64_SECREL32LSB
-#define R_IA64_SECREL64MSB R_IA_64_SECREL64MSB
-#define R_IA64_SECREL64LSB R_IA_64_SECREL64LSB
-#define R_IA64_REL32MSB R_IA_64_REL32MSB
-#define R_IA64_REL32LSB R_IA_64_REL32LSB
-#define R_IA64_REL64MSB R_IA_64_REL64MSB
-#define R_IA64_REL64LSB R_IA_64_REL64LSB
-#define R_IA64_LTV32MSB R_IA_64_LTV32MSB
-#define R_IA64_LTV32LSB R_IA_64_LTV32LSB
-#define R_IA64_LTV64MSB R_IA_64_LTV64MSB
-#define R_IA64_LTV64LSB R_IA_64_LTV64LSB
-#define R_IA64_PCREL21BI R_IA_64_PCREL21BI
-#define R_IA64_PCREL22 R_IA_64_PCREL22
-#define R_IA64_PCREL64I R_IA_64_PCREL64I
-#define R_IA64_IPLTMSB R_IA_64_IPLTMSB
-#define R_IA64_IPLTLSB R_IA_64_IPLTLSB
-#define R_IA64_SUB R_IA_64_SUB
-#define R_IA64_LTOFF22X R_IA_64_LTOFF22X
-#define R_IA64_LDXMOV R_IA_64_LDXMOV
-#define R_IA64_TPREL14 R_IA_64_TPREL14
-#define R_IA64_TPREL22 R_IA_64_TPREL22
-#define R_IA64_TPREL64I R_IA_64_TPREL64I
-#define R_IA64_TPREL64MSB R_IA_64_TPREL64MSB
-#define R_IA64_TPREL64LSB R_IA_64_TPREL64LSB
-#define R_IA64_LTOFF_TPREL22 R_IA_64_LTOFF_TPREL22
-#define R_IA64_DTPMOD64MSB R_IA_64_DTPMOD64MSB
-#define R_IA64_DTPMOD64LSB R_IA_64_DTPMOD64LSB
-#define R_IA64_LTOFF_DTPMOD22 R_IA_64_LTOFF_DTPMOD22
-#define R_IA64_DTPREL14 R_IA_64_DTPREL14
-#define R_IA64_DTPREL22 R_IA_64_DTPREL22
-#define R_IA64_DTPREL64I R_IA_64_DTPREL64I
-#define R_IA64_DTPREL32MSB R_IA_64_DTPREL32MSB
-#define R_IA64_DTPREL32LSB R_IA_64_DTPREL32LSB
-#define R_IA64_DTPREL64MSB R_IA_64_DTPREL64MSB
-#define R_IA64_DTPREL64LSB R_IA_64_DTPREL64LSB
-#define R_IA64_LTOFF_DTPREL22 R_IA_64_LTOFF_DTPREL22
-
-#define R_MIPS_NONE 0 /* No reloc */
-#define R_MIPS_16 1 /* Direct 16 bit */
-#define R_MIPS_32 2 /* Direct 32 bit */
-#define R_MIPS_REL32 3 /* PC relative 32 bit */
-#define R_MIPS_26 4 /* Direct 26 bit shifted */
-#define R_MIPS_HI16 5 /* High 16 bit */
-#define R_MIPS_LO16 6 /* Low 16 bit */
-#define R_MIPS_GPREL16 7 /* GP relative 16 bit */
-#define R_MIPS_LITERAL 8 /* 16 bit literal entry */
-#define R_MIPS_GOT16 9 /* 16 bit GOT entry */
-#define R_MIPS_PC16 10 /* PC relative 16 bit */
-#define R_MIPS_CALL16 11 /* 16 bit GOT entry for function */
-#define R_MIPS_GPREL32 12 /* GP relative 32 bit */
-#define R_MIPS_64 18 /* Direct 64 bit */
-#define R_MIPS_GOTHI16 21 /* GOT HI 16 bit */
-#define R_MIPS_GOTLO16 22 /* GOT LO 16 bit */
-#define R_MIPS_CALLHI16 30 /* upper 16 bit GOT entry for function */
-#define R_MIPS_CALLLO16 31 /* lower 16 bit GOT entry for function */
-
-#define R_PPC_NONE 0 /* No relocation. */
-#define R_PPC_ADDR32 1
-#define R_PPC_ADDR24 2
-#define R_PPC_ADDR16 3
-#define R_PPC_ADDR16_LO 4
-#define R_PPC_ADDR16_HI 5
-#define R_PPC_ADDR16_HA 6
-#define R_PPC_ADDR14 7
-#define R_PPC_ADDR14_BRTAKEN 8
-#define R_PPC_ADDR14_BRNTAKEN 9
-#define R_PPC_REL24 10
-#define R_PPC_REL14 11
-#define R_PPC_REL14_BRTAKEN 12
-#define R_PPC_REL14_BRNTAKEN 13
-#define R_PPC_GOT16 14
-#define R_PPC_GOT16_LO 15
-#define R_PPC_GOT16_HI 16
-#define R_PPC_GOT16_HA 17
-#define R_PPC_PLTREL24 18
-#define R_PPC_COPY 19
-#define R_PPC_GLOB_DAT 20
-#define R_PPC_JMP_SLOT 21
-#define R_PPC_RELATIVE 22
-#define R_PPC_LOCAL24PC 23
-#define R_PPC_UADDR32 24
-#define R_PPC_UADDR16 25
-#define R_PPC_REL32 26
-#define R_PPC_PLT32 27
-#define R_PPC_PLTREL32 28
-#define R_PPC_PLT16_LO 29
-#define R_PPC_PLT16_HI 30
-#define R_PPC_PLT16_HA 31
-#define R_PPC_SDAREL16 32
-#define R_PPC_SECTOFF 33
-#define R_PPC_SECTOFF_LO 34
-#define R_PPC_SECTOFF_HI 35
-#define R_PPC_SECTOFF_HA 36
-
-/*
- * 64-bit relocations
- */
-#define R_PPC64_ADDR64 38
-#define R_PPC64_ADDR16_HIGHER 39
-#define R_PPC64_ADDR16_HIGHERA 40
-#define R_PPC64_ADDR16_HIGHEST 41
-#define R_PPC64_ADDR16_HIGHESTA 42
-#define R_PPC64_UADDR64 43
-#define R_PPC64_REL64 44
-#define R_PPC64_PLT64 45
-#define R_PPC64_PLTREL64 46
-#define R_PPC64_TOC16 47
-#define R_PPC64_TOC16_LO 48
-#define R_PPC64_TOC16_HI 49
-#define R_PPC64_TOC16_HA 50
-#define R_PPC64_TOC 51
-#define R_PPC64_DTPMOD64 68
-#define R_PPC64_TPREL64 73
-#define R_PPC64_DTPREL64 78
-
-/*
- * TLS relocations
- */
-#define R_PPC_TLS 67
-#define R_PPC_DTPMOD32 68
-#define R_PPC_TPREL16 69
-#define R_PPC_TPREL16_LO 70
-#define R_PPC_TPREL16_HI 71
-#define R_PPC_TPREL16_HA 72
-#define R_PPC_TPREL32 73
-#define R_PPC_DTPREL16 74
-#define R_PPC_DTPREL16_LO 75
-#define R_PPC_DTPREL16_HI 76
-#define R_PPC_DTPREL16_HA 77
-#define R_PPC_DTPREL32 78
-#define R_PPC_GOT_TLSGD16 79
-#define R_PPC_GOT_TLSGD16_LO 80
-#define R_PPC_GOT_TLSGD16_HI 81
-#define R_PPC_GOT_TLSGD16_HA 82
-#define R_PPC_GOT_TLSLD16 83
-#define R_PPC_GOT_TLSLD16_LO 84
-#define R_PPC_GOT_TLSLD16_HI 85
-#define R_PPC_GOT_TLSLD16_HA 86
-#define R_PPC_GOT_TPREL16 87
-#define R_PPC_GOT_TPREL16_LO 88
-#define R_PPC_GOT_TPREL16_HI 89
-#define R_PPC_GOT_TPREL16_HA 90
-
-/*
- * The remaining relocs are from the Embedded ELF ABI, and are not in the
- * SVR4 ELF ABI.
- */
-
-#define R_PPC_EMB_NADDR32 101
-#define R_PPC_EMB_NADDR16 102
-#define R_PPC_EMB_NADDR16_LO 103
-#define R_PPC_EMB_NADDR16_HI 104
-#define R_PPC_EMB_NADDR16_HA 105
-#define R_PPC_EMB_SDAI16 106
-#define R_PPC_EMB_SDA2I16 107
-#define R_PPC_EMB_SDA2REL 108
-#define R_PPC_EMB_SDA21 109
-#define R_PPC_EMB_MRKREF 110
-#define R_PPC_EMB_RELSEC16 111
-#define R_PPC_EMB_RELST_LO 112
-#define R_PPC_EMB_RELST_HI 113
-#define R_PPC_EMB_RELST_HA 114
-#define R_PPC_EMB_BIT_FLD 115
-#define R_PPC_EMB_RELSDA 116
-
-#define R_SH_NONE 0
-#define R_SH_DIR32 1
-#define R_SH_REL32 2
-#define R_SH_DIR8WPN 3
-#define R_SH_IND12W 4
-#define R_SH_DIR8WPL 5
-#define R_SH_DIR8WPZ 6
-#define R_SH_DIR8BP 7
-#define R_SH_DIR8W 8
-#define R_SH_DIR8L 9
-#define R_SH_GOT32 0xa0
-#define R_SH_PLT32 0xa1
-#define R_SH_COPY 0xa2
-#define R_SH_GLOB_DAT 0xa3
-#define R_SH_JMP_SLOT 0xa4
-#define R_SH_RELATIVE 0xa5
-#define R_SH_GOTOFF 0xa6
-#define R_SH_GOTPC 0xa7
-
-#define R_SPARC_NONE 0
-#define R_SPARC_8 1
-#define R_SPARC_16 2
-#define R_SPARC_32 3
-#define R_SPARC_DISP8 4
-#define R_SPARC_DISP16 5
-#define R_SPARC_DISP32 6
-#define R_SPARC_WDISP30 7
-#define R_SPARC_WDISP22 8
-#define R_SPARC_HI22 9
-#define R_SPARC_22 10
-#define R_SPARC_13 11
-#define R_SPARC_LO10 12
-#define R_SPARC_GOT10 13
-#define R_SPARC_GOT13 14
-#define R_SPARC_GOT22 15
-#define R_SPARC_PC10 16
-#define R_SPARC_PC22 17
-#define R_SPARC_WPLT30 18
-#define R_SPARC_COPY 19
-#define R_SPARC_GLOB_DAT 20
-#define R_SPARC_JMP_SLOT 21
-#define R_SPARC_RELATIVE 22
-#define R_SPARC_UA32 23
-#define R_SPARC_PLT32 24
-#define R_SPARC_HIPLT22 25
-#define R_SPARC_LOPLT10 26
-#define R_SPARC_PCPLT32 27
-#define R_SPARC_PCPLT22 28
-#define R_SPARC_PCPLT10 29
-#define R_SPARC_10 30
-#define R_SPARC_11 31
-#define R_SPARC_64 32
-#define R_SPARC_OLO10 33
-#define R_SPARC_HH22 34
-#define R_SPARC_HM10 35
-#define R_SPARC_LM22 36
-#define R_SPARC_PC_HH22 37
-#define R_SPARC_PC_HM10 38
-#define R_SPARC_PC_LM22 39
-#define R_SPARC_WDISP16 40
-#define R_SPARC_WDISP19 41
-#define R_SPARC_GLOB_JMP 42
-#define R_SPARC_7 43
-#define R_SPARC_5 44
-#define R_SPARC_6 45
-#define R_SPARC_DISP64 46
-#define R_SPARC_PLT64 47
-#define R_SPARC_HIX22 48
-#define R_SPARC_LOX10 49
-#define R_SPARC_H44 50
-#define R_SPARC_M44 51
-#define R_SPARC_L44 52
-#define R_SPARC_REGISTER 53
-#define R_SPARC_UA64 54
-#define R_SPARC_UA16 55
-#define R_SPARC_TLS_GD_HI22 56
-#define R_SPARC_TLS_GD_LO10 57
-#define R_SPARC_TLS_GD_ADD 58
-#define R_SPARC_TLS_GD_CALL 59
-#define R_SPARC_TLS_LDM_HI22 60
-#define R_SPARC_TLS_LDM_LO10 61
-#define R_SPARC_TLS_LDM_ADD 62
-#define R_SPARC_TLS_LDM_CALL 63
-#define R_SPARC_TLS_LDO_HIX22 64
-#define R_SPARC_TLS_LDO_LOX10 65
-#define R_SPARC_TLS_LDO_ADD 66
-#define R_SPARC_TLS_IE_HI22 67
-#define R_SPARC_TLS_IE_LO10 68
-#define R_SPARC_TLS_IE_LD 69
-#define R_SPARC_TLS_IE_LDX 70
-#define R_SPARC_TLS_IE_ADD 71
-#define R_SPARC_TLS_LE_HIX22 72
-#define R_SPARC_TLS_LE_LOX10 73
-#define R_SPARC_TLS_DTPMOD32 74
-#define R_SPARC_TLS_DTPMOD64 75
-#define R_SPARC_TLS_DTPOFF32 76
-#define R_SPARC_TLS_DTPOFF64 77
-#define R_SPARC_TLS_TPOFF32 78
-#define R_SPARC_TLS_TPOFF64 79
-
-#define R_X86_64_NONE 0 /* No relocation. */
-#define R_X86_64_64 1 /* Add 64 bit symbol value. */
-#define R_X86_64_PC32 2 /* PC-relative 32 bit signed sym value. */
-#define R_X86_64_GOT32 3 /* PC-relative 32 bit GOT offset. */
-#define R_X86_64_PLT32 4 /* PC-relative 32 bit PLT offset. */
-#define R_X86_64_COPY 5 /* Copy data from shared object. */
-#define R_X86_64_GLOB_DAT 6 /* Set GOT entry to data address. */
-#define R_X86_64_JMP_SLOT 7 /* Set GOT entry to code address. */
-#define R_X86_64_RELATIVE 8 /* Add load address of shared object. */
-#define R_X86_64_GOTPCREL 9 /* Add 32 bit signed pcrel offset to GOT. */
-#define R_X86_64_32 10 /* Add 32 bit zero extended symbol value */
-#define R_X86_64_32S 11 /* Add 32 bit sign extended symbol value */
-#define R_X86_64_16 12 /* Add 16 bit zero extended symbol value */
-#define R_X86_64_PC16 13 /* Add 16 bit signed extended pc relative symbol value */
-#define R_X86_64_8 14 /* Add 8 bit zero extended symbol value */
-#define R_X86_64_PC8 15 /* Add 8 bit signed extended pc relative symbol value */
-#define R_X86_64_DTPMOD64 16 /* ID of module containing symbol */
-#define R_X86_64_DTPOFF64 17 /* Offset in TLS block */
-#define R_X86_64_TPOFF64 18 /* Offset in static TLS block */
-#define R_X86_64_TLSGD 19 /* PC relative offset to GD GOT entry */
-#define R_X86_64_TLSLD 20 /* PC relative offset to LD GOT entry */
-#define R_X86_64_DTPOFF32 21 /* Offset in TLS block */
-#define R_X86_64_GOTTPOFF 22 /* PC relative offset to IE GOT entry */
-#define R_X86_64_TPOFF32 23 /* Offset in static TLS block */
-#define R_X86_64_IRELATIVE 37
-
-#define R_390_NONE 0
-#define R_390_8 1
-#define R_390_12 2
-#define R_390_16 3
-#define R_390_32 4
-#define R_390_PC32 5
-#define R_390_GOT12 6
-#define R_390_GOT32 7
-#define R_390_PLT32 8
-#define R_390_COPY 9
-#define R_390_GLOB_DAT 10
-#define R_390_JMP_SLOT 11
-#define R_390_RELATIVE 12
-#define R_390_GOTOFF 13
-#define R_390_GOTPC 14
-#define R_390_GOT16 15
-#define R_390_PC16 16
-#define R_390_PC16DBL 17
-#define R_390_PLT16DBL 18
-#define R_390_PC32DBL 19
-#define R_390_PLT32DBL 20
-#define R_390_GOTPCDBL 21
-#define R_390_64 22
-#define R_390_PC64 23
-#define R_390_GOT64 24
-#define R_390_PLT64 25
-#define R_390_GOTENT 26
+#define STN_UNDEF 0 /* Undefined symbol index. */
#endif /* !_SYS_ELF_COMMON_H_ */
diff --git a/winsup/cygwin/include/sys/elf_generic.h b/winsup/cygwin/include/sys/elf_generic.h
index 95a682f25..dbe9f1e83 100644
--- a/winsup/cygwin/include/sys/elf_generic.h
+++ b/winsup/cygwin/include/sys/elf_generic.h
@@ -23,11 +23,11 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD$
+ * $FreeBSD: src/sys/sys/elf_generic.h,v 1.6 2002/07/20 02:56:11 peter Exp $
*/
#ifndef _SYS_ELF_GENERIC_H_
-#define _SYS_ELF_GENERIC_H_ 1
+#define _SYS_ELF_GENERIC_H_ 1
#include <sys/cdefs.h>
@@ -36,30 +36,43 @@
* needing to know the word size.
*/
+#ifndef __ELF_WORD_SIZE
+# define __ELF_WORD_SIZE 32
+#endif
+
#if __ELF_WORD_SIZE != 32 && __ELF_WORD_SIZE != 64
#error "__ELF_WORD_SIZE must be defined as 32 or 64"
#endif
-#define ELF_CLASS __CONCAT(ELFCLASS,__ELF_WORD_SIZE)
+#define ELF_CLASS __CONCAT(ELFCLASS,__ELF_WORD_SIZE)
#if BYTE_ORDER == LITTLE_ENDIAN
-#define ELF_DATA ELFDATA2LSB
+#define ELF_DATA ELFDATA2LSB
#elif BYTE_ORDER == BIG_ENDIAN
-#define ELF_DATA ELFDATA2MSB
+#define ELF_DATA ELFDATA2MSB
#else
#error "Unknown byte order"
#endif
-#define __elfN(x) __CONCAT(__CONCAT(__CONCAT(elf,__ELF_WORD_SIZE),_),x)
-#define __ElfN(x) __CONCAT(__CONCAT(__CONCAT(Elf,__ELF_WORD_SIZE),_),x)
-#define __ELFN(x) __CONCAT(__CONCAT(__CONCAT(ELF,__ELF_WORD_SIZE),_),x)
-#define __ElfType(x) typedef __ElfN(x) __CONCAT(Elf_,x)
+#if __ELF_WORD_SIZE == 32
+#define __elfN(x) elf32_##x
+#define __ElfN(x) Elf32_##x
+#define __ELFN(x) ELF32_##x
+#else
+#define __elfN(x) elf364_##x
+#define __ElfN(x) Elf364_##x
+#define __ELFN(x) ELF364_##x
+#endif
+#define __ElfType(x) typedef __ElfN(x) Elf_##x
+#define FOO
__ElfType(Addr);
__ElfType(Half);
__ElfType(Off);
__ElfType(Sword);
__ElfType(Word);
+__ElfType(Size);
+__ElfType(Hashelt);
__ElfType(Ehdr);
__ElfType(Shdr);
__ElfType(Phdr);
@@ -67,22 +80,12 @@ __ElfType(Dyn);
__ElfType(Rel);
__ElfType(Rela);
__ElfType(Sym);
-__ElfType(Verdef);
-__ElfType(Verdaux);
-__ElfType(Verneed);
-__ElfType(Vernaux);
-__ElfType(Versym);
-
-/* Non-standard ELF types. */
-__ElfType(Hashelt);
-__ElfType(Size);
-__ElfType(Ssize);
-#define ELF_R_SYM __ELFN(R_SYM)
-#define ELF_R_TYPE __ELFN(R_TYPE)
-#define ELF_R_INFO __ELFN(R_INFO)
-#define ELF_ST_BIND __ELFN(ST_BIND)
-#define ELF_ST_TYPE __ELFN(ST_TYPE)
-#define ELF_ST_INFO __ELFN(ST_INFO)
+#define ELF_R_SYM __ELFN(R_SYM)
+#define ELF_R_TYPE __ELFN(R_TYPE)
+#define ELF_R_INFO __ELFN(R_INFO)
+#define ELF_ST_BIND __ELFN(ST_BIND)
+#define ELF_ST_TYPE __ELFN(ST_TYPE)
+#define ELF_ST_INFO __ELFN(ST_INFO)
#endif /* !_SYS_ELF_GENERIC_H_ */
diff --git a/winsup/cygwin/include/sys/wait.h b/winsup/cygwin/include/sys/wait.h
index be3e56fd2..5dea7283a 100644
--- a/winsup/cygwin/include/sys/wait.h
+++ b/winsup/cygwin/include/sys/wait.h
@@ -1,6 +1,6 @@
/* sys/wait.h
- Copyright 1997, 1998, 2001, 2002, 2003, 2004, 2006, 2011, 2012 Red Hat, Inc.
+ Copyright 1997, 1998, 2001, 2002, 2003, 2004, 2006, 2011 Red Hat, Inc.
This file is part of Cygwin.
@@ -44,10 +44,6 @@ pid_t waitpid (pid_t __pid, __wait_status_ptr_t __status, int __options);
pid_t wait3 (__wait_status_ptr_t __status, int __options, struct rusage *__rusage);
pid_t wait4 (pid_t __pid, __wait_status_ptr_t __status, int __options, struct rusage *__rusage);
-#ifdef _COMPILING_NEWLIB
-pid_t _wait (__wait_status_ptr_t __status);
-#endif
-
union wait
{
int w_status;
diff --git a/winsup/cygwin/kernel32.cc b/winsup/cygwin/kernel32.cc
index e95a43121..fd25358aa 100644
--- a/winsup/cygwin/kernel32.cc
+++ b/winsup/cygwin/kernel32.cc
@@ -1,6 +1,6 @@
/* kernel32.cc: Win32 replacement functions.
- Copyright 2008, 2010, 2011, 2012 Red Hat, Inc.
+ Copyright 2008, 2010, 2011 Red Hat, Inc.
This file is part of Cygwin.
@@ -11,6 +11,7 @@ details. */
#include "winsup.h"
#include "shared_info.h"
#include "ntdll.h"
+#include <wchar.h>
/* Implement CreateEvent/OpenEvent so that named objects are always created in
Cygwin shared object namespace. */
@@ -307,8 +308,8 @@ CreateFileMappingW (HANDLE hFile, LPSECURITY_ATTRIBUTES lpAttributes,
| PAGE_WRITECOPY | PAGE_EXECUTE
| PAGE_EXECUTE_READ | PAGE_EXECUTE_READWRITE
| PAGE_EXECUTE_WRITECOPY);
- ULONG attribs = flProtect & (SEC_COMMIT | SEC_IMAGE | SEC_NOCACHE
- | SEC_RESERVE);
+ ULONG attribs = flProtect & (SEC_BASED | SEC_NO_CHANGE | SEC_IMAGE | SEC_VLM
+ | SEC_RESERVE | SEC_COMMIT | SEC_NOCACHE);
LARGE_INTEGER size = {{ LowPart : dwMaximumSizeLow,
HighPart : dwMaximumSizeHigh }};
PLARGE_INTEGER psize = size.QuadPart ? &size : NULL;
diff --git a/winsup/cygwin/lib/_cygwin_crt0_common.cc b/winsup/cygwin/lib/_cygwin_crt0_common.cc
index a0dfb8fe4..d44b7c453 100644
--- a/winsup/cygwin/lib/_cygwin_crt0_common.cc
+++ b/winsup/cygwin/lib/_cygwin_crt0_common.cc
@@ -49,6 +49,7 @@ extern "C"
{
char **environ;
int _fmode;
+void _pei386_runtime_relocator (void);
extern char __RUNTIME_PSEUDO_RELOC_LIST__;
extern char __RUNTIME_PSEUDO_RELOC_LIST_END__;
@@ -154,7 +155,7 @@ _cygwin_crt0_common (MainFunc f, per_process *u)
u->image_base = &_image_base__;
/* This is actually a dummy call to force the linker to load this
symbol for older apps which need it. */
- _pei386_runtime_relocator (NULL);
+ _pei386_runtime_relocator ();
return 1;
}
} /* "C" */
diff --git a/winsup/cygwin/lib/crt0.h b/winsup/cygwin/lib/crt0.h
index 878db05ed..461ea9b2e 100644
--- a/winsup/cygwin/lib/crt0.h
+++ b/winsup/cygwin/lib/crt0.h
@@ -12,7 +12,7 @@ details. */
extern "C" {
#endif
-#include "winlean.h"
+#include <windows.h>
struct per_process;
typedef int (*MainFunc) (int argc, char *argv[], char **env);
int __stdcall _cygwin_crt0_common (MainFunc, struct per_process *);
diff --git a/winsup/cygwin/libc/inet_addr.c b/winsup/cygwin/libc/inet_addr.c
index 465e86ed3..24028ad95 100644
--- a/winsup/cygwin/libc/inet_addr.c
+++ b/winsup/cygwin/libc/inet_addr.c
@@ -72,7 +72,8 @@ static const char rcsid[] = "$Id$";
#ifndef __CYGWIN__
__FBSDID("$FreeBSD$");
#else
-#include "winsup.h"
+#define __INSIDE_CYGWIN__
+#define __INSIDE_CYGWIN_NET__
#endif
#ifndef __CYGWIN__
diff --git a/winsup/cygwin/libc/inet_network.c b/winsup/cygwin/libc/inet_network.c
index 01e1a7682..52286f453 100644
--- a/winsup/cygwin/libc/inet_network.c
+++ b/winsup/cygwin/libc/inet_network.c
@@ -34,7 +34,8 @@ static const char sccsid[] = "@(#)inet_network.c 8.1 (Berkeley) 6/4/93";
#ifndef __CYGWIN__
__FBSDID("$FreeBSD$");
#else
-#include "winsup.h"
+#define __INSIDE_CYGWIN__
+#define __INSIDE_CYGWIN_NET__
#endif
#ifndef __CYGWIN__
diff --git a/winsup/cygwin/libc/minires-os-if.c b/winsup/cygwin/libc/minires-os-if.c
index 46e8297fd..f59369827 100644
--- a/winsup/cygwin/libc/minires-os-if.c
+++ b/winsup/cygwin/libc/minires-os-if.c
@@ -1,6 +1,6 @@
/* minires-os-if.c. Stub synchronous resolver for Cygwin.
- Copyright 2006, 2007, 2008, 2009, 2011, 2012 Red Hat, Inc.
+ Copyright 2006, 2007, 2008, 2009, 2011 Red Hat, Inc.
Written by Pierre A. Humblet <Pierre.Humblet@ieee.org>
@@ -10,14 +10,6 @@ This software is a copyrighted work licensed under the terms of the
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
details. */
-#define __INSIDE_CYGWIN_NET__
-#define USE_SYS_TYPES_FD_SET
-#include <winsup.h>
-#include <ws2tcpip.h>
-#include <iphlpapi.h>
-#include <windns.h>
-#include "ntdll.h"
-#undef h_errno
#include "minires.h"
#ifdef __CYGWIN__
@@ -32,6 +24,13 @@ details. */
#undef NOERROR
#undef DELETE
+#include <windows.h>
+#include <iphlpapi.h>
+#include <windns.h>
+#include <ntdef.h>
+#include "ntdll.h"
+#include <wchar.h>
+
/***********************************************************************
* write_record: Translates a Windows DNS record into a compressed record
***********************************************************************/
diff --git a/winsup/cygwin/libc/minires.h b/winsup/cygwin/libc/minires.h
index 028b1e084..cda0b4c51 100644
--- a/winsup/cygwin/libc/minires.h
+++ b/winsup/cygwin/libc/minires.h
@@ -1,6 +1,6 @@
/* minires.h. Stub synchronous resolver for Cygwin.
- Copyright 2006, 2012 Red Hat, Inc.
+ Copyright 2006 Red Hat, Inc.
Written by Pierre A. Humblet <Pierre.Humblet@ieee.org>
@@ -10,10 +10,13 @@ This software is a copyrighted work licensed under the terms of the
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
details. */
+#define __INSIDE_CYGWIN_NET__
+
#include "winsup.h"
#include <string.h>
#include <malloc.h>
#include <stdlib.h>
+#include <netdb.h>
#include <ctype.h>
#include <sys/time.h>
#include <sys/socket.h>
@@ -24,7 +27,6 @@ details. */
#include <stdio.h>
#include <stdarg.h>
#include <sys/unistd.h>
-#define __INSIDE_CYGWIN_NET__
#include <netdb.h>
#include <arpa/nameser.h>
#include <resolv.h>
diff --git a/winsup/cygwin/libc/rcmd.cc b/winsup/cygwin/libc/rcmd.cc
index 16c05b01b..8012790ec 100644
--- a/winsup/cygwin/libc/rcmd.cc
+++ b/winsup/cygwin/libc/rcmd.cc
@@ -36,7 +36,6 @@ __FBSDID("$FreeBSD$");
#else
#define __INSIDE_CYGWIN_NET__
#include "winsup.h"
-#undef __INSIDE_CYGWIN_NET__
#endif
#ifndef __CYGWIN__
diff --git a/winsup/cygwin/miscfuncs.cc b/winsup/cygwin/miscfuncs.cc
index 10bf4f7e9..4a4cd3ee5 100644
--- a/winsup/cygwin/miscfuncs.cc
+++ b/winsup/cygwin/miscfuncs.cc
@@ -365,7 +365,7 @@ ReadPipeOverlapped (HANDLE h, PVOID buf, DWORD len, LPDWORD ret_len,
}
BOOL WINAPI
-WritePipeOverlapped (HANDLE h, LPCVOID buf, DWORD len, LPDWORD ret_len,
+WritePipeOverlapped (HANDLE h, PCVOID buf, DWORD len, LPDWORD ret_len,
DWORD timeout)
{
OVERLAPPED ov;
diff --git a/winsup/cygwin/miscfuncs.h b/winsup/cygwin/miscfuncs.h
index ff5fa1ef7..9ec6f5916 100644
--- a/winsup/cygwin/miscfuncs.h
+++ b/winsup/cygwin/miscfuncs.h
@@ -1,7 +1,7 @@
/* miscfuncs.h: main Cygwin header file.
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
- 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Red Hat, Inc.
+ 2005, 2006, 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
This file is part of Cygwin.
@@ -21,7 +21,7 @@ BOOL WINAPI CreatePipeOverlapped (PHANDLE read_handle, PHANDLE write_handle,
LPSECURITY_ATTRIBUTES sa);
BOOL WINAPI ReadPipeOverlapped (HANDLE h, PVOID buf, DWORD len,
LPDWORD ret_len, DWORD timeout);
-BOOL WINAPI WritePipeOverlapped (HANDLE h, LPCVOID buf, DWORD len,
+BOOL WINAPI WritePipeOverlapped (HANDLE h, PCVOID buf, DWORD len,
LPDWORD ret_len, DWORD timeout);
extern "C" void yield ();
diff --git a/winsup/cygwin/mount.cc b/winsup/cygwin/mount.cc
index 125f248e4..ddbccae21 100644
--- a/winsup/cygwin/mount.cc
+++ b/winsup/cygwin/mount.cc
@@ -402,7 +402,6 @@ fs_info::update (PUNICODE_STRING upath, HANDLE in_vol)
if (!got_fs ()
&& !is_ntfs (RtlEqualUnicodeString (&fsname, &ro_u_ntfs, FALSE))
&& !is_fat (RtlEqualUnicodePathPrefix (&fsname, &ro_u_fat, TRUE))
- && !is_refs (RtlEqualUnicodeString (&fsname, &ro_u_refs, FALSE))
&& !is_csc_cache (RtlEqualUnicodeString (&fsname, &ro_u_csc, FALSE))
&& is_cdrom (ffdi.DeviceType == FILE_DEVICE_CD_ROM))
is_udf (RtlEqualUnicodeString (&fsname, &ro_u_udf, FALSE));
@@ -648,6 +647,7 @@ mount_info::conv_to_win32_path (const char *src_path, char *dst, device& dev,
if (!src_path[n])
{
+ unit = 0;
dst[0] = '\0';
if (mount_table->cygdrive_len > 1)
dev = *cygdrive_dev;
@@ -1899,34 +1899,6 @@ getmntent (FILE *)
return mount_table->getmntent (_my_tls.locals.iteration++);
}
-extern "C" struct mntent *
-getmntent_r (FILE *, struct mntent *mntbuf, char *buf, int buflen)
-{
- struct mntent *mnt = mount_table->getmntent (_my_tls.locals.iteration++);
- int fsname_len, dir_len, type_len, tmplen = buflen;
-
- if (!mnt)
- return NULL;
-
- fsname_len = strlen (mnt->mnt_fsname) + 1;
- dir_len = strlen (mnt->mnt_dir) + 1;
- type_len = strlen (mnt->mnt_type) + 1;
-
- snprintf (buf, buflen, "%s%c%s%c%s%c%s", mnt->mnt_fsname, '\0',
- mnt->mnt_dir, '\0', mnt->mnt_type, '\0', mnt->mnt_opts);
-
- mntbuf->mnt_fsname = buf;
- tmplen -= fsname_len;
- mntbuf->mnt_dir = tmplen > 0 ? buf + fsname_len : (char *)"";
- tmplen -= dir_len;
- mntbuf->mnt_type = tmplen > 0 ? buf + fsname_len + dir_len : (char *)"";
- tmplen -= type_len;
- mntbuf->mnt_opts = tmplen > 0 ? buf + fsname_len + dir_len + type_len : (char *)"";
- mntbuf->mnt_freq = mnt->mnt_freq;
- mntbuf->mnt_passno = mnt->mnt_passno;
- return mntbuf;
-}
-
extern "C" int
endmntent (FILE *)
{
diff --git a/winsup/cygwin/mount.h b/winsup/cygwin/mount.h
index 1d3b7451b..187972464 100644
--- a/winsup/cygwin/mount.h
+++ b/winsup/cygwin/mount.h
@@ -29,7 +29,6 @@ enum fs_info_type
none = 0,
fat,
ntfs,
- refs,
samba,
nfs,
netapp,
@@ -99,7 +98,6 @@ class fs_info
IMPLEMENT_STATUS_FLAG (bool, has_dos_filenames_only)
IMPLEMENT_FS_FLAG (fat)
IMPLEMENT_FS_FLAG (ntfs)
- IMPLEMENT_FS_FLAG (refs)
IMPLEMENT_FS_FLAG (samba)
IMPLEMENT_FS_FLAG (nfs)
IMPLEMENT_FS_FLAG (netapp)
diff --git a/winsup/cygwin/net.cc b/winsup/cygwin/net.cc
index 8b91e940a..a0a83b55a 100644
--- a/winsup/cygwin/net.cc
+++ b/winsup/cygwin/net.cc
@@ -12,27 +12,27 @@ details. */
/* #define DEBUG_NEST_ON 1 */
#define __INSIDE_CYGWIN_NET__
-#define USE_SYS_TYPES_FD_SET
-#define __WSA_ERR_MACROS_DEFINED
-/* FIXME: Collision with different declarations of if_nametoindex and
- if_indextoname functions in iphlpapi.h since Vista.
- TODO: Convert if_nametoindex to cygwin_if_nametoindex and call
- system functions on Vista and later. */
-#define _INC_NETIOAPI
+
#include "winsup.h"
-#include <ws2tcpip.h>
-#include <mswsock.h>
-#include <iphlpapi.h>
+
+/* unfortunately defined in windows header file but used in
+ cygwin header files too */
+#undef NOERROR
+#undef DELETE
+
#include "miscfuncs.h"
#include <ctype.h>
#include <wchar.h>
+
#include <stdlib.h>
#define gethostname cygwin_gethostname
#include <unistd.h>
#undef gethostname
#include <netdb.h>
-#include <cygwin/in.h>
#include <asm/byteorder.h>
+#define USE_SYS_TYPES_FD_SET
+#include <winsock2.h>
+#include <iphlpapi.h>
#include <assert.h>
#include "cygerrno.h"
#include "security.h"
@@ -46,13 +46,10 @@ details. */
#include "sigproc.h"
#include "registry.h"
#include "cygtls.h"
+#include "cygwin/in6.h"
#include "ifaddrs.h"
#include "tls_pbuf.h"
#include "ntdll.h"
-
-/* Unfortunately defined in Windows header files and arpa/nameser_compat.h. */
-#undef NOERROR
-#undef DELETE
#define _CYGWIN_IN_H
#include <resolv.h>
@@ -715,11 +712,7 @@ cygwin_recvfrom (int fd, void *buf, size_t len, int flags,
myfault efault;
if (efault.faulted (EFAULT) || !fh)
res = -1;
- else
- /* Originally we shortcircuited here if res == 0.
- Allow 0 bytes buffer. This is valid in POSIX and handled in
- fhandler_socket::recv_internal. If we shortcircuit, we fail
- to deliver valid error conditions and peer address. */
+ else if ((res = len) != 0)
res = fh->recvfrom (buf, len, flags, from, fromlen);
syscall_printf ("%R = recvfrom(%d, %p, %d, %x, %p, %p)",
@@ -1472,11 +1465,7 @@ cygwin_recv (int fd, void *buf, size_t len, int flags)
myfault efault;
if (efault.faulted (EFAULT) || !fh)
res = -1;
- else
- /* Originally we shortcircuited here if res == 0.
- Allow 0 bytes buffer. This is valid in POSIX and handled in
- fhandler_socket::recv_internal. If we shortcircuit, we fail
- to deliver valid error conditions. */
+ else if ((res = len) != 0)
res = fh->recvfrom (buf, len, flags, NULL, NULL);
syscall_printf ("%R = recv(%d, %p, %d, %x)", res, fd, buf, len, flags);
@@ -1525,8 +1514,6 @@ getdomainname (char *domain, size_t len)
/* Fill out an ifconf struct. */
-#ifndef __MINGW64_VERSION_MAJOR
-
/* Vista/Longhorn: unicast address has additional OnLinkPrefixLength member. */
typedef struct _IP_ADAPTER_UNICAST_ADDRESS_LH {
_ANONYMOUS_UNION union {
@@ -1584,9 +1571,29 @@ typedef struct _IP_ADAPTER_ADDRESSES_LH {
ULONG Ipv6Metric;
} IP_ADAPTER_ADDRESSES_LH,*PIP_ADAPTER_ADDRESSES_LH;
+/* We can't include ws2tcpip.h. */
+
#define SIO_GET_INTERFACE_LIST _IOR('t', 127, u_long)
-#endif /* !__MINGW64_VERSION_MAJOR */
+struct sockaddr_in6_old {
+ short sin6_family;
+ u_short sin6_port;
+ u_long sin6_flowinfo;
+ struct in6_addr sin6_addr;
+};
+
+typedef union sockaddr_gen{
+ struct sockaddr Address;
+ struct sockaddr_in AddressIn;
+ struct sockaddr_in6_old AddressIn6;
+} sockaddr_gen;
+
+typedef struct _INTERFACE_INFO {
+ u_long iiFlags;
+ sockaddr_gen iiAddress;
+ sockaddr_gen iiBroadcastAddress;
+ sockaddr_gen iiNetmask;
+} INTERFACE_INFO, *LPINTERFACE_INFO;
#ifndef IN_LOOPBACK
#define IN_LOOPBACK(a) ((((long int) (a)) & 0xff000000) == 0x7f000000)
@@ -2858,11 +2865,7 @@ cygwin_recvmsg (int fd, struct msghdr *msg, int flags)
else
{
res = check_iovec_for_read (msg->msg_iov, msg->msg_iovlen);
- /* Originally we shortcircuited here if res == 0.
- Allow 0 bytes buffer. This is valid in POSIX and handled in
- fhandler_socket::recv_internal. If we shortcircuit, we fail
- to deliver valid error conditions and peer address. */
- if (res >= 0)
+ if (res > 0)
res = fh->recvmsg (msg, flags);
}
@@ -3154,8 +3157,6 @@ inet_ntop6 (const u_char *src, char *dst, size_t size)
words[i / 2] |= (src[i] << ((1 - (i % 2)) << 3));
best.base = -1;
cur.base = -1;
- best.len = 0;
- cur.len = 0;
for (i = 0; i < (IN6ADDRSZ / INT16SZ); i++)
{
if (words[i] == 0)
@@ -4215,24 +4216,24 @@ w32_to_gai_err (int w32_err)
are implemented in ws2_32.dll. For older systems we use the ipv4-only
version above. */
-static void (WINAPI *ws_freeaddrinfo)(const struct addrinfo *);
-static int (WINAPI *ws_getaddrinfo)(const char *, const char *,
- const struct addrinfo *,
- struct addrinfo **);
-static int (WINAPI *ws_getnameinfo)(const struct sockaddr *, socklen_t,
- char *, size_t, char *, size_t, int);
+static void (WINAPI *freeaddrinfo)(const struct addrinfo *);
+static int (WINAPI *getaddrinfo)(const char *, const char *,
+ const struct addrinfo *,
+ struct addrinfo **);
+static int (WINAPI *getnameinfo)(const struct sockaddr *, socklen_t,
+ char *, size_t, char *, size_t, int);
static bool
get_ipv6_funcs (HMODULE lib)
{
- return ((ws_freeaddrinfo = (void (WINAPI *)(const struct addrinfo *))
+ return ((freeaddrinfo = (void (WINAPI *)(const struct addrinfo *))
GetProcAddress (lib, "freeaddrinfo"))
- && (ws_getaddrinfo = (int (WINAPI *)(const char *, const char *,
- const struct addrinfo *,
- struct addrinfo **))
+ && (getaddrinfo = (int (WINAPI *)(const char *, const char *,
+ const struct addrinfo *,
+ struct addrinfo **))
GetProcAddress (lib, "getaddrinfo"))
- && (ws_getnameinfo = (int (WINAPI *)(const struct sockaddr *,
- socklen_t, char *, size_t,
- char *, size_t, int))
+ && (getnameinfo = (int (WINAPI *)(const struct sockaddr *,
+ socklen_t, char *, size_t,
+ char *, size_t, int))
GetProcAddress (lib, "getnameinfo")));
}
@@ -4267,9 +4268,9 @@ load_ipv6_funcs ()
goto out;
FreeLibrary (lib);
}
- ws_freeaddrinfo = NULL;
- ws_getaddrinfo = NULL;
- ws_getnameinfo = NULL;
+ freeaddrinfo = NULL;
+ getaddrinfo = NULL;
+ getnameinfo = NULL;
out:
ipv6_inited = true;
@@ -4309,7 +4310,7 @@ cygwin_getaddrinfo (const char *hostname, const char *servname,
return EAI_NONAME;
}
load_ipv6 ();
- if (!ws_getaddrinfo)
+ if (!getaddrinfo)
return ipv4_getaddrinfo (hostname, servname, hints, res);
struct addrinfo nhints, *dupres;
@@ -4326,12 +4327,12 @@ cygwin_getaddrinfo (const char *hostname, const char *servname,
hints = &nhints;
nhints.ai_flags |= AI_ALL;
}
- int ret = w32_to_gai_err (ws_getaddrinfo (hostname, servname, hints, res));
+ int ret = w32_to_gai_err (getaddrinfo (hostname, servname, hints, res));
/* Always copy over to self-allocated memory. */
if (!ret)
{
dupres = ga_duplist (*res, false);
- ws_freeaddrinfo (*res);
+ freeaddrinfo (*res);
*res = dupres;
if (!dupres)
return EAI_MEMORY;
@@ -4351,12 +4352,12 @@ cygwin_getaddrinfo (const char *hostname, const char *servname,
struct addrinfo *v4res;
nhints = *hints;
nhints.ai_family = AF_INET;
- int ret2 = w32_to_gai_err (ws_getaddrinfo (hostname, servname,
- &nhints, &v4res));
+ int ret2 = w32_to_gai_err (getaddrinfo (hostname, servname,
+ &nhints, &v4res));
if (!ret2)
{
dupres = ga_duplist (v4res, true);
- ws_freeaddrinfo (v4res);
+ freeaddrinfo (v4res);
if (!dupres)
{
if (!ret)
@@ -4389,7 +4390,7 @@ cygwin_getnameinfo (const struct sockaddr *sa, socklen_t salen,
if (efault.faulted (EFAULT))
return EAI_SYSTEM;
load_ipv6 ();
- if (!ws_getnameinfo)
+ if (!getnameinfo)
return ipv4_getnameinfo (sa, salen, host, hostlen, serv, servlen, flags);
/* When the incoming port number does not resolve to a well-known service,
@@ -4414,8 +4415,8 @@ cygwin_getnameinfo (const struct sockaddr *sa, socklen_t salen,
if (!port || !getservbyport (port, flags & NI_DGRAM ? "udp" : "tcp"))
flags |= NI_NUMERICSERV;
}
- int ret = w32_to_gai_err (ws_getnameinfo (sa, salen, host, hostlen, serv,
- servlen, flags));
+ int ret = w32_to_gai_err (getnameinfo (sa, salen, host, hostlen, serv,
+ servlen, flags));
if (ret)
set_winsock_errno ();
return ret;
diff --git a/winsup/cygwin/ntdll.h b/winsup/cygwin/ntdll.h
index 2ca6a5ab3..7eee720aa 100644
--- a/winsup/cygwin/ntdll.h
+++ b/winsup/cygwin/ntdll.h
@@ -9,20 +9,70 @@
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
details. */
-#pragma once
-
-#ifndef __MINGW64_VERSION_MAJOR
-# include <ddk/ntstatus.h>
-#else
-# include <ntstatus.h>
+#ifndef _NTDLL_H
+#define _NTDLL_H 1
+
+/* NTSTATUS values. */
+#define STATUS_NOT_ALL_ASSIGNED ((NTSTATUS) 0x00000106)
+#define STATUS_OBJECT_NAME_EXISTS ((NTSTATUS) 0x40000000)
+#define STATUS_BUFFER_OVERFLOW ((NTSTATUS) 0x80000005)
+#define STATUS_NO_MORE_FILES ((NTSTATUS) 0x80000006)
+#ifdef STATUS_INVALID_INFO_CLASS /* Defined as unsigned value in subauth.h */
+#undef STATUS_INVALID_INFO_CLASS
+#endif
+#define STATUS_INVALID_INFO_CLASS ((NTSTATUS) 0xc0000003)
+#define STATUS_NOT_IMPLEMENTED ((NTSTATUS) 0xc0000002)
+#define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS) 0xc0000004)
+#ifdef STATUS_INVALID_HANDLE /* Defined as unsigned value in winbase.h */
+#undef STATUS_INVALID_HANDLE
#endif
+#define STATUS_INVALID_HANDLE ((NTSTATUS) 0xc0000008)
+#define STATUS_INVALID_PARAMETER ((NTSTATUS) 0xc000000d)
+#define STATUS_NO_SUCH_FILE ((NTSTATUS) 0xc000000f)
+#define STATUS_INVALID_DEVICE_REQUEST ((NTSTATUS) 0xc0000010)
+#define STATUS_END_OF_FILE ((NTSTATUS) 0xc0000011)
+#define STATUS_NO_MEDIA_IN_DEVICE ((NTSTATUS) 0xc0000013)
+#define STATUS_ACCESS_DENIED ((NTSTATUS) 0xc0000022)
+#define STATUS_BUFFER_TOO_SMALL ((NTSTATUS) 0xc0000023)
+#define STATUS_OBJECT_TYPE_MISMATCH ((NTSTATUS) 0xc0000024)
+#define STATUS_OBJECT_NAME_INVALID ((NTSTATUS) 0xc0000033)
+#define STATUS_OBJECT_NAME_NOT_FOUND ((NTSTATUS) 0xc0000034)
+#define STATUS_OBJECT_NAME_COLLISION ((NTSTATUS) 0xc0000035)
+#define STATUS_OBJECT_PATH_NOT_FOUND ((NTSTATUS) 0xc000003A)
+#define STATUS_SHARING_VIOLATION ((NTSTATUS) 0xc0000043)
+#define STATUS_EAS_NOT_SUPPORTED ((NTSTATUS) 0xc000004f)
+#define STATUS_EA_TOO_LARGE ((NTSTATUS) 0xc0000050)
+#define STATUS_NONEXISTENT_EA_ENTRY ((NTSTATUS) 0xc0000051)
+#define STATUS_NO_EAS_ON_FILE ((NTSTATUS) 0xc0000052)
+#define STATUS_LOCK_NOT_GRANTED ((NTSTATUS) 0xc0000055)
+#define STATUS_DELETE_PENDING ((NTSTATUS) 0xc0000056)
+#define STATUS_PROCEDURE_NOT_FOUND ((NTSTATUS) 0xc000007a)
+#define STATUS_DISK_FULL ((NTSTATUS) 0xc000007f)
+#define STATUS_WORKING_SET_QUOTA ((NTSTATUS) 0xc00000a1)
+#define STATUS_INSTANCE_NOT_AVAILABLE ((NTSTATUS) 0xc00000ab)
+#define STATUS_PIPE_NOT_AVAILABLE ((NTSTATUS) 0xc00000ac)
+#define STATUS_INVALID_PIPE_STATE ((NTSTATUS) 0xc00000ad)
+#define STATUS_PIPE_BUSY ((NTSTATUS) 0xc00000ae)
+#define STATUS_NOT_SUPPORTED ((NTSTATUS) 0xc00000bb)
+#define STATUS_BAD_NETWORK_PATH ((NTSTATUS) 0xc00000be)
+#define STATUS_INVALID_NETWORK_RESPONSE ((NTSTATUS) 0xc00000c3)
+#define STATUS_BAD_NETWORK_NAME ((NTSTATUS) 0xc00000cc)
+#define STATUS_DIRECTORY_NOT_EMPTY ((NTSTATUS) 0xc0000101)
+#define STATUS_PROCESS_IS_TERMINATING ((NTSTATUS) 0xc000010a)
+#define STATUS_CANNOT_DELETE ((NTSTATUS) 0xc0000121)
+#define STATUS_INVALID_LEVEL ((NTSTATUS) 0xc0000148)
+#define STATUS_DLL_NOT_FOUND ((NTSTATUS) 0xc0000135)
+#define STATUS_ENTRYPOINT_NOT_FOUND ((NTSTATUS) 0xc0000139)
+#define STATUS_NOT_FOUND ((NTSTATUS) 0xc0000225)
+#define STATUS_BAD_DLL_ENTRYPOINT ((NTSTATUS) 0xc0000251)
+#define STATUS_ILLEGAL_DLL_RELOCATION ((NTSTATUS) 0xc0000269)
/* custom status code: */
#define STATUS_ILLEGAL_DLL_PSEUDO_RELOCATION ((NTSTATUS) 0xe0000269)
#define NtCurrentProcess() ((HANDLE) 0xffffffff)
#define NtCurrentThread() ((HANDLE) 0xfffffffe)
-/* Creation information returned in IO_STATUS_BLOCK. */
+/* CreateDisposition in NtCreateFile call. */
#define FILE_SUPERSEDED 0
#define FILE_OPENED 1
#define FILE_CREATED 2
@@ -490,8 +540,7 @@ typedef enum _PROCESSINFOCLASS
ProcessVmCounters = 3,
ProcessTimes = 4,
ProcessSessionInformation = 24,
- ProcessWow64Information = 26,
- ProcessImageFileName = 27
+ ProcessWow64Information = 26
} PROCESSINFOCLASS;
typedef struct _DEBUG_BUFFER
@@ -973,13 +1022,11 @@ typedef struct _FILE_MAILSLOT_SET_INFORMATION
typedef VOID NTAPI (*PIO_APC_ROUTINE)(PVOID, PIO_STATUS_BLOCK, ULONG);
-#ifndef __MINGW64_VERSION_MAJOR
typedef enum _EVENT_TYPE
{
NotificationEvent = 0,
SynchronizationEvent
} EVENT_TYPE, *PEVENT_TYPE;
-#endif
typedef struct _EVENT_BASIC_INFORMATION
{
@@ -1046,21 +1093,11 @@ typedef struct _KEY_VALUE_PARTIAL_INFORMATION
UCHAR Data[1];
} KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION;
-#ifndef __MINGW64_VERSION_MAJOR
typedef enum _TIMER_TYPE
{
NotificationTimer,
SynchronisationTimer
} TIMER_TYPE, *PTIMER_TYPE;
-#endif
-
-#ifdef __MINGW64_VERSION_MAJOR
-typedef enum _SECTION_INHERIT
-{
- ViewShare = 1,
- ViewUnmap = 2
-} SECTION_INHERIT;
-#endif
typedef VOID (APIENTRY *PTIMER_APC_ROUTINE)(PVOID, ULONG, ULONG);
@@ -1215,11 +1252,7 @@ extern "C"
PSECURITY_DESCRIPTOR, PULONG);
VOID NTAPI RtlAcquirePebLock ();
NTSTATUS NTAPI RtlAddAccessAllowedAce (PACL, ULONG, ACCESS_MASK, PSID);
- NTSTATUS NTAPI RtlAddAccessAllowedAceEx (PACL, ULONG, ULONG, ACCESS_MASK,
- PSID);
NTSTATUS NTAPI RtlAddAccessDeniedAce (PACL, ULONG, ACCESS_MASK, PSID);
- NTSTATUS NTAPI RtlAddAccessDeniedAceEx (PACL, ULONG, ULONG, ACCESS_MASK,
- PSID);
NTSTATUS NTAPI RtlAddAce (PACL, ULONG, ULONG, PVOID, ULONG);
PVOID NTAPI RtlAllocateHeap (PVOID, ULONG, SIZE_T);
NTSTATUS NTAPI RtlAppendUnicodeToString (PUNICODE_STRING, PCWSTR);
@@ -1270,7 +1303,6 @@ extern "C"
PBOOLEAN);
PSID_IDENTIFIER_AUTHORITY NTAPI RtlIdentifierAuthoritySid (PSID);
VOID NTAPI RtlInitEmptyUnicodeString (PUNICODE_STRING, PCWSTR, USHORT);
- VOID NTAPI RtlInitAnsiString (PANSI_STRING, PCSTR);
NTSTATUS NTAPI RtlInitializeSid (PSID, PSID_IDENTIFIER_AUTHORITY, UCHAR);
VOID NTAPI RtlInitUnicodeString (PUNICODE_STRING, PCWSTR);
NTSTATUS NTAPI RtlIntegerToUnicodeString (ULONG, ULONG, PUNICODE_STRING);
@@ -1302,7 +1334,6 @@ extern "C"
BOOLEAN);
PUCHAR NTAPI RtlSubAuthorityCountSid (PSID);
PULONG NTAPI RtlSubAuthoritySid (PSID, ULONG);
- ULONG NTAPI RtlUnicodeStringToAnsiSize (PUNICODE_STRING);
NTSTATUS NTAPI RtlUnicodeStringToAnsiString (PANSI_STRING, PUNICODE_STRING,
BOOLEAN);
NTSTATUS NTAPI RtlUnicodeStringToOemString (PANSI_STRING, PUNICODE_STRING,
@@ -1424,3 +1455,4 @@ extern "C"
}
}
#endif
+#endif /*_NTDLL_H*/
diff --git a/winsup/cygwin/passwd.cc b/winsup/cygwin/passwd.cc
index c6abb0205..6e012ed68 100644
--- a/winsup/cygwin/passwd.cc
+++ b/winsup/cygwin/passwd.cc
@@ -281,7 +281,6 @@ getpass (const char * prompt)
{
char *pass = _my_tls.locals.pass;
struct termios ti, newti;
- bool tc_set = false;
/* Try to use controlling tty in the first place. Use stdin and stderr
only as fallback. */
@@ -296,23 +295,19 @@ getpass (const char * prompt)
}
/* Make sure to notice if stdin is closed. */
- if (fileno (in) >= 0)
+ if (tcgetattr (fileno (in), &ti) == -1)
+ pass[0] = '\0';
+ else
{
flockfile (in);
- /* Change tty attributes if possible. */
- if (!tcgetattr (fileno (in), &ti))
- {
- newti = ti;
- newti.c_lflag &= ~(ECHO | ISIG); /* No echo, no signal handling. */
- if (!tcsetattr (fileno (in), TCSANOW, &newti))
- tc_set = true;
- }
+ newti = ti;
+ newti.c_lflag &= ~(ECHO | ISIG); /* No echo, no signal handling. */
+ tcsetattr (fileno (in), TCSANOW, &newti);
fputs (prompt, err);
fflush (err);
fgets (pass, _PASSWORD_LEN, in);
fprintf (err, "\n");
- if (tc_set)
- tcsetattr (fileno (in), TCSANOW, &ti);
+ tcsetattr (fileno (in), TCSANOW, &ti);
funlockfile (in);
char *crlf = strpbrk (pass, "\r\n");
if (crlf)
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index d1a881c39..59e6de384 100644
--- a/winsup/cygwin/path.cc
+++ b/winsup/cygwin/path.cc
@@ -112,8 +112,7 @@ muto NO_COPY cwdstuff::cwd_lock;
static const GUID GUID_shortcut
= { 0x00021401L, 0, 0, {0xc0, 0, 0, 0, 0, 0, 0, 0x46}};
-enum
-{
+enum {
WSH_FLAG_IDLIST = 0x01, /* Contains an ITEMIDLIST. */
WSH_FLAG_FILE = 0x02, /* Contains a file locator element. */
WSH_FLAG_DESC = 0x04, /* Contains a description. */
@@ -124,24 +123,24 @@ enum
};
struct win_shortcut_hdr
-{
- DWORD size; /* Header size in bytes. Must contain 0x4c. */
- GUID magic; /* GUID of shortcut files. */
- DWORD flags; /* Content flags. See above. */
-
- /* The next fields from attr to icon_no are always set to 0 in Cygwin
- and U/Win shortcuts. */
- DWORD attr; /* Target file attributes. */
- FILETIME ctime; /* These filetime items are never touched by the */
- FILETIME mtime; /* system, apparently. Values don't matter. */
- FILETIME atime;
- DWORD filesize; /* Target filesize. */
- DWORD icon_no; /* Icon number. */
-
- DWORD run; /* Values defined in winuser.h. Use SW_NORMAL. */
- DWORD hotkey; /* Hotkey value. Set to 0. */
- DWORD dummy[2]; /* Future extension probably. Always 0. */
-};
+ {
+ DWORD size; /* Header size in bytes. Must contain 0x4c. */
+ GUID magic; /* GUID of shortcut files. */
+ DWORD flags; /* Content flags. See above. */
+
+ /* The next fields from attr to icon_no are always set to 0 in Cygwin
+ and U/Win shortcuts. */
+ DWORD attr; /* Target file attributes. */
+ FILETIME ctime; /* These filetime items are never touched by the */
+ FILETIME mtime; /* system, apparently. Values don't matter. */
+ FILETIME atime;
+ DWORD filesize; /* Target filesize. */
+ DWORD icon_no; /* Icon number. */
+
+ DWORD run; /* Values defined in winuser.h. Use SW_NORMAL. */
+ DWORD hotkey; /* Hotkey value. Set to 0. */
+ DWORD dummy[2]; /* Future extension probably. Always 0. */
+ };
/* Return non-zero if PATH1 is a prefix of PATH2.
Both are assumed to be of the same path style and / vs \ usage.
@@ -1153,7 +1152,7 @@ out:
if (opt & PC_CTTY)
path_flags |= PATH_CTTY;
- if (opt & PC_POSIX)
+ if ((opt & PC_POSIX))
{
if (tail < path_end && tail > path_copy + 1)
*tail = '/';
@@ -1352,8 +1351,8 @@ normalize_win32_path (const char *src, char *dst, char *&tail)
if ((tail - dst) >= NT_MAX_PATH)
return ENAMETOOLONG;
}
- if (tail > dst + 1 && tail[-1] == '.' && tail[-2] == '\\')
- tail--;
+ if (tail > dst + 1 && tail[-1] == '.' && tail[-2] == '\\')
+ tail--;
*tail = '\0';
debug_printf ("%s = normalize_win32_path (%s)", dst, src_start);
return 0;
@@ -2372,6 +2371,8 @@ restart:
bool had_ext = !!*ext_here;
while (suffix.next ())
{
+ bool no_ea = false;
+
error = 0;
get_nt_native_path (suffix.path, upath, pflags & PATH_DOS);
if (h)
@@ -2402,6 +2403,7 @@ restart:
root dir which has EAs enabled? */
|| status == STATUS_INVALID_PARAMETER))
{
+ no_ea = true;
/* If EAs are not supported, there's no sense to check them again
with suffixes attached. So we set eabuf/easize to 0 here once. */
if (status == STATUS_EAS_NOT_SUPPORTED
@@ -3204,14 +3206,11 @@ realpath (const char *path, char *resolved)
if (efault.faulted (EFAULT))
return NULL;
- /* Win32 drive letter paths have to be converted to a POSIX path first,
- because path_conv leaves the incoming path untouched except for
- converting backslashes to forward slashes. */
char *tpath;
if (isdrive (path))
{
tpath = tp.c_get ();
- mount_table->conv_to_posix_path (path, tpath, 0);
+ mount_table->cygdrive_posix_path (path, tpath, 0);
}
else
tpath = (char *) path;
@@ -4311,15 +4310,11 @@ etc::test_file_change (int n)
bool
etc::dir_changed (int n)
{
- /* io MUST be static because NtNotifyChangeDirectoryFile works asynchronously.
- It may write into io after the function has left, which may result in all
- sorts of stack corruption. */
- static IO_STATUS_BLOCK io NO_COPY;
- static HANDLE changed_h NO_COPY;
-
if (!change_possible[n])
{
+ static HANDLE changed_h NO_COPY;
NTSTATUS status;
+ IO_STATUS_BLOCK io;
if (!changed_h)
{
diff --git a/winsup/cygwin/path.h b/winsup/cygwin/path.h
index cb7480a58..3bbab4df7 100644
--- a/winsup/cygwin/path.h
+++ b/winsup/cygwin/path.h
@@ -347,7 +347,6 @@ class path_conv
bool fs_got_fs () const { return fs.got_fs (); }
bool fs_is_fat () const {return fs.is_fat ();}
bool fs_is_ntfs () const {return fs.is_ntfs ();}
- bool fs_is_refs () const {return fs.is_refs ();}
bool fs_is_samba () const {return fs.is_samba ();}
bool fs_is_nfs () const {return fs.is_nfs ();}
bool fs_is_netapp () const {return fs.is_netapp ();}
@@ -438,6 +437,7 @@ class etc
{
friend class dtable;
static int curr_ix;
+ static HANDLE changed_h;
static bool change_possible[MAX_ETC_FILES + 1];
static OBJECT_ATTRIBUTES fn[MAX_ETC_FILES + 1];
static LARGE_INTEGER last_modified[MAX_ETC_FILES + 1];
diff --git a/winsup/cygwin/pinfo.cc b/winsup/cygwin/pinfo.cc
index eb4923e9b..fda0abc9a 100644
--- a/winsup/cygwin/pinfo.cc
+++ b/winsup/cygwin/pinfo.cc
@@ -114,6 +114,7 @@ pinfo_init (char **envp, int envc)
static DWORD
status_exit (DWORD x)
{
+ const char *find_first_notloaded_dll (path_conv &);
switch (x)
{
case STATUS_DLL_NOT_FOUND:
@@ -655,6 +656,7 @@ _pinfo::commune_request (__uint32_t code, ...)
HANDLE& hp = si._si_commune._si_process_handle;
HANDLE& fromthem = si._si_commune._si_read_handle;
HANDLE request_sync = NULL;
+ bool locked = false;
res.s = NULL;
res.n = 0;
@@ -681,6 +683,7 @@ _pinfo::commune_request (__uint32_t code, ...)
}
va_end (args);
+ locked = true;
char name_buf[MAX_PATH];
request_sync = CreateSemaphore (&sec_none_nih, 0, LONG_MAX,
shared_name (name_buf, "commune", myself->pid));
diff --git a/winsup/cygwin/pipe.cc b/winsup/cygwin/pipe.cc
index 6a88d4f1c..e5909c4d4 100644
--- a/winsup/cygwin/pipe.cc
+++ b/winsup/cygwin/pipe.cc
@@ -217,17 +217,17 @@ fhandler_pipe::create (LPSECURITY_ATTRIBUTES sa_ptr, PHANDLE r, PHANDLE w,
if (!name)
pipe_mode |= pipe_byte ? PIPE_TYPE_BYTE : PIPE_TYPE_MESSAGE;
else
- pipe_mode |= PIPE_TYPE_MESSAGE;
+ {
+ strcpy (pipename + len, name);
+ pipe_mode |= PIPE_TYPE_MESSAGE;
+ }
- if (!name || (open_mode & PIPE_ADD_PID))
+ if (!name || (open_mode &= PIPE_ADD_PID))
{
len += __small_sprintf (pipename + len, "%u-", GetCurrentProcessId ());
open_mode &= ~PIPE_ADD_PID;
}
- if (name)
- len += __small_sprintf (pipename + len, "%s", name);
-
open_mode |= PIPE_ACCESS_INBOUND;
/* Retry CreateNamedPipe as long as the pipe name is in use.
diff --git a/winsup/cygwin/poll.cc b/winsup/cygwin/poll.cc
index cbb68bf04..ea86ab5aa 100644
--- a/winsup/cygwin/poll.cc
+++ b/winsup/cygwin/poll.cc
@@ -152,9 +152,9 @@ ppoll (struct pollfd *fds, nfds_t nfds, const struct timespec *timeout_ts,
? -1
: (timeout_ts->tv_sec * 1000 + timeout_ts->tv_nsec / 1000000);
if (sigmask)
- set_signal_mask (_my_tls.sigmask, *sigmask);
+ set_signal_mask (*sigmask, _my_tls.sigmask);
int ret = poll (fds, nfds, timeout);
if (sigmask)
- set_signal_mask (_my_tls.sigmask, oldset);
+ set_signal_mask (oldset, _my_tls.sigmask);
return ret;
}
diff --git a/winsup/cygwin/posix.sgml b/winsup/cygwin/posix.sgml
index 0c6f6e502..5e5df463b 100644
--- a/winsup/cygwin/posix.sgml
+++ b/winsup/cygwin/posix.sgml
@@ -1115,7 +1115,6 @@ also IEEE Std 1003.1-2008 (POSIX.1-2008).</para>
get_phys_pages
get_nprocs
get_nprocs_conf
- getmntent_r
getopt_long
getopt_long_only
getpt
@@ -1127,7 +1126,6 @@ also IEEE Std 1003.1-2008 (POSIX.1-2008).</para>
lsetxattr
memmem
mempcpy
- memrchr
mkostemp
mkostemps
pipe2
diff --git a/winsup/cygwin/posix_ipc.cc b/winsup/cygwin/posix_ipc.cc
index d09abf190..b9d224e43 100644
--- a/winsup/cygwin/posix_ipc.cc
+++ b/winsup/cygwin/posix_ipc.cc
@@ -119,12 +119,14 @@ ipc_mutex_init (HANDLE *pmtx, const char *name)
static int
ipc_mutex_lock (HANDLE mtx)
{
- switch (cancelable_wait (mtx, cw_infinite, cw_sig_eintr | cw_cancel | cw_cancel_self))
+ HANDLE h[2] = { mtx, signal_arrived };
+
+ switch (WaitForMultipleObjects (2, h, FALSE, INFINITE))
{
case WAIT_OBJECT_0:
case WAIT_ABANDONED_0:
return 0;
- case WAIT_SIGNALED:
+ case WAIT_OBJECT_0 + 1:
set_errno (EINTR);
return 1;
default:
@@ -172,12 +174,11 @@ ipc_cond_init (HANDLE *pevt, const char *name, char sr)
static int
ipc_cond_timedwait (HANDLE evt, HANDLE mtx, const struct timespec *abstime)
{
- HANDLE w4[4] = { evt, };
+ HANDLE w4[4] = { evt, signal_arrived, NULL, NULL };
DWORD cnt = 2;
DWORD timer_idx = 0;
int ret = 0;
- set_signal_arrived here (w4[1]);
if ((w4[cnt] = pthread::get_cancel_event ()) != NULL)
++cnt;
if (abstime)
diff --git a/winsup/cygwin/pseudo-reloc.cc b/winsup/cygwin/pseudo-reloc.cc
index 04d5d9862..ea10d9220 100644
--- a/winsup/cygwin/pseudo-reloc.cc
+++ b/winsup/cygwin/pseudo-reloc.cc
@@ -20,6 +20,8 @@
# define NO_COPY
#else
# include "winsup.h"
+# include <wchar.h>
+# include <ntdef.h>
# include <sys/cygwin.h>
/* custom status code: */
# define STATUS_ILLEGAL_DLL_PSEUDO_RELOCATION ((NTSTATUS) 0xe0000269)
@@ -85,7 +87,7 @@ __report_error (const char *msg, ...)
* cygwin ptys.
*/
char buf[128];
- WCHAR module[MAX_PATH];
+ wchar_t module[MAX_PATH];
char * posix_module = NULL;
static const char UNKNOWN_MODULE[] = "<unknown module>: ";
static const char CYGWIN_FAILURE_MSG[] = "Cygwin runtime failure: ";
@@ -326,10 +328,10 @@ do_pseudo_reloc (void * start, void * end, void * base)
}
#ifdef __CYGWIN__
-extern "C" void
+void
_pei386_runtime_relocator (per_process *u)
{
- if (u && CYGWIN_VERSION_USE_PSEUDO_RELOC_IN_DLL (u))
+ if (CYGWIN_VERSION_USE_PSEUDO_RELOC_IN_DLL (u))
do_pseudo_reloc (u->pseudo_reloc_start, u->pseudo_reloc_end, u->image_base);
}
#else
diff --git a/winsup/cygwin/regex/regcomp.c b/winsup/cygwin/regex/regcomp.c
index b44ba2c62..30502f7f1 100644
--- a/winsup/cygwin/regex/regcomp.c
+++ b/winsup/cygwin/regex/regcomp.c
@@ -324,10 +324,7 @@ p_ere(struct parse *p,
conc = HERE();
while (MORE() && (c = PEEK()) != '|' && c != stop)
p_ere_exp(p);
-#ifndef __CYGWIN__
- /* undefined behaviour according to POSIX; allowed by glibc */
(void)REQUIRE(HERE() != conc, REG_EMPTY); /* require nonempty */
-#endif
if (!EAT('|'))
break; /* NOTE BREAK OUT */
diff --git a/winsup/cygwin/registry.cc b/winsup/cygwin/registry.cc
index 9f791d2df..3047e269c 100644
--- a/winsup/cygwin/registry.cc
+++ b/winsup/cygwin/registry.cc
@@ -115,7 +115,7 @@ reg_key::build_reg (HKEY top, REGSAM access, va_list av)
if (!NT_SUCCESS (status))
{
key_is_invalid = status;
- debug_printf ("failed to create key %S in the registry", &uname);
+ debug_printf ("failed to create key %S in the registry", uname);
break;
}
}
diff --git a/winsup/cygwin/release/1.7.10 b/winsup/cygwin/release/1.7.10
new file mode 100644
index 000000000..33a2f20dd
--- /dev/null
+++ b/winsup/cygwin/release/1.7.10
@@ -0,0 +1,126 @@
+What's new:
+-----------
+
+- New getconf tool for querying confstr(3), pathconf(3), sysconf(3), and
+ limits.h configuration.
+
+- New tzset utility to generate a POSIX-compatible TZ environment
+ variable from the Windows timezone settings.
+
+- The passwd tool now allows an administrator to use the -R command for
+ other user accounts: passwd -R username.
+
+- Experimental: Change the way sockets are created so that Cygwin always
+ circumvents so-called "layered service providers" (LSPs) starting with
+ Windows Vista.
+
+- signal handler functions are now dispatched in threads other than the
+ main thread.
+
+- Support NcFsd filesystem.
+
+- clock_gettime(3) and clock_getres(3) accept per-process and per-thread
+ CPU-time clocks, including CLOCK_PROCESS_CPUTIME_ID and
+ CLOCK_THREAD_CPUTIME_ID.
+
+- New pthread functions:
+
+ - Spin Locks: pthread_spin_destroy, pthread_spin_init, pthread_spin_lock,
+ pthread_spin_trylock, pthread_spin_unlock.
+
+ - Stack management: pthread_attr_getstack, pthread_attr_getstackaddr,
+ pthread_attr_getguardsize, pthread_attr_setstack, pthread_attr_setstackaddr,
+ pthread_attr_setguardsize, pthread_getattr_np.
+
+ - Clock Selection: pthread_getcpuclockid, pthread_condattr_getclock,
+ pthread_condattr_setclock.
+
+ - Scheduling: pthread_setschedprio.
+
+ - Signalling: pthread_sigqueue.
+
+- Add /proc/devices, /proc/misc, /proc/sysvipc, /proc/swaps.
+
+- Make various system functions thread cancelation points per POSIX.
+
+- Add ioctl FIONREAD handling for non-sockets.
+
+- dlopen now supports the Glibc-specific RTLD_NODELETE and RTLD_NOOPEN flags.
+
+- The printf and wprintf families of functions now support the %m conversion
+ flag.
+
+- Execed processes now inherit the children of their predecessor.
+
+- Fifos have been rewritten and should now be more reliable.
+
+- GNU/glibc error.h error reporting functions: error, error_at_line,
+ error_message_count, error_one_per_line, error_print_progname.
+
+- C99 <tgmath.h> type-generic macros.
+
+- Other new API: clock_getcpuclockid, clock_nanosleep, clock_settime, __fpurge,
+ get_current_dir_name, getgrouplist, getpt, ppoll, psiginfo, psignal,
+ ptsname_r, sys_siglist, sysinfo.
+
+- cygwin_conv_path_list finally supports CCP_WIN_W_TO_POSIX and
+ CCP_POSIX_TO_WIN_W conversions.
+
+
+What changed:
+-------------
+
+- Drop support for Windows NT4.
+
+- The CYGWIN=tty mode using pipes to communicate with the console in a pseudo
+ tty-like mode has been removed. Either just use the normal Windows console
+ as is, or use a terminal application like mintty.
+
+- The CYGWIN environment variable options "envcache", "strip_title", "title",
+ "tty", and "upcaseenv" have been removed.
+
+- New heap management. Drop registry setting "heap_chunk_in_mb" in favor of
+ a new per-executable setting in the executable file header which can be set
+ using the peflags tool. Drop registry setting "heap_slop_in_mb" entirely.
+
+- Revamp console and pseudo tty handling. Rename /dev/ttyX to /dev/consX,
+ /dev/ttyX to /dev/ptyX.
+
+- Improve fork/exec performance on 64 bit systems.
+
+- Improve Ctrl-C handling in console.
+
+- Try harder to let fork not fail if DLLs are moved in memory which should,
+ in some cases, minimize the need for rebaseall.
+
+- Try harder to send SIGHUP to children when process group leader fails.
+
+- Deal with Windows problem where non-blocking pipe I/O was not flushed
+ properly on close.
+
+- Attempt to regularize most syscall-related strace output.
+
+- Improve behavior of Cygwin when started from a 64-bit process, especially
+ under Windows 2003.
+
+- Improve multi-thread/reentrancy safety with syscalls that deal with fds.
+
+- dlopen can now find "cygFOO.dll", even if the caller specified "libFOO.so".
+ This is supposed to support applications which are no aware of Windows DLLs.
+
+- Make accept(2), poll(2) and shutdown(2) behave more like on Linux.
+
+- Raise max number of mount points from 30 to 64.
+
+- Output of /proc/maps is closer to what Linux prints and much more useful to
+ examine process VM layout.
+
+- /proc/loadavg now shows the number of currently running processes and the
+ total number of processes.
+
+- /proc/version now shows the username of whomever compiled the Cygwin DLL
+ as well as the version of GCC used when compiling.
+
+- Various assorted bugfixes and improvements.
+
+- Preliminary, no guarantee, may be broken in subtle ways, Windows 8 support.
diff --git a/winsup/cygwin/release/1.7.11 b/winsup/cygwin/release/1.7.11
new file mode 100644
index 000000000..d4e0911d2
--- /dev/null
+++ b/winsup/cygwin/release/1.7.11
@@ -0,0 +1,29 @@
+What's new:
+-----------
+
+- New pldd command for listing DLLs loaded by a process.
+
+- New API: scandirat.
+
+
+What changed:
+-------------
+
+- Fixed problem where background Cygwin processes kept the windows
+ console window from exiting.
+
+- Change the way remote shares mapped to drive letters are recognized
+ when creating the cygdrive directory. If Windows claims the drive
+ is unavailable, don't show it in the cygdrive directory listing.
+
+- Lower the stack pressure in some Cygwin calls by reducing the buffer
+ space allocated on the stack.
+
+- Raise default stacksize of pthreads from 512K to 1 Meg. It can still
+ be changed using the pthread_attr_setstacksize call.
+
+- process.h header has been moved back from /usr/include/cygwin to
+ /usr/include.
+
+- Make <sys/wait.h> header C++ clean.
+
diff --git a/winsup/cygwin/release/1.7.12 b/winsup/cygwin/release/1.7.12
new file mode 100644
index 000000000..641e73062
--- /dev/null
+++ b/winsup/cygwin/release/1.7.12
@@ -0,0 +1,21 @@
+What's new:
+-----------
+
+- Cygwin now automatically populates the /dev directory with all
+ existing POSIX devices.
+
+- Add virtual /proc/PID/mountinfo file.
+
+- flock now additionally supports the following scenario, which requires
+ to propagate locks to the parent process:
+
+ (
+ flock -n 9 || exit 1
+ # ... commands executed under lock ...
+ } 9>/var/lock/mylockfile
+
+ Only propagation to the direct parent process is supported so far,
+ not to grand parents or sibling processes.
+
+- Add a "detect_bloda" setting for the CYGWIN environment variable to help
+ finding potential BLODAs.
diff --git a/winsup/cygwin/release/1.7.13 b/winsup/cygwin/release/1.7.13
new file mode 100644
index 000000000..23db7b553
--- /dev/null
+++ b/winsup/cygwin/release/1.7.13
@@ -0,0 +1,8 @@
+What's new:
+-----------
+
+- mkpasswd and mkgroup now try to print an entry for the TrustedInstaller
+ account existing since Windows Vista/Server 2008.
+
+- Terminal typeahead when switching from canonical to non-canonical mode
+ is now properly flushed.
diff --git a/winsup/cygwin/release/1.7.14 b/winsup/cygwin/release/1.7.14
new file mode 100644
index 000000000..02042c1d2
--- /dev/null
+++ b/winsup/cygwin/release/1.7.14
@@ -0,0 +1,21 @@
+What's new:
+-----------
+
+- Add mouse reporting mode 1005, 1006 and 1015 to console.
+
+Bug fixes:
+----------
+
+- Allow access of /dev/conin, /dev/conout, and /dev/console if a console
+ device is detected.
+
+- Always allow nonexistent on-disk devices to be referenced even if they
+ can't be open.
+
+- Allow inheritance of special types like /dev/clipboard or /dev/urandom
+ which do not have actual handles associated with them.
+
+- Fix inode numbers of non-device files in virtual filesystems.
+
+- Fix reporting large mouse coordinates in console window mouse reporting mode.
+
diff --git a/winsup/cygwin/release/1.7.15 b/winsup/cygwin/release/1.7.15
new file mode 100644
index 000000000..4e9e64090
--- /dev/null
+++ b/winsup/cygwin/release/1.7.15
@@ -0,0 +1,29 @@
+What's new:
+-----------
+
+- Add CYGWIN=pipe_byte option to force opening of pipes in byte mode
+ rather than message mode.
+
+Bug fixes:
+----------
+
+- Fix output of mkpasswd -c option in case $HOME is set at the time.
+ Fixes: http://cygwin.com/ml/cygwin/2012-05/msg00094.html
+
+- Fix problem where too much input was attempted to be read from a
+ pty slave. Fixes: http://cygwin.com/ml/cygwin/2012-05/msg00049.html
+
+- Fix problem setting parent pid to 1 when process with children execs
+ itself. Fixes: http://cygwin.com/ml/cygwin/2012-05/msg00009.html
+
+- Fix fesetround and fesetprec to allow all valid input parameters.
+ Fixes: http://cygwin.com/ml/cygwin/2012-05/msg00010.html
+
+- Avoid "WARNING: Couldn't compute FAST_CWD pointer." message on
+ Windows 8 Customer Preview 32 bit.
+ Fixes: http://cygwin.com/ml/cygwin/2012-04/msg00616.html
+
+- Don't make Cygwin wait for all children of a non-cygwin child program.
+ Fixes: http://cygwin.com/ml/cygwin/2012-05/msg00063.html,
+ http://cygwin.com/ml/cygwin/2012-05/msg00075.html
+
diff --git a/winsup/cygwin/sched.cc b/winsup/cygwin/sched.cc
index e990c996c..9c8aa0467 100644
--- a/winsup/cygwin/sched.cc
+++ b/winsup/cygwin/sched.cc
@@ -21,9 +21,7 @@
#include <unistd.h>
#include "registry.h"
-#ifndef __MINGW64_VERSION_MAJOR
extern "C" HWND WINAPI GetForegroundWindow();
-#endif
/* Win32 priority to UNIX priority Mapping.
For now, I'm just following the spec: any range of priorities is ok.
diff --git a/winsup/cygwin/sec_helper.cc b/winsup/cygwin/sec_helper.cc
index 0b505a7e8..eee4886b1 100644
--- a/winsup/cygwin/sec_helper.cc
+++ b/winsup/cygwin/sec_helper.cc
@@ -1,7 +1,7 @@
/* sec_helper.cc: NT security helper functions
Copyright 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2008, 2009,
- 2010, 2011, 2012 Red Hat, Inc.
+ 2010, 2011 Red Hat, Inc.
Written by Corinna Vinschen <corinna@vinschen.de>
@@ -25,10 +25,6 @@ details. */
#include "pwdgrp.h"
#include "ntdll.h"
-#ifndef __MINGW64_VERSION_MAJOR
-#define SECURITY_NT_NON_UNIQUE SECURITY_NT_NON_UNIQUE_RID
-#endif
-
/* General purpose security attribute objects for global use. */
SECURITY_ATTRIBUTES NO_COPY sec_none;
SECURITY_ATTRIBUTES NO_COPY sec_none_nih;
@@ -179,7 +175,7 @@ cygsid::get_sid (DWORD s, DWORD cnt, DWORD *r, bool well_known)
well_known_sid = well_known;
else
well_known_sid = (s != SECURITY_NT_AUTH
- || r[0] != SECURITY_NT_NON_UNIQUE);
+ || r[0] != SECURITY_NT_NON_UNIQUE_RID);
return psid;
}
@@ -378,11 +374,7 @@ static const struct {
{ SE_CREATE_GLOBAL_NAME, false },
{ SE_TRUSTED_CREDMAN_ACCESS_NAME, false },
{ SE_RELABEL_NAME, true },
-#ifndef __MINGW64_VERSION_MAJOR
{ SE_INCREASE_WORKING_SET_NAME, false },
-#else
- { SE_INC_WORKING_SET_NAME, false },
-#endif
{ SE_TIME_ZONE_NAME, true },
{ SE_CREATE_SYMBOLIC_LINK_NAME, true }
};
@@ -563,7 +555,7 @@ PSECURITY_ATTRIBUTES __stdcall
__sec_user (PVOID sa_buf, PSID sid1, PSID sid2, DWORD access2, BOOL inherit)
{
PSECURITY_ATTRIBUTES psa = (PSECURITY_ATTRIBUTES) sa_buf;
- PISECURITY_DESCRIPTOR psd = (PISECURITY_DESCRIPTOR)
+ PSECURITY_DESCRIPTOR psd = (PSECURITY_DESCRIPTOR)
((char *) sa_buf + sizeof (*psa));
PACL acl = (PACL) ((char *) sa_buf + sizeof (*psa) + sizeof (*psd));
NTSTATUS status;
@@ -586,64 +578,6 @@ __sec_user (PVOID sa_buf, PSID sid1, PSID sid2, DWORD access2, BOOL inherit)
return psa;
}
-/* Helper function to create a file security descriptor which allows
- full access to admins, system, and the sid given as parameter. See
- try_to_bin for how it's used. */
-
-PSECURITY_DESCRIPTOR
-_recycler_sd (void *buf, bool users, bool dir)
-{
- NTSTATUS status;
- PISECURITY_DESCRIPTOR psd = (PISECURITY_DESCRIPTOR) buf;
-
- if (!psd)
- return NULL;
- RtlCreateSecurityDescriptor (psd, SECURITY_DESCRIPTOR_REVISION);
- PACL dacl = (PACL) (psd + 1);
- /* Pre-Vista, the per-user recycler dir has a rather too complicated
- ACL by default, which has distinct ACEs for inheritable and non-inheritable
- permissions. However, this ACL is practically equivalent to the ACL
- created since Vista. Therefore we simplify our job here and create the
- pre-Vista permissions the same way as on Vista and later. */
- RtlCreateAcl (dacl, MAX_DACL_LEN (3), ACL_REVISION);
- RtlAddAccessAllowedAceEx (dacl, ACL_REVISION,
- dir ? CONTAINER_INHERIT_ACE | OBJECT_INHERIT_ACE
- : NO_INHERITANCE,
- FILE_ALL_ACCESS, well_known_admins_sid);
- RtlAddAccessAllowedAceEx (dacl, ACL_REVISION,
- dir ? CONTAINER_INHERIT_ACE | OBJECT_INHERIT_ACE
- : NO_INHERITANCE,
- FILE_ALL_ACCESS, well_known_system_sid);
- if (users)
- RtlAddAccessAllowedAceEx (dacl, ACL_REVISION, NO_PROPAGATE_INHERIT_ACE,
- FILE_GENERIC_READ | FILE_GENERIC_EXECUTE
- | FILE_APPEND_DATA | FILE_WRITE_ATTRIBUTES,
- well_known_users_sid);
- else
- RtlAddAccessAllowedAceEx (dacl, ACL_REVISION,
- dir ? CONTAINER_INHERIT_ACE
- | OBJECT_INHERIT_ACE
- : NO_INHERITANCE,
- FILE_ALL_ACCESS, cygheap->user.sid ());
- LPVOID ace;
- status = RtlFirstFreeAce (dacl, &ace);
- if (!NT_SUCCESS (status))
- {
- debug_printf ("RtlFirstFreeAce: %p", status);
- return NULL;
- }
- dacl->AclSize = (char *) ace - (char *) dacl;
- RtlSetDaclSecurityDescriptor (psd, TRUE, dacl, FALSE);
- /* If the directory DACL is not marked as protected, shell32 thinks
- the recycle dir is corrupted. As soon as Explorer accesses the
- Recycler, the user will get a GUI dialog "The Recycle Bin on X:\
- is corrupted. Do you want to empty the Recycle Bin for this drive?"
- Of course we want to avoid that. */
- if (dir)
- psd->Control |= SE_DACL_PROTECTED;
- return psd;
-}
-
/* Helper function to create an event security descriptor which only allows
specific access to everyone. Only the creating process has all access
rights. */
@@ -652,7 +586,7 @@ PSECURITY_DESCRIPTOR
_everyone_sd (void *buf, ACCESS_MASK access)
{
NTSTATUS status;
- PISECURITY_DESCRIPTOR psd = (PISECURITY_DESCRIPTOR) buf;
+ PSECURITY_DESCRIPTOR psd = (PSECURITY_DESCRIPTOR) buf;
if (psd)
{
diff --git a/winsup/cygwin/security.cc b/winsup/cygwin/security.cc
index cf3888bd3..3afd2b458 100644
--- a/winsup/cygwin/security.cc
+++ b/winsup/cygwin/security.cc
@@ -1,7 +1,7 @@
/* security.cc: NT file access control functions
Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
- 2006, 2007, 2008, 2009, 2010, 2011, 2012 Red Hat, Inc.
+ 2006, 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
Originaly written by Gunther Ebert, gunther.ebert@ixos-leipzig.de
Completely rewritten by Corinna Vinschen <corinna@vinschen.de>
@@ -469,13 +469,15 @@ bool
add_access_allowed_ace (PACL acl, int offset, DWORD attributes,
PSID sid, size_t &len_add, DWORD inherit)
{
- NTSTATUS status = RtlAddAccessAllowedAceEx (acl, ACL_REVISION, inherit,
- attributes, sid);
+ NTSTATUS status = RtlAddAccessAllowedAce (acl, ACL_REVISION, attributes, sid);
if (!NT_SUCCESS (status))
{
__seterrno_from_nt_status (status);
return false;
}
+ ACCESS_ALLOWED_ACE *ace;
+ if (inherit && NT_SUCCESS (RtlGetAce (acl, offset, (PVOID *) &ace)))
+ ace->Header.AceFlags |= inherit;
len_add += sizeof (ACCESS_ALLOWED_ACE) - sizeof (DWORD) + RtlLengthSid (sid);
return true;
}
@@ -484,13 +486,15 @@ bool
add_access_denied_ace (PACL acl, int offset, DWORD attributes,
PSID sid, size_t &len_add, DWORD inherit)
{
- NTSTATUS status = RtlAddAccessDeniedAceEx (acl, ACL_REVISION, inherit,
- attributes, sid);
+ NTSTATUS status = RtlAddAccessDeniedAce (acl, ACL_REVISION, attributes, sid);
if (!NT_SUCCESS (status))
{
__seterrno_from_nt_status (status);
return false;
}
+ ACCESS_DENIED_ACE *ace;
+ if (inherit && NT_SUCCESS (RtlGetAce (acl, offset, (PVOID *) &ace)))
+ ace->Header.AceFlags |= inherit;
len_add += sizeof (ACCESS_DENIED_ACE) - sizeof (DWORD) + RtlLengthSid (sid);
return true;
}
diff --git a/winsup/cygwin/security.h b/winsup/cygwin/security.h
index 2ac101a69..6629260d2 100644
--- a/winsup/cygwin/security.h
+++ b/winsup/cygwin/security.h
@@ -1,7 +1,7 @@
/* security.h: security declarations
Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
- 2010, 2011, 2012 Red Hat, Inc.
+ 2010, 2011 Red Hat, Inc.
This file is part of Cygwin.
@@ -9,7 +9,8 @@ This software is a copyrighted work licensed under the terms of the
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
details. */
-#pragma once
+#ifndef _SECURITY_H
+#define _SECURITY_H
#include <accctrl.h>
@@ -222,12 +223,9 @@ public:
/* += adds a "normal" SID, *= adds a well-known SID. See comment in class
cygsid above. */
- BOOL operator+= (cygsid &si) { return add ((PSID) si,
- si.is_well_known_sid ()); }
+ BOOL operator+= (cygsid &si) { return add ((PSID) si, false); }
BOOL operator+= (const char *sidstr) { cygsid nsi (sidstr);
- return add ((PSID) nsi,
- nsi.is_well_known_sid ());
- }
+ return add ((PSID) nsi, false); }
BOOL operator+= (const PSID psid) { return add (psid, false); }
BOOL operator*= (cygsid &si) { return add ((PSID) si, true); }
BOOL operator*= (const char *sidstr) { cygsid nsi (sidstr);
@@ -475,13 +473,6 @@ extern SECURITY_ATTRIBUTES sec_none, sec_none_nih, sec_all, sec_all_nih;
extern SECURITY_ATTRIBUTES *__stdcall __sec_user (PVOID, PSID, PSID,
DWORD, BOOL)
__attribute__ ((regparm (3)));
-
-extern PSECURITY_DESCRIPTOR _recycler_sd (void *buf, bool users, bool dir);
-#define recycler_sd(users,dir) \
- (_recycler_sd (alloca (sizeof (SECURITY_DESCRIPTOR) + MAX_DACL_LEN (3)), \
- (users), \
- (dir)))
-
extern PSECURITY_DESCRIPTOR _everyone_sd (void *buf, ACCESS_MASK access);
#define everyone_sd(access) (_everyone_sd (alloca (SD_MIN_SIZE), (access)))
@@ -512,3 +503,5 @@ sec_user (SECURITY_ATTRIBUTES *sa_buf, PSID sid1, PSID sid2 = NULL,
{
return __sec_user (sa_buf, sid1, sid2, access2, TRUE);
}
+
+#endif /*_SECURITY_H*/
diff --git a/winsup/cygwin/select.cc b/winsup/cygwin/select.cc
index 3122c8203..85753e817 100644
--- a/winsup/cygwin/select.cc
+++ b/winsup/cygwin/select.cc
@@ -21,9 +21,9 @@ details. */
#include <wingdi.h>
#include <winuser.h>
+#include <netdb.h>
#define USE_SYS_TYPES_FD_SET
#include <winsock2.h>
-#include <netdb.h>
#include "cygerrno.h"
#include "security.h"
#include "path.h"
@@ -34,7 +34,6 @@ details. */
#include "pinfo.h"
#include "sigproc.h"
#include "cygtls.h"
-#include "cygwait.h"
/*
* All these defines below should be in sys/types.h
@@ -73,13 +72,7 @@ typedef long fd_mask;
#define UNIX_FD_ZERO(p, n) \
memset ((caddr_t) (p), 0, sizeof_fd_set ((n)))
-#define allocfd_set(n) ({\
- size_t __sfds = sizeof_fd_set (n) + 8; \
- void *__res = alloca (__sfds); \
- memset (__res, 0, __sfds); \
- (fd_set *) __res; \
-})
-
+#define allocfd_set(n) ((fd_set *) memset (alloca (sizeof_fd_set (n)), 0, sizeof_fd_set (n)))
#define copyfd_set(to, from, n) memcpy (to, from, sizeof_fd_set (n));
#define set_handle_or_return_if_not_open(h, s) \
@@ -88,139 +81,91 @@ typedef long fd_mask;
{ \
(s)->thread_errno = EBADF; \
return -1; \
- }
+ } \
-static int select (int, fd_set *, fd_set *, fd_set *, DWORD);
-
-/* The main select code. */
+/* The main select code.
+ */
extern "C" int
cygwin_select (int maxfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
struct timeval *to)
{
+ select_stuff sel;
+ fd_set *dummy_readfds = allocfd_set (maxfds);
+ fd_set *dummy_writefds = allocfd_set (maxfds);
+ fd_set *dummy_exceptfds = allocfd_set (maxfds);
+
select_printf ("select(%d, %p, %p, %p, %p)", maxfds, readfds, writefds, exceptfds, to);
pthread_testcancel ();
- int res;
- if (maxfds < 0)
- {
- set_errno (EINVAL);
- res = -1;
- }
- else
- {
- /* Convert to milliseconds or INFINITE if to == NULL */
- DWORD ms = to ? (to->tv_sec * 1000) + (to->tv_usec / 1000) : INFINITE;
- if (ms == 0 && to->tv_usec)
- ms = 1; /* At least 1 ms granularity */
- if (to)
- select_printf ("to->tv_sec %d, to->tv_usec %d, ms %d", to->tv_sec, to->tv_usec, ms);
- else
- select_printf ("to NULL, ms %x", ms);
+ if (!readfds)
+ readfds = dummy_readfds;
+ if (!writefds)
+ writefds = dummy_writefds;
+ if (!exceptfds)
+ exceptfds = dummy_exceptfds;
- res = select (maxfds, readfds ?: allocfd_set (maxfds),
- writefds ?: allocfd_set (maxfds),
- exceptfds ?: allocfd_set (maxfds), ms);
- }
- syscall_printf ("%R = select(%d, %p, %p, %p, %p)", res, maxfds, readfds,
- writefds, exceptfds, to);
- return res;
-}
+ for (int i = 0; i < maxfds; i++)
+ if (!sel.test_and_set (i, readfds, writefds, exceptfds))
+ {
+ select_printf ("aborting due to test_and_set error");
+ return -1; /* Invalid fd, maybe? */
+ }
-/* This function is arbitrarily split out from cygwin_select to avoid odd
- gcc issues with the use of allocfd_set and improper constructor handling
- for the sel variable. */
-static int
-select (int maxfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
- DWORD ms)
-{
- int res = select_stuff::select_loop;
+ /* Convert to milliseconds or INFINITE if to == NULL */
+ DWORD ms = to ? (to->tv_sec * 1000) + (to->tv_usec / 1000) : INFINITE;
+ if (ms == 0 && to->tv_usec)
+ ms = 1; /* At least 1 ms granularity */
- LONGLONG start_time = gtod.msecs (); /* Record the current time for later use. */
+ if (to)
+ select_printf ("to->tv_sec %d, to->tv_usec %d, ms %d", to->tv_sec, to->tv_usec, ms);
+ else
+ select_printf ("to NULL, ms %x", ms);
- select_stuff sel;
- sel.return_on_signal = 0;
+ select_printf ("sel.always_ready %d", sel.always_ready);
/* Allocate some fd_set structures using the number of fds as a guide. */
fd_set *r = allocfd_set (maxfds);
fd_set *w = allocfd_set (maxfds);
fd_set *e = allocfd_set (maxfds);
- while (res == select_stuff::select_loop)
- {
- /* Build the select record per fd linked list and set state as
- needed. */
- for (int i = 0; i < maxfds; i++)
- if (!sel.test_and_set (i, readfds, writefds, exceptfds))
- {
- select_printf ("aborting due to test_and_set error");
- return -1; /* Invalid fd, maybe? */
- }
- select_printf ("sel.always_ready %d", sel.always_ready);
-
- /* Degenerate case. No fds to wait for. Just wait for time to run out
- or signal to arrive. */
- if (sel.start.next == NULL)
- switch (cygwait (ms))
- {
- case WAIT_SIGNALED:
- select_printf ("signal received");
- if (_my_tls.call_signal_handler ())
- res = select_stuff::select_loop; /* Emulate linux behavior */
- else
- {
- set_sig_errno (EINTR);
- res = select_stuff::select_error;
- }
- break;
- case WAIT_CANCELED:
- sel.destroy ();
- pthread::static_cancel_self ();
- /*NOTREACHED*/
- default:
- res = select_stuff::select_set_zero; /* Set res to zero below. */
- break;
- }
- else if (sel.always_ready || ms == 0)
- res = 0; /* Catch any active fds via
- sel.poll() below */
- else
- res = sel.wait (r, w, e, ms); /* wait for an fd to become
- become active or time out */
- select_printf ("res %d", res);
- if (res >= 0)
+ int res = 0;
+ sel.return_on_signal = &_my_tls == _main_tls;
+ /* Degenerate case. No fds to wait for. Just wait. */
+ if (sel.start.next == NULL)
+ while (!res)
+ switch (cygwait (ms))
{
- copyfd_set (readfds, r, maxfds);
- copyfd_set (writefds, w, maxfds);
- copyfd_set (exceptfds, e, maxfds);
- /* Actually set the bit mask from sel records */
- res = (res == select_stuff::select_set_zero) ? 0 : sel.poll (readfds, writefds, exceptfds);
- }
- /* Always clean up everything here. If we're looping then build it
- all up again. */
- sel.cleanup ();
- sel.destroy ();
- /* Recalculate the time remaining to wait if we are going to be looping. */
- if (res == select_stuff::select_loop && ms != INFINITE)
- {
- select_printf ("recalculating ms");
- LONGLONG now = gtod.msecs ();
- if (now > (start_time + ms))
- {
- select_printf ("timed out after verification");
- res = select_stuff::select_error;
- }
- else
- {
- ms -= (now - start_time);
- start_time = now;
- select_printf ("ms now %u", ms);
- }
+ case WAIT_OBJECT_0:
+ select_printf ("signal received");
+ _my_tls.call_signal_handler ();
+ if (!sel.return_on_signal)
+ continue; /* Emulate linux behavior */
+ set_sig_errno (EINTR);
+ res = -1;
+ break;
+ case WAIT_OBJECT_0 + 1:
+ sel.destroy ();
+ pthread::static_cancel_self ();
+ /*NOTREACHED*/
+ default:
+ res = 1; /* temporary flag. Will be set to zero below. */
+ break;
}
+ else if (sel.always_ready || ms == 0)
+ res = 0;
+ else
+ res = sel.wait (r, w, e, ms);
+ if (res >= 0)
+ {
+ copyfd_set (readfds, r, maxfds);
+ copyfd_set (writefds, w, maxfds);
+ copyfd_set (exceptfds, e, maxfds);
+ res = (res > 0) ? 0 : sel.poll (readfds, writefds, exceptfds);
}
- if (res < -1)
- res = -1;
+ syscall_printf ("%R = select(%d, %p, %p, %p, %p)", res, maxfds, readfds,
+ writefds, exceptfds, to);
return res;
}
@@ -240,11 +185,11 @@ pselect(int maxfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
tv.tv_usec = ts->tv_nsec / 1000;
}
if (set)
- set_signal_mask (_my_tls.sigmask, *set);
+ set_signal_mask (*set, _my_tls.sigmask);
int ret = cygwin_select (maxfds, readfds, writefds, exceptfds,
ts ? &tv : NULL);
if (set)
- set_signal_mask (_my_tls.sigmask, oldset);
+ set_signal_mask (oldset, _my_tls.sigmask);
return ret;
}
@@ -268,7 +213,7 @@ select_stuff::cleanup ()
inline void
select_stuff::destroy ()
{
- select_record *s;
+ select_record *s = &start;
select_record *snext = start.next;
select_printf ("deleting select records");
@@ -277,7 +222,6 @@ select_stuff::destroy ()
snext = s->next;
delete s;
}
- start.next = NULL;
}
select_stuff::~select_stuff ()
@@ -324,19 +268,24 @@ err:
}
/* The heart of select. Waits for an fd to do something interesting. */
-select_stuff::wait_states
+int
select_stuff::wait (fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
DWORD ms)
{
+ int wait_ret;
HANDLE w4[MAXIMUM_WAIT_OBJECTS];
select_record *s = &start;
- DWORD m = 0;
+ int m = 0;
+ int res = 0;
+ bool is_cancelable = false;
- set_signal_arrived here (w4[m++]);
+ w4[m++] = signal_arrived; /* Always wait for the arrival of a signal. */
if ((w4[m] = pthread::get_cancel_event ()) != NULL)
- m++;
+ {
+ ++m;
+ is_cancelable = true;
+ }
- DWORD startfds = m;
/* Loop through the select chain, starting up anything appropriate and
counting the number of active fds. */
while ((s = s->next))
@@ -344,76 +293,73 @@ select_stuff::wait (fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
if (m >= MAXIMUM_WAIT_OBJECTS)
{
set_sig_errno (EINVAL);
- return select_error;
+ return -1;
}
if (!s->startup (s, this))
{
s->set_select_errno ();
- return select_error;
+ return -1;
}
- if (s->h != NULL)
- {
- for (DWORD i = startfds; i < m; i++)
- if (w4[i] == s->h)
- goto next_while;
- w4[m++] = s->h;
- }
-next_while:;
+ if (s->h == NULL)
+ continue;
+ for (int i = 1; i < m; i++)
+ if (w4[i] == s->h)
+ goto next_while;
+ w4[m++] = s->h;
+ next_while:
+ continue;
}
- debug_printf ("m %d, ms %u", m, ms);
+ LONGLONG start_time = gtod.msecs (); /* Record the current time for later use. */
- DWORD wait_ret;
- if (!windows_used)
- wait_ret = WaitForMultipleObjects (m, w4, FALSE, ms);
- else
- /* Using MWMO_INPUTAVAILABLE is the officially supported solution for
- the problem that the call to PeekMessage disarms the queue state
- so that a subsequent MWFMO hangs, even if there are still messages
- in the queue. */
- wait_ret = MsgWaitForMultipleObjectsEx (m, w4, ms,
- QS_ALLINPUT | QS_ALLPOSTMESSAGE,
- MWMO_INPUTAVAILABLE);
- select_printf ("wait_ret %d. verifying", wait_ret);
-
- wait_states res;
- switch (wait_ret)
+ debug_printf ("m %d, ms %u", m, ms);
+ for (;;)
{
- case WAIT_OBJECT_0:
- select_printf ("signal received");
- /* Need to get rid of everything when a signal occurs since we can't
- be assured that a signal handler won't jump out of select entirely. */
- cleanup ();
- destroy ();
- if (_my_tls.call_signal_handler ())
- res = select_loop;
+ if (!windows_used)
+ wait_ret = WaitForMultipleObjects (m, w4, FALSE, ms);
else
+ /* Using MWMO_INPUTAVAILABLE is the officially supported solution for
+ the problem that the call to PeekMessage disarms the queue state
+ so that a subsequent MWFMO hangs, even if there are still messages
+ in the queue. */
+ wait_ret = MsgWaitForMultipleObjectsEx (m, w4, ms,
+ QS_ALLINPUT | QS_ALLPOSTMESSAGE,
+ MWMO_INPUTAVAILABLE);
+
+ switch (wait_ret)
{
+ case WAIT_OBJECT_0:
+ select_printf ("signal received");
+ _my_tls.call_signal_handler ();
+ if (!return_on_signal)
+ continue; /* Emulate linux behavior */
+ cleanup ();
set_sig_errno (EINTR);
- res = select_signalled; /* Cause loop exit in cygwin_select */
- }
- break;
- case WAIT_FAILED:
- system_printf ("WaitForMultipleObjects failed");
- s = &start;
- s->set_select_errno ();
- res = select_error;
- break;
- case WAIT_TIMEOUT:
- select_printf ("timed out");
- res = select_set_zero;
- break;
- case WAIT_OBJECT_0 + 1:
- if (startfds > 1)
- {
+ return -1;
+ case WAIT_OBJECT_0 + 1:
+ if (is_cancelable)
+ {
+ cleanup ();
+ destroy ();
+ pthread::static_cancel_self ();
+ }
+ /* This wasn't a cancel event. It was just a normal object to wait
+ for. */
+ break;
+ case WAIT_FAILED:
cleanup ();
- destroy ();
- pthread::static_cancel_self ();
- /*NOTREACHED*/
+ system_printf ("WaitForMultipleObjects failed");
+ s = &start;
+ s->set_select_errno ();
+ return -1;
+ case WAIT_TIMEOUT:
+ cleanup ();
+ select_printf ("timed out");
+ res = 1;
+ goto out;
}
- /* Fall through. This wasn't a cancel event. It was just a normal object
- to wait for. */
- default:
+
+ select_printf ("woke up. wait_ret %d. verifying", wait_ret);
s = &start;
bool gotone = false;
/* Some types of objects (e.g., consoles) wake up on "inappropriate" events
@@ -423,21 +369,40 @@ next_while:;
while ((s = s->next))
if (s->saw_error ())
{
+ cleanup ();
set_errno (s->saw_error ());
- res = select_error; /* Somebody detected an error */
- goto out;
+ return -1; /* Somebody detected an error */
}
else if ((((wait_ret >= m && s->windows_handle) || s->h == w4[wait_ret]))
&& s->verify (s, readfds, writefds, exceptfds))
gotone = true;
- if (!gotone)
- res = select_loop;
- else
- res = select_ok;
select_printf ("gotone %d", gotone);
- break;
+ if (gotone)
+ {
+ cleanup ();
+ goto out;
+ }
+
+ if (ms == INFINITE)
+ {
+ select_printf ("looping");
+ continue;
+ }
+ select_printf ("recalculating ms");
+
+ LONGLONG now = gtod.msecs ();
+ if (now > (start_time + ms))
+ {
+ cleanup ();
+ select_printf ("timed out after verification");
+ goto out;
+ }
+ ms -= (now - start_time);
+ start_time = now;
+ select_printf ("ms now %u", ms);
}
+
out:
select_printf ("returning %d", res);
return res;
@@ -1323,7 +1288,7 @@ thread_socket (void *arg)
/ MAXIMUM_WAIT_OBJECTS));
bool event = false;
- select_printf ("stuff_start %p, timeout %u", si->start, timeout);
+ select_printf ("stuff_start %p", si->start);
while (!event)
{
for (select_record *s = si->start; (s = s->next); )
diff --git a/winsup/cygwin/select.h b/winsup/cygwin/select.h
index fe0c206d5..57cd59673 100644
--- a/winsup/cygwin/select.h
+++ b/winsup/cygwin/select.h
@@ -69,15 +69,6 @@ struct select_mailslot_info: public select_info
class select_stuff
{
public:
- enum wait_states
- {
- select_signalled = -3,
- select_loop = -2,
- select_error = -1,
- select_ok = 0,
- select_set_zero = 1
- };
-
~select_stuff ();
bool return_on_signal;
bool always_ready, windows_used;
@@ -91,15 +82,14 @@ public:
bool test_and_set (int i, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds);
int poll (fd_set *readfds, fd_set *writefds, fd_set *exceptfds);
- wait_states wait (fd_set *readfds, fd_set *writefds, fd_set *exceptfds, DWORD ms);
+ int wait (fd_set *readfds, fd_set *writefds, fd_set *exceptfds, DWORD ms);
void cleanup ();
void destroy ();
-
select_stuff (): return_on_signal (false), always_ready (false),
windows_used (false), start (0),
- device_specific_pipe (NULL),
- device_specific_socket (NULL),
- device_specific_serial (NULL),
- device_specific_mailslot (NULL) {}
+ device_specific_pipe (0),
+ device_specific_socket (0),
+ device_specific_serial (0),
+ device_specific_mailslot (0) {}
};
#endif /* _SELECT_H_ */
diff --git a/winsup/cygwin/shared.cc b/winsup/cygwin/shared.cc
index 83402a2c8..7a0b2510b 100644
--- a/winsup/cygwin/shared.cc
+++ b/winsup/cygwin/shared.cc
@@ -377,8 +377,4 @@ memory_init (bool init_cygheap)
shared_info::create (); /* Initialize global shared memory */
user_info::create (false); /* Initialize per-user shared memory */
- /* Initialize tty list session stuff. Doesn't really belong here but
- this needs to be initialized before any tty or console manipulation
- happens and it is a common location. */
- tty_list::init_session ();
}
diff --git a/winsup/cygwin/signal.cc b/winsup/cygwin/signal.cc
index f3a3a3a07..649cda694 100644
--- a/winsup/cygwin/signal.cc
+++ b/winsup/cygwin/signal.cc
@@ -22,11 +22,10 @@ details. */
#include "fhandler.h"
#include "dtable.h"
#include "cygheap.h"
-#include "cygwait.h"
#define _SA_NORESTART 0x8000
-static int sigaction_worker (int, const struct sigaction *, struct sigaction *, bool)
+static int sigaction_worker (int, const struct sigaction *, struct sigaction *, bool, const char *)
__attribute__ ((regparm (3)));
#define sigtrapped(func) ((func) != SIG_IGN && (func) != SIG_DFL)
@@ -120,9 +119,12 @@ clock_nanosleep (clockid_t clk_id, int flags, const struct timespec *rqtp,
syscall_printf ("clock_nanosleep (%ld.%09ld)", rqtp->tv_sec, rqtp->tv_nsec);
- int rc = cancelable_wait (NULL, &timeout, cw_sig_eintr | cw_cancel | cw_cancel_self);
- if (rc == WAIT_SIGNALED)
- res = EINTR;
+ int rc = cancelable_wait (signal_arrived, &timeout);
+ if (rc == WAIT_OBJECT_0)
+ {
+ _my_tls.call_signal_handler ();
+ res = EINTR;
+ }
/* according to POSIX, rmtp is used only if !abstime */
if (rmtp && !abstime)
@@ -223,7 +225,7 @@ handle_sigprocmask (int how, const sigset_t *set, sigset_t *oldset, sigset_t& op
newmask = *set;
break;
}
- set_signal_mask (opmask, newmask);
+ set_signal_mask (newmask, opmask);
}
return 0;
}
@@ -376,7 +378,7 @@ abort (void)
sigset_t sig_mask;
sigfillset (&sig_mask);
sigdelset (&sig_mask, SIGABRT);
- set_signal_mask (_my_tls.sigmask, sig_mask);
+ set_signal_mask (sig_mask, _my_tls.sigmask);
raise (SIGABRT);
_my_tls.call_signal_handler (); /* Call any signal handler */
@@ -387,9 +389,9 @@ abort (void)
do_exit (SIGABRT); /* signal handler didn't exit. Goodbye. */
}
-static int __attribute__ ((regparm (3)))
+static int
sigaction_worker (int sig, const struct sigaction *newact,
- struct sigaction *oldact, bool isinternal)
+ struct sigaction *oldact, bool isinternal, const char *fnname)
{
int res = -1;
myfault efault;
@@ -442,15 +444,14 @@ sigaction_worker (int sig, const struct sigaction *newact,
}
out:
+ syscall_printf ("%R = %s(%d, %p, %p)", res, fnname, sig, newact, oldact);
return res;
}
extern "C" int
sigaction (int sig, const struct sigaction *newact, struct sigaction *oldact)
{
- int res = sigaction_worker (sig, newact, oldact, false);
- syscall_printf ("%R = sigaction(%d, %p, %p)", res, sig, newact, oldact);
- return res;
+ return sigaction_worker (sig, newact, oldact, false, "sigaction");
}
extern "C" int
@@ -517,25 +518,19 @@ sigfillset (sigset_t *set)
extern "C" int
sigsuspend (const sigset_t *set)
{
- int res = handle_sigsuspend (*set);
- syscall_printf ("%R = sigsuspend(%p)", res, set);
- return res;
+ return handle_sigsuspend (*set);
}
extern "C" int
sigpause (int signal_mask)
{
- int res = handle_sigsuspend ((sigset_t) signal_mask);
- syscall_printf ("%R = sigpause(%p)", res, signal_mask);
- return res;
+ return handle_sigsuspend ((sigset_t) signal_mask);
}
extern "C" int
pause (void)
{
- int res = handle_sigsuspend (_my_tls.sigmask);
- syscall_printf ("%R = pause()", res);
- return res;
+ return handle_sigsuspend (_my_tls.sigmask);
}
extern "C" int
@@ -553,9 +548,7 @@ siginterrupt (int sig, int flag)
act.sa_flags &= ~_SA_NORESTART;
act.sa_flags |= SA_RESTART;
}
- int res = sigaction_worker (sig, &act, NULL, true);
- syscall_printf ("%R = siginterrupt(%d, %p)", sig, flag);
- return res;
+ return sigaction_worker (sig, &act, NULL, true, "siginterrupt");
}
extern "C" int
@@ -571,18 +564,21 @@ extern "C" int
sigwaitinfo (const sigset_t *set, siginfo_t *info)
{
pthread_testcancel ();
+ HANDLE h;
+ h = _my_tls.event = CreateEvent (&sec_none_nih, FALSE, FALSE, NULL);
+ if (!h)
+ {
+ __seterrno ();
+ return -1;
+ }
- myfault efault;
- if (efault.faulted (EFAULT))
- return EFAULT;
-
- set_signal_mask (_my_tls.sigwait_mask, *set);
+ _my_tls.sigwait_mask = *set;
sig_dispatch_pending (true);
int res;
- switch (cancelable_wait (NULL, cw_infinite, cw_sig_eintr | cw_cancel | cw_cancel_self))
+ switch (WaitForSingleObject (h, INFINITE))
{
- case WAIT_SIGNALED:
+ case WAIT_OBJECT_0:
if (!sigismember (set, _my_tls.infodata.si_signo))
{
set_errno (EINTR);
@@ -601,6 +597,8 @@ sigwaitinfo (const sigset_t *set, siginfo_t *info)
res = -1;
}
+ _my_tls.event = NULL;
+ CloseHandle (h);
sigproc_printf ("returning signal %d", res);
return res;
}
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc
index d893fc2d8..05d98729f 100644
--- a/winsup/cygwin/sigproc.cc
+++ b/winsup/cygwin/sigproc.cc
@@ -43,10 +43,14 @@ int __sp_ln;
char NO_COPY myself_nowait_dummy[1] = {'0'};// Flag to sig_send that signal goes to
// current process but no wait is required
+HANDLE NO_COPY signal_arrived; // Event signaled when a signal has
+ // resulted in a user-specified
+ // function call
#define Static static NO_COPY
-Static HANDLE sig_hold; // Used to stop signal processing
+HANDLE NO_COPY sigCONT; // Used to "STOP" a process
+
Static bool sigheld; // True if holding signals
Static int nprocs; // Number of deceased children
@@ -514,6 +518,17 @@ sig_dispatch_pending (bool fast)
sig_send (myself, fast ? __SIGFLUSHFAST : __SIGFLUSH);
}
+void __stdcall
+create_signal_arrived ()
+{
+ if (signal_arrived)
+ return;
+ /* local event signaled when main thread has been dispatched
+ to a signal handler function. */
+ signal_arrived = CreateEvent (&sec_none_nih, false, false, NULL);
+ ProtectHandle (signal_arrived);
+}
+
/* Signal thread initialization. Called from dll_crt0_1.
This routine starts the signal handling thread. */
void __stdcall
@@ -567,7 +582,7 @@ sig_send (_pinfo *p, int sig)
return 0;
else if (sig == __SIGNOHOLD || sig == __SIGEXIT)
{
- SetEvent (sig_hold);
+ SetEvent (sigCONT);
sigheld = false;
}
else if (&_my_tls == _main_tls)
@@ -1218,7 +1233,7 @@ stopped_or_terminated (waitq *parent_w, _pinfo *child)
int might_match;
waitq *w = parent_w->next;
- sigproc_printf ("considering pid %d, pgid %d, w->pid %d", child->pid, child->pgid, w->pid);
+ sigproc_printf ("considering pid %d", child->pid);
if (w->pid == -1)
might_match = 1;
else if (w->pid == 0)
@@ -1344,7 +1359,7 @@ static void WINAPI
wait_sig (VOID *)
{
_sig_tls = &_my_tls;
- sig_hold = CreateEvent (&sec_none_nih, FALSE, FALSE, NULL);
+ sigCONT = CreateEvent (&sec_none_nih, FALSE, FALSE, NULL);
sigproc_printf ("entering ReadFile loop, my_readsig %p, my_sendsig %p",
my_readsig, my_sendsig);
@@ -1354,7 +1369,7 @@ wait_sig (VOID *)
for (;;)
{
if (pack.si.si_signo == __SIGHOLD)
- WaitForSingleObject (sig_hold, INFINITE);
+ WaitForSingleObject (sigCONT, INFINITE);
DWORD nb;
pack.tls = NULL;
if (!ReadFile (my_readsig, &pack, sizeof (pack), &nb, NULL))
diff --git a/winsup/cygwin/sigproc.h b/winsup/cygwin/sigproc.h
index 06ebd68d8..a86c6bc42 100644
--- a/winsup/cygwin/sigproc.h
+++ b/winsup/cygwin/sigproc.h
@@ -58,9 +58,13 @@ struct sigpacket
int __stdcall process () __attribute__ ((regparm (1)));
};
-void __stdcall sig_dispatch_pending (bool fast = false)
- __attribute__ ((regparm (1)));
-void set_signal_mask (sigset_t&, sigset_t) __attribute__ ((regparm (2)));
+extern HANDLE signal_arrived;
+extern HANDLE sigCONT;
+
+void __stdcall sig_dispatch_pending (bool fast = false);
+#ifdef EXITCODE_SET
+extern "C" void __stdcall set_signal_mask (sigset_t newmask, sigset_t&);
+#endif
int __stdcall handle_sigprocmask (int sig, const sigset_t *set,
sigset_t *oldset, sigset_t& opmask)
__attribute__ ((regparm (3)));
@@ -76,12 +80,40 @@ void __stdcall proc_terminate ();
void __stdcall sigproc_init ();
#ifdef __INSIDE_CYGWIN__
void __stdcall sigproc_terminate (enum exit_states);
+
+static inline DWORD __attribute__ ((always_inline))
+cygwait (HANDLE h, DWORD howlong = INFINITE)
+{
+ HANDLE w4[3];
+ DWORD n = 0;
+ DWORD wait_signal;
+ if ((w4[n] = h) != NULL)
+ wait_signal = WAIT_OBJECT_0 + ++n;
+ else
+ wait_signal = WAIT_OBJECT_0 + 15; /* Arbitrary. Don't call signal
+ handler if only waiting for signal */
+ w4[n++] = signal_arrived;
+ if ((w4[n] = pthread::get_cancel_event ()) != NULL)
+ n++;
+ DWORD res;
+ while ((res = WaitForMultipleObjects (n, w4, FALSE, howlong)) == wait_signal
+ && (_my_tls.call_signal_handler () || &_my_tls != _main_tls))
+ continue;
+ return res;
+}
+
+static inline DWORD __attribute__ ((always_inline))
+cygwait (DWORD wait)
+{
+ return cygwait ((HANDLE) NULL, wait);
+}
#endif
bool __stdcall pid_exists (pid_t) __attribute__ ((regparm(1)));
int __stdcall sig_send (_pinfo *, siginfo_t&, class _cygtls *tls = NULL) __attribute__ ((regparm (3)));
int __stdcall sig_send (_pinfo *, int) __attribute__ ((regparm (2)));
void __stdcall signal_fixup_after_exec ();
void __stdcall sigalloc ();
+void __stdcall create_signal_arrived ();
int kill_pgrp (pid_t, siginfo_t&);
int killsys (pid_t, int);
diff --git a/winsup/cygwin/smallprint.cc b/winsup/cygwin/smallprint.cc
index fa7706b47..1ca7ca817 100644
--- a/winsup/cygwin/smallprint.cc
+++ b/winsup/cygwin/smallprint.cc
@@ -147,15 +147,15 @@ __small_vsprintf (char *dst, const char *fmt, va_list ap)
continue;
case 'c':
{
- unsigned char c = (va_arg (ap, int) & 0xff);
- if (isprint (c) || pad != '0')
+ int c = va_arg (ap, int);
+ if (c > ' ' && c <= 127)
*dst++ = c;
else
- {
- *dst++ = '0';
- *dst++ = 'x';
- dst = __rn (dst, 16, 0, c, len, pad, LMASK);
- }
+ {
+ *dst++ = '0';
+ *dst++ = 'x';
+ dst = __rn (dst, 16, 0, c, len, pad, LMASK);
+ }
}
break;
case 'C':
@@ -164,7 +164,14 @@ __small_vsprintf (char *dst, const char *fmt, va_list ap)
char buf[4], *c;
sys_wcstombs (buf, 4, &wc, 1);
for (c = buf; *c; ++c)
- *dst++ = *c;
+ if (isprint (*c))
+ *dst++ = *c;
+ else
+ {
+ *dst++ = '0';
+ *dst++ = 'x';
+ dst = __rn (dst, 16, 0, *c, len, pad, LMASK);
+ }
}
case 'E':
strcpy (dst, "Win32 error ");
@@ -438,7 +445,17 @@ __small_vswprintf (PWCHAR dst, const WCHAR *fmt, va_list ap)
continue;
case L'c':
case L'C':
- *dst++ = va_arg (ap, unsigned);
+ {
+ unsigned int c = va_arg (ap, unsigned int);
+ if (c > L' ' && c <= 127)
+ *dst++ = c;
+ else
+ {
+ *dst++ = L'0';
+ *dst++ = L'x';
+ dst = __wrn (dst, 16, 0, c, len, pad, LMASK);
+ }
+ }
break;
case L'E':
wcscpy (dst, L"Win32 error ");
diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc
index 8a82f8a11..7e165cf8b 100644
--- a/winsup/cygwin/spawn.cc
+++ b/winsup/cygwin/spawn.cc
@@ -588,16 +588,10 @@ child_info_spawn::worker (const char *prog_arg, const char *const *argv,
&& (!iscygwin () || mode != _P_OVERLAY
|| ::cygheap->fdtab.need_fixup_before ()))
c_flags |= CREATE_SUSPENDED;
- /* If a native application should be spawned, we test here if the spawning
- process is running in a console and, if so, if it's a foreground or
- background process. If it's a background process, we start the native
- process with the CREATE_NEW_PROCESS_GROUP flag set. This lets the native
- process ignore Ctrl-C by default. If we don't do that, pressing Ctrl-C
- in a console will break native processes running in the background,
- because the Ctrl-C event is sent to all processes in the console, unless
- they ignore it explicitely. CREATE_NEW_PROCESS_GROUP does that for us. */
- if (!iscygwin () && fhandler_console::exists ()
- && fhandler_console::tc_getpgid () != myself->pgid)
+ /* Give non-Cygwin processes their own process group since they will be
+ dealing with CTRL-C themselves. Not sure if this is correct for spawn*()
+ or not though. */
+ if (!iscygwin () && fhandler_console::exists ())
c_flags |= CREATE_NEW_PROCESS_GROUP;
refresh_cygheap ();
@@ -620,7 +614,6 @@ child_info_spawn::worker (const char *prog_arg, const char *const *argv,
SetHandleInformation (wr_proc_pipe, HANDLE_FLAG_INHERIT, 0);
SetHandleInformation (parent, HANDLE_FLAG_INHERIT, 0);
}
- parent_winpid = GetCurrentProcessId ();
/* When ruid != euid we create the new process under the current original
account and impersonate in child, this way maintaining the different
diff --git a/winsup/cygwin/strace.cc b/winsup/cygwin/strace.cc
index 60e56fe5f..49b4c5ab9 100644
--- a/winsup/cygwin/strace.cc
+++ b/winsup/cygwin/strace.cc
@@ -1,7 +1,7 @@
/* strace.cc: system/windows tracing
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
- 2006, 2007, 2008, 2009, 2010, 2011, 2012 Red Hat, Inc.
+ 2006, 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
This file is part of Cygwin.
@@ -59,6 +59,8 @@ strace::activate (bool isfork)
prntf (1, NULL, "**********************************************");
prntf (1, NULL, "Program name: %W %s", progname, pidbuf);
prntf (1, NULL, "OS version: Windows %s", wincap.osname ());
+ if (cygheap && cygheap->user_heap.chunk)
+ prntf (1, NULL, "Heap size: %u", cygheap->user_heap.chunk);
prntf (1, NULL, "**********************************************");
}
}
diff --git a/winsup/cygwin/strfuncs.cc b/winsup/cygwin/strfuncs.cc
index 22ba4d619..467f54e87 100644
--- a/winsup/cygwin/strfuncs.cc
+++ b/winsup/cygwin/strfuncs.cc
@@ -393,23 +393,9 @@ __big5_mbtowc (struct _reent *r, wchar_t *pwc, const char *s, size_t n,
sequence in by treating it as an UTF-8 char. If that fails, the ASCII
CAN was probably standalone and it gets just copied over as ASCII CAN.
- - Three cases have to be distinguished for the return value:
-
- - dst == NULL; len is ignored, the return value is the number of bytes
- required for the string without the trailing NUL, just like the return
- value of the wcstombs function.
-
- - dst != NULL, len == (size_t) -1; the return value is the size in bytes
- of the destination string without the trailing NUL. If the incoming
- wide char string was not NUL-terminated, the target string won't be
- NUL-terminated either.
-
- - dst != NULL; len != (size_t) -1; the return value is the size in bytes
- of the destination string without the trailing NUL. The target string
- will be NUL-terminated, no matter what. If the result is truncated due
- to buffer size, it's a bug in Cygwin and the buffer in the calling
- function should be raised.
-*/
+ - The functions always create 0-terminated results, no matter what.
+ If the result is truncated due to buffer size, it's a bug in Cygwin
+ and the buffer in the calling function should be raised. */
size_t __stdcall
sys_cp_wcstombs (wctomb_p f_wctomb, const char *charset, char *dst, size_t len,
const wchar_t *src, size_t nwc)
@@ -487,7 +473,7 @@ sys_cp_wcstombs (wctomb_p f_wctomb, const char *charset, char *dst, size_t len,
else
break;
}
- if (n && dst && len != (size_t) -1)
+ if (n && dst)
{
n = (n < len) ? n : len - 1;
dst[n] = '\0';
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
index 1b047aaff..9fc4a298c 100644
--- a/winsup/cygwin/syscalls.cc
+++ b/winsup/cygwin/syscalls.cc
@@ -126,18 +126,6 @@ dup (int fd)
return res;
}
-inline int
-dup_finish (int oldfd, int newfd, int flags)
-{
- int res;
- if ((res = cygheap->fdtab.dup3 (oldfd, newfd, flags | O_EXCL)) == newfd)
- {
- cygheap_fdget (newfd)->inc_refcnt ();
- cygheap->fdtab.unlock (); /* dup3 exits with lock set on success */
- }
- return res;
-}
-
extern "C" int
dup2 (int oldfd, int newfd)
{
@@ -152,8 +140,8 @@ dup2 (int oldfd, int newfd)
cygheap_fdget cfd (oldfd);
res = (cfd >= 0) ? oldfd : -1;
}
- else
- res = dup_finish (oldfd, newfd, 0);
+ else if ((res = cygheap->fdtab.dup3 (oldfd, newfd, 0)) == newfd)
+ cygheap->fdtab[newfd]->refcnt (1);
syscall_printf ("%R = dup2(%d, %d)", res, oldfd, newfd);
return res;
@@ -174,8 +162,8 @@ dup3 (int oldfd, int newfd, int flags)
set_errno (cfd < 0 ? EBADF : EINVAL);
res = -1;
}
- else
- res = dup_finish (oldfd, newfd, flags);
+ else if ((res = cygheap->fdtab.dup3 (oldfd, newfd, flags)) == newfd)
+ cygheap->fdtab[newfd]->refcnt (1);
syscall_printf ("%R = dup3(%d, %d, %p)", res, oldfd, newfd, flags);
return res;
@@ -212,12 +200,7 @@ stop_transaction (NTSTATUS status, HANDLE old_trans, HANDLE trans)
}
static char desktop_ini[] =
- "[.ShellClassInfo]\r\n"
- "CLSID={645FF040-5081-101B-9F08-00AA002F954E}\r\n";
-
-static char desktop_ini_ext[] =
- "LocalizedResourceName=@%SystemRoot%\\system32\\shell32.dll,-8964\r\n";
-
+ "[.ShellClassInfo]\r\nCLSID={645FF040-5081-101B-9F08-00AA002F954E}\r\n";
static BYTE info2[] =
{
0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -228,8 +211,7 @@ enum bin_status
{
dont_move,
move_to_bin,
- has_been_moved,
- dir_not_empty
+ has_been_moved
};
static bin_status
@@ -246,9 +228,7 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access)
PFILE_NAME_INFORMATION pfni;
PFILE_INTERNAL_INFORMATION pfii;
PFILE_RENAME_INFORMATION pfri;
- ULONG frisiz;
FILE_DISPOSITION_INFORMATION disp = { TRUE };
- bool fs_has_per_user_recycler = pc.fs_is_ntfs () || pc.fs_is_refs ();
tmp_pathbuf tp;
PBYTE infobuf = (PBYTE) tp.w_get ();
@@ -273,8 +253,8 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access)
RtlInitEmptyUnicodeString (&recycler, recyclerbuf, sizeof recyclerbuf);
if (!pc.isremote ())
{
- if (wincap.has_recycle_dot_bin ()) /* NTFS and FAT since Vista, ReFS */
- RtlAppendUnicodeToString (&recycler, L"\\$RECYCLE.BIN\\");
+ if (wincap.has_recycle_dot_bin ()) /* NTFS and FAT since Vista */
+ RtlAppendUnicodeToString (&recycler, L"\\$Recycle.Bin\\");
else if (pc.fs_is_ntfs ()) /* NTFS up to 2K3 */
RtlAppendUnicodeToString (&recycler, L"\\RECYCLER\\");
else if (pc.fs_is_fat ()) /* FAT up to 2K3 */
@@ -311,10 +291,10 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access)
recycler.Length -= sizeof (WCHAR);
/* Store length of recycler base dir, if it's necessary to create it. */
recycler_base_len = recycler.Length;
- /* On NTFS or ReFS the recycler dir contains user specific subdirs, which
- are the actual recycle bins per user. The name if this dir is the
- string representation of the user SID. */
- if (fs_has_per_user_recycler)
+ /* On NTFS the recycler dir contains user specific subdirs, which are the
+ actual recycle bins per user. The name if this dir is the string
+ representation of the user SID. */
+ if (pc.fs_is_ntfs ())
{
UNICODE_STRING sid;
WCHAR sidbuf[128];
@@ -341,10 +321,7 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access)
pc.fs_flags () & FILE_UNICODE_ON_DISK
? L".\xdc63\xdc79\xdc67" : L".cyg");
pfii = (PFILE_INTERNAL_INFORMATION) infobuf;
- /* Note: Modern Samba versions apparently don't like buffer sizes of more
- than 65535 in some NtQueryInformationFile/NtSetInformationFile calls.
- Therefore we better use exact buffer sizes from now on. */
- status = NtQueryInformationFile (fh, &io, pfii, sizeof *pfii,
+ status = NtQueryInformationFile (fh, &io, pfii, 65536,
FileInternalInformation);
if (!NT_SUCCESS (status))
{
@@ -361,15 +338,12 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access)
pfri->RootDirectory = pc.isremote () ? NULL : rootdir;
pfri->FileNameLength = recycler.Length;
memcpy (pfri->FileName, recycler.Buffer, recycler.Length);
- frisiz = sizeof *pfri + pfri->FileNameLength - sizeof (WCHAR);
- status = NtSetInformationFile (fh, &io, pfri, frisiz, FileRenameInformation);
+ status = NtSetInformationFile (fh, &io, pfri, 65536, FileRenameInformation);
if (status == STATUS_OBJECT_PATH_NOT_FOUND && !pc.isremote ())
{
/* Ok, so the recycler and/or the recycler/SID directory don't exist.
First reopen root dir with permission to create subdirs. */
NtClose (rootdir);
- InitializeObjectAttributes (&attr, &root, OBJ_CASE_INSENSITIVE,
- NULL, NULL);
status = NtOpenFile (&rootdir, FILE_ADD_SUBDIRECTORY, &attr, &io,
FILE_SHARE_VALID_FLAGS, FILE_OPEN_FOR_BACKUP_INTENT);
if (!NT_SUCCESS (status))
@@ -380,17 +354,14 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access)
}
/* Then check if recycler exists by opening and potentially creating it.
Yes, we can really do that. Typically the recycle bin is created
- by the first user actually using the bin. Pre-Vista, the permissions
- are the default permissions propagated from the root directory.
- Since Vista the top-level recycle dir has explicit permissions. */
+ by the first user actually using the bin. The permissions are the
+ default permissions propagated from the root directory. */
InitializeObjectAttributes (&attr, &recycler, OBJ_CASE_INSENSITIVE,
- rootdir,
- wincap.has_recycle_dot_bin ()
- ? recycler_sd (true, true) : NULL);
+ rootdir, NULL);
recycler.Length = recycler_base_len;
status = NtCreateFile (&recyclerdir,
READ_CONTROL
- | (fs_has_per_user_recycler ? 0 : FILE_ADD_FILE),
+ | (pc.fs_is_ntfs () ? 0 : FILE_ADD_FILE),
&attr, &io, NULL,
FILE_ATTRIBUTE_DIRECTORY
| FILE_ATTRIBUTE_SYSTEM
@@ -405,12 +376,10 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access)
}
/* Next, if necessary, check if the recycler/SID dir exists and
create it if not. */
- if (fs_has_per_user_recycler)
+ if (pc.fs_is_ntfs ())
{
NtClose (recyclerdir);
recycler.Length = recycler_user_len;
- InitializeObjectAttributes (&attr, &recycler, OBJ_CASE_INSENSITIVE,
- rootdir, recycler_sd (false, true));
status = NtCreateFile (&recyclerdir, READ_CONTROL | FILE_ADD_FILE,
&attr, &io, NULL, FILE_ATTRIBUTE_DIRECTORY
| FILE_ATTRIBUTE_SYSTEM
@@ -431,7 +400,7 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access)
{
RtlInitUnicodeString (&fname, L"desktop.ini");
InitializeObjectAttributes (&attr, &fname, OBJ_CASE_INSENSITIVE,
- recyclerdir, recycler_sd (false, false));
+ recyclerdir, NULL);
status = NtCreateFile (&tmp_fh, FILE_GENERIC_WRITE, &attr, &io, NULL,
FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN,
FILE_SHARE_VALID_FLAGS, FILE_CREATE,
@@ -447,15 +416,6 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access)
if (!NT_SUCCESS (status))
debug_printf ("NtWriteFile (%S) failed, status = %p",
&fname, status);
- else if (wincap.has_recycle_dot_bin ())
- {
- status = NtWriteFile (tmp_fh, NULL, NULL, NULL, &io,
- desktop_ini_ext,
- sizeof desktop_ini_ext - 1, NULL, NULL);
- if (!NT_SUCCESS (status))
- debug_printf ("NtWriteFile (%S) failed, status = %p",
- &fname, status);
- }
NtClose (tmp_fh);
}
if (!wincap.has_recycle_dot_bin ()) /* No INFO2 file since Vista */
@@ -483,7 +443,7 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access)
}
NtClose (recyclerdir);
/* Shoot again. */
- status = NtSetInformationFile (fh, &io, pfri, frisiz,
+ status = NtSetInformationFile (fh, &io, pfri, 65536,
FileRenameInformation);
}
if (!NT_SUCCESS (status))
@@ -499,26 +459,6 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access)
Otherwise the below code closes the handle to allow replacing the file. */
status = NtSetInformationFile (fh, &io, &disp, sizeof disp,
FileDispositionInformation);
- if (status == STATUS_DIRECTORY_NOT_EMPTY)
- {
- /* Uh oh! This was supposed to be avoided by the check_dir_not_empty
- test in unlink_nt, but given that the test isn't atomic, this *can*
- happen. Try to move the dir back ASAP. */
- pfri->RootDirectory = NULL;
- pfri->FileNameLength = pc.get_nt_native_path ()->Length;
- memcpy (pfri->FileName, pc.get_nt_native_path ()->Buffer,
- pc.get_nt_native_path ()->Length);
- frisiz = sizeof *pfri + pfri->FileNameLength - sizeof (WCHAR);
- if (NT_SUCCESS (NtSetInformationFile (fh, &io, pfri, frisiz,
- FileRenameInformation)))
- {
- /* Give notice to unlink_nt and leave immediately. This avoids
- closing the handle, which might still be used if called from
- the rm -r workaround code. */
- bin_stat = dir_not_empty;
- goto out;
- }
- }
/* In case of success, restore R/O attribute to accommodate hardlinks.
That leaves potentially hardlinks around with the R/O bit suddenly
off if setting the delete disposition failed, but please, keep in
@@ -550,7 +490,7 @@ try_to_bin (path_conv &pc, HANDLE &fh, ACCESS_MASK access)
status);
goto out;
}
- status = NtSetInformationFile (tmp_fh, &io, pfri, frisiz,
+ status = NtSetInformationFile (tmp_fh, &io, pfri, 65536,
FileRenameInformation);
NtClose (tmp_fh);
if (!NT_SUCCESS (status))
@@ -717,45 +657,46 @@ unlink_nt (path_conv &pc)
if a file is already open elsewhere for other purposes than
reading and writing data. */
status = NtOpenFile (&fh, access, &attr, &io, FILE_SHARE_DELETE, flags);
- /* STATUS_SHARING_VIOLATION is what we expect. STATUS_LOCK_NOT_GRANTED can
- be generated under not quite clear circumstances when trying to open a
- file on NFS with FILE_SHARE_DELETE only. This has been observed with
- SFU 3.5 if the NFS share has been mounted under a drive letter. It's
- not generated for all files, but only for some. If it's generated once
- for a file, it will be generated all the time. It looks as if wrong file
- state information is stored within the NFS client which never times out.
- Opening the file with FILE_SHARE_VALID_FLAGS will work, though, and it
- is then possible to delete the file quite normally. */
if (status == STATUS_SHARING_VIOLATION || status == STATUS_LOCK_NOT_GRANTED)
{
- debug_printf ("Sharing violation when opening %S",
- pc.get_nt_native_path ());
- /* We never call try_to_bin on NFS and NetApp for the follwing reasons:
-
- NFS implements its own mechanism to remove in-use files, which looks
- quite similar to what we do in try_to_bin for remote files.
+ /* STATUS_LOCK_NOT_GRANTED can be generated under not quite clear
+ circumstances when trying to open a file on NFS with FILE_SHARE_DELETE
+ only. This has been observed with SFU 3.5 if the NFS share has been
+ mounted under a drive letter. It's not generated for all files, but
+ only for some. If it's generated once for a file, it will be
+ generated all the time. It looks like wrong file state information
+ is stored within the NFS client, for no apparent reason, which never
+ times out. Opening the file with FILE_SHARE_VALID_FLAGS will work,
+ though, and it is then possible to delete the file quite normally.
+
+ NFS implements its own mechanism to remove in-use files which
+ looks quite similar to what we do in try_to_bin for remote files.
+ That's why we don't call try_to_bin on NFS.
Netapp filesystems don't understand the "move and delete" method
at all and have all kinds of weird effects. Just setting the delete
dispositon usually works fine, though. */
+ debug_printf ("Sharing violation when opening %S",
+ pc.get_nt_native_path ());
if (!pc.fs_is_nfs () && !pc.fs_is_netapp ())
bin_stat = move_to_bin;
- /* If the file is not a directory, of if we didn't set the move_to_bin
- flag, just proceed with the FILE_SHARE_VALID_FLAGS set. */
- if (!pc.isdir () || bin_stat == dont_move)
+ if (!pc.isdir () || pc.isremote ())
status = NtOpenFile (&fh, access, &attr, &io,
FILE_SHARE_VALID_FLAGS, flags);
else
{
- /* Otherwise it's getting tricky. The directory is opened in some
- process, so we're supposed to move it to the recycler and mark it
- for deletion. But what if the directory is not empty? The move
+ /* It's getting tricky. The directory is opened in some process,
+ so we're supposed to move it to the recycler and mark it for
+ deletion. But what if the directory is not empty? The move
will work, but the subsequent delete will fail. So we would
- have to move it back. While we do that in try_to_bin, it's bad,
- because the move results in a temporary inconsistent state.
- So, we test first if the directory is empty. If not, we bail
- out with STATUS_DIRECTORY_NOT_EMPTY. This avoids most of the
- problems. */
+ have to move it back. That's bad, because the directory would
+ be moved around which results in a temporary inconsistent state.
+ So, what we do here is to test if the directory is empty. If
+ not, we bail out with STATUS_DIRECTORY_NOT_EMPTY. The below code
+ tests for at least three entries in the directory, ".", "..",
+ and another one. Three entries means, not empty. This doesn't
+ work for the root directory of a drive, but the root dir can
+ neither be deleted, nor moved anyway. */
status = NtOpenFile (&fh, access | FILE_LIST_DIRECTORY | SYNCHRONIZE,
&attr, &io, FILE_SHARE_VALID_FLAGS,
flags | FILE_SYNCHRONOUS_IO_NONALERT);
@@ -789,15 +730,9 @@ unlink_nt (path_conv &pc)
/* Try to move to bin if a sharing violation occured. If that worked,
we're done. */
if (bin_stat == move_to_bin
- && (bin_stat = try_to_bin (pc, fh, access)) >= has_been_moved)
+ && (bin_stat = try_to_bin (pc, fh, access)) == has_been_moved)
{
- if (bin_stat == has_been_moved)
- status = STATUS_SUCCESS;
- else
- {
- status = STATUS_DIRECTORY_NOT_EMPTY;
- NtClose (fh);
- }
+ status = STATUS_SUCCESS;
goto out;
}
@@ -862,7 +797,6 @@ try_again:
bin_stat = try_to_bin (pc, fh, access);
}
}
- /* Do NOT handle bin_stat == dir_not_empty here! */
if (bin_stat == has_been_moved)
status = STATUS_SUCCESS;
else
@@ -874,15 +808,12 @@ try_again:
}
}
}
- else if (status2 != STATUS_OBJECT_PATH_NOT_FOUND
- && status2 != STATUS_OBJECT_NAME_NOT_FOUND)
+ else
{
fh = NULL;
debug_printf ("Opening dir %S for check_dir_not_empty failed, "
"status = %p", pc.get_nt_native_path (), status2);
}
- else /* Directory disappeared between NtClose and NtOpenFile. */
- status = STATUS_SUCCESS;
}
/* Trying to delete a hardlink to a file in use by the system in some
way (for instance, font files) by setting the delete disposition fails
@@ -920,10 +851,8 @@ try_again:
unlinking didn't work. */
if (bin_stat == dont_move)
bin_stat = try_to_bin (pc, fh, access);
- if (bin_stat >= has_been_moved)
- status = bin_stat == has_been_moved
- ? STATUS_SUCCESS
- : STATUS_DIRECTORY_NOT_EMPTY;
+ if (bin_stat == has_been_moved)
+ status = STATUS_SUCCESS;
}
else
NtClose (fh2);
@@ -933,7 +862,7 @@ try_again:
{
if (access & FILE_WRITE_ATTRIBUTES)
{
- /* Restore R/O attribute if setting the delete disposition failed. */
+ /* Restore R/O attribute if setting the delete dispostion failed. */
if (!NT_SUCCESS (status))
NtSetAttributesFile (fh, pc.file_attributes ());
/* If we succeeded, restore R/O attribute to accommodate hardlinks.
@@ -2332,7 +2261,7 @@ retry:
{
debug_printf ("status %p", status);
if (status == STATUS_SHARING_VIOLATION
- && cygwait (10L) != WAIT_SIGNALED)
+ && WaitForSingleObject (signal_arrived, 10L) != WAIT_OBJECT_0)
{
/* Typical BLODA problem. Some virus scanners check newly generated
files and while doing that disallow DELETE access. That's really
diff --git a/winsup/cygwin/syslog.cc b/winsup/cygwin/syslog.cc
index aeba5a926..6d42f1b00 100644
--- a/winsup/cygwin/syslog.cc
+++ b/winsup/cygwin/syslog.cc
@@ -1,7 +1,7 @@
/* syslog.cc
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
- 2006, 2007, 2009, 2011, 2012 Red Hat, Inc.
+ 2006, 2007, 2009, 2011 Red Hat, Inc.
This file is part of Cygwin.
@@ -10,15 +10,15 @@ Cygwin license. Please consult the file "CYGWIN_LICENSE" for
details. */
#define __INSIDE_CYGWIN_NET__
-#define USE_SYS_TYPES_FD_SET
+
#include "winsup.h"
-#include <ws2tcpip.h>
-#include <iphlpapi.h>
#include <stdlib.h>
#include <stdio.h>
#include <syslog.h>
#include <unistd.h>
#include <sys/un.h>
+#include <netinet/in.h>
+#include <iphlpapi.h>
#include "cygerrno.h"
#include "security.h"
#include "path.h"
diff --git a/winsup/cygwin/thread.cc b/winsup/cygwin/thread.cc
index aefab24cd..af0d6afc7 100644
--- a/winsup/cygwin/thread.cc
+++ b/winsup/cygwin/thread.cc
@@ -32,7 +32,6 @@ details. */
#include "dtable.h"
#include "cygheap.h"
#include "ntdll.h"
-#include "cygwait.h"
extern "C" void __fp_lock_all ();
extern "C" void __fp_unlock_all ();
@@ -432,18 +431,8 @@ pthread::precreate (pthread_attr *newattr)
magic = 0;
return;
}
- /* This mutex MUST be recursive. Consider the following scenario:
- - The thread installs a cleanup handler.
- - The cleanup handler calls a function which itself installs a
- cleanup handler.
- - pthread_cancel is called for this thread.
- - The thread's cleanup handler is called under mutex lock condition.
- - The cleanup handler calls the subsequent function with cleanup handler.
- - The function runs to completion, so it calls pthread_cleanup_pop.
- - pthread_cleanup_pop calls pthread::pop_cleanup_handler which will again
- try to lock the mutex.
- - Deadlock. */
- mutex.set_type (PTHREAD_MUTEX_RECURSIVE);
+ /* Change the mutex type to NORMAL to speed up mutex operations */
+ mutex.set_type (PTHREAD_MUTEX_NORMAL);
if (!create_cancel_event ())
magic = 0;
}
@@ -573,27 +562,10 @@ pthread::cancel ()
CONTEXT context;
context.ContextFlags = CONTEXT_CONTROL;
GetThreadContext (win32_obj_id, &context);
- /* The OS is not foolproof in terms of asynchronous thread cancellation
- and tends to hang infinitely if we change the instruction pointer.
- So just don't cancel asynchronously if the thread is currently
- executing Windows code. Rely on deferred cancellation in this case. */
- if (!cygtls->inside_kernel (&context))
- {
- context.Eip = (DWORD) pthread::static_cancel_self;
- SetThreadContext (win32_obj_id, &context);
- }
+ context.Eip = (DWORD) pthread::static_cancel_self;
+ SetThreadContext (win32_obj_id, &context);
}
mutex.unlock ();
- /* See above. For instance, a thread which waits for a semaphore in sem_wait
- will call cancelable_wait which in turn calls WFMO. While this WFMO call
- is cancelable by setting the thread's cancel_event object, the OS
- apparently refuses to set the thread's context and continues to wait for
- the WFMO conditions. This is *not* reflected in the return value of
- SetThreadContext or ResumeThread, btw.
- So, what we do here is to set the cancel_event as well to allow at least
- a deferred cancel. */
- canceled = true;
- SetEvent (cancel_event);
ResumeThread (win32_obj_id);
return 0;
@@ -938,6 +910,92 @@ pthread::static_cancel_self ()
pthread::self ()->cancel_self ();
}
+DWORD
+cancelable_wait (HANDLE object, PLARGE_INTEGER timeout,
+ const cw_cancel_action cancel_action,
+ const enum cw_sig_wait sig_wait)
+{
+ DWORD res;
+ DWORD num = 0;
+ HANDLE wait_objects[4];
+ pthread_t thread = pthread::self ();
+
+ /* Do not change the wait order.
+ The object must have higher priority than the cancel event,
+ because WaitForMultipleObjects will return the smallest index
+ if both objects are signaled. */
+ wait_objects[num++] = object;
+ DWORD cancel_n;
+ if (cancel_action == cw_no_cancel || !pthread::is_good_object (&thread) ||
+ thread->cancelstate == PTHREAD_CANCEL_DISABLE)
+ cancel_n = WAIT_TIMEOUT + 1;
+ else
+ {
+ cancel_n = WAIT_OBJECT_0 + num++;
+ wait_objects[cancel_n] = thread->cancel_event;
+ }
+
+ DWORD sig_n;
+ if (sig_wait == cw_sig_nosig)
+ sig_n = WAIT_TIMEOUT + 1;
+ else
+ {
+ sig_n = WAIT_OBJECT_0 + num++;
+ wait_objects[sig_n] = signal_arrived;
+ }
+
+ DWORD timeout_n;
+ if (!timeout)
+ timeout_n = WAIT_TIMEOUT + 1;
+ else
+ {
+ timeout_n = WAIT_OBJECT_0 + num++;
+ if (!_my_tls.locals.cw_timer)
+ NtCreateTimer (&_my_tls.locals.cw_timer, TIMER_ALL_ACCESS, NULL,
+ NotificationTimer);
+ NtSetTimer (_my_tls.locals.cw_timer, timeout, NULL, NULL, FALSE, 0, NULL);
+ wait_objects[timeout_n] = _my_tls.locals.cw_timer;
+ }
+
+ while (1)
+ {
+ res = WaitForMultipleObjects (num, wait_objects, FALSE, INFINITE);
+ if (res == cancel_n)
+ {
+ if (cancel_action == cw_cancel_self)
+ pthread::static_cancel_self ();
+ res = WAIT_CANCELED;
+ }
+ else if (res == timeout_n)
+ res = WAIT_TIMEOUT;
+ else if (res != sig_n)
+ /* all set */;
+ else if (sig_wait == cw_sig_eintr)
+ res = WAIT_SIGNALED;
+ else
+ {
+ _my_tls.call_signal_handler ();
+ continue;
+ }
+ break;
+ }
+
+ if (timeout)
+ {
+ TIMER_BASIC_INFORMATION tbi;
+
+ NtQueryTimer (_my_tls.locals.cw_timer, TimerBasicInformation, &tbi,
+ sizeof tbi, NULL);
+ /* if timer expired, TimeRemaining is negative and represents the
+ system uptime when signalled */
+ if (timeout->QuadPart < 0LL)
+ timeout->QuadPart = tbi.SignalState ? 0LL : tbi.TimeRemaining.QuadPart;
+ NtCancelTimer (_my_tls.locals.cw_timer, NULL);
+ }
+
+ return res;
+}
+
int
pthread::setcancelstate (int state, int *oldstate)
{
@@ -1014,9 +1072,6 @@ pthread::pop_cleanup_handler (int const execute)
void
pthread::pop_all_cleanup_handlers ()
{
- /* We will no honor cancels since the thread is exiting. */
- cancelstate = PTHREAD_CANCEL_DISABLE;
-
while (cleanup_stack != NULL)
pop_cleanup_handler (1);
}
@@ -1228,7 +1283,7 @@ pthread_cond::wait (pthread_mutex_t mutex, PLARGE_INTEGER timeout)
++mutex->condwaits;
mutex->unlock ();
- rv = cancelable_wait (sem_wait, timeout, cw_cancel | cw_sig_eintr);
+ rv = cancelable_wait (sem_wait, timeout, cw_no_cancel_self, cw_sig_eintr);
mtx_out.lock ();
@@ -1743,8 +1798,7 @@ pthread_mutex::lock ()
else if (type == PTHREAD_MUTEX_NORMAL /* potentially causes deadlock */
|| !pthread::equal (owner, self))
{
- /* FIXME: no cancel? */
- cancelable_wait (win32_obj_id, cw_infinite, cw_sig);
+ cancelable_wait (win32_obj_id, NULL, cw_no_cancel, cw_sig_resume);
set_owner (self);
}
else
@@ -1884,8 +1938,7 @@ pthread_spinlock::lock ()
/* Minimal timeout to minimize CPU usage while still spinning. */
LARGE_INTEGER timeout;
timeout.QuadPart = -10000LL;
- /* FIXME: no cancel? */
- cancelable_wait (win32_obj_id, &timeout, cw_sig);
+ cancelable_wait (win32_obj_id, &timeout, cw_no_cancel, cw_sig_resume);
}
}
while (result == -1);
@@ -1930,7 +1983,6 @@ pthread::thread_init_wrapper (void *arg)
_my_tls.sigmask = thread->parent_sigmask;
thread->mutex.unlock ();
- debug_printf ("tid %p", &_my_tls);
thread_printf ("started thread %p %p %p %p %p %p", arg, &_my_tls.local_clib,
_impure_ptr, thread, thread->function, thread->arg);
@@ -2364,7 +2416,7 @@ pthread::join (pthread_t *thread, void **return_val)
(*thread)->attr.joinable = PTHREAD_CREATE_DETACHED;
(*thread)->mutex.unlock ();
- switch (cancelable_wait ((*thread)->win32_obj_id, cw_infinite, cw_sig | cw_cancel))
+ switch (cancelable_wait ((*thread)->win32_obj_id, NULL, cw_no_cancel_self, cw_sig_resume))
{
case WAIT_OBJECT_0:
if (return_val)
@@ -3015,7 +3067,10 @@ pthread_kill (pthread_t thread, int sig)
if (!thread->valid)
rval = ESRCH;
else if (sig)
- rval = sig_send (NULL, si, thread->cygtls);
+ {
+ thread->cygtls->set_threadkill ();
+ rval = sig_send (NULL, si, thread->cygtls);
+ }
else
switch (WaitForSingleObject (thread->win32_obj_id, 0))
{
@@ -3476,7 +3531,7 @@ semaphore::_timedwait (const struct timespec *abstime)
timeout.QuadPart = abstime->tv_sec * NSPERSEC
+ (abstime->tv_nsec + 99) / 100 + FACTOR;
- switch (cancelable_wait (win32_obj_id, &timeout, cw_cancel | cw_cancel_self | cw_sig_eintr))
+ switch (cancelable_wait (win32_obj_id, &timeout, cw_cancel_self, cw_sig_eintr))
{
case WAIT_OBJECT_0:
currentvalue--;
@@ -3498,7 +3553,7 @@ semaphore::_timedwait (const struct timespec *abstime)
int
semaphore::_wait ()
{
- switch (cancelable_wait (win32_obj_id, cw_infinite, cw_cancel | cw_cancel_self | cw_sig_eintr))
+ switch (cancelable_wait (win32_obj_id, NULL, cw_cancel_self, cw_sig_eintr))
{
case WAIT_OBJECT_0:
currentvalue--;
diff --git a/winsup/cygwin/thread.h b/winsup/cygwin/thread.h
index 141100714..ec3ca7ebf 100644
--- a/winsup/cygwin/thread.h
+++ b/winsup/cygwin/thread.h
@@ -29,7 +29,25 @@ details. */
#include "security.h"
#include <errno.h>
#include "cygerrno.h"
-#include "cygwait.h"
+
+enum cw_sig_wait
+{
+ cw_sig_nosig,
+ cw_sig_eintr,
+ cw_sig_resume
+};
+
+enum cw_cancel_action
+{
+ cw_cancel_self,
+ cw_no_cancel_self,
+ cw_no_cancel
+};
+
+DWORD cancelable_wait (HANDLE, PLARGE_INTEGER timeout = NULL,
+ const cw_cancel_action = cw_cancel_self,
+ const enum cw_sig_wait = cw_sig_nosig)
+ __attribute__ ((regparm (3)));
class fast_mutex
{
@@ -60,7 +78,7 @@ public:
void lock ()
{
if (InterlockedIncrement ((long *) &lock_counter) != 1)
- cancelable_wait (win32_obj_id, cw_infinite, cw_sig);
+ cancelable_wait (win32_obj_id, NULL, cw_no_cancel, cw_sig_resume);
}
void unlock ()
@@ -344,6 +362,9 @@ public:
pthread_spinlock (int);
};
+#define WAIT_CANCELED (WAIT_OBJECT_0 + 1)
+#define WAIT_SIGNALED (WAIT_OBJECT_0 + 2)
+
class _cygtls;
class pthread: public verifyable_object
{
diff --git a/winsup/cygwin/tlsoffsets.h b/winsup/cygwin/tlsoffsets.h
index 1ab4559b9..18057742c 100644
--- a/winsup/cygwin/tlsoffsets.h
+++ b/winsup/cygwin/tlsoffsets.h
@@ -1,42 +1,42 @@
//;# autogenerated: Do not edit.
-//; $tls::start_offset = -12700;
-//; $tls::locals = -12700;
-//; $tls::plocals = 0;
-//; $tls::local_clib = -11236;
-//; $tls::plocal_clib = 1464;
-//; $tls::__dontuse = -11236;
-//; $tls::p__dontuse = 1464;
-//; $tls::func = -10148;
-//; $tls::pfunc = 2552;
-//; $tls::saved_errno = -10144;
-//; $tls::psaved_errno = 2556;
-//; $tls::sa_flags = -10140;
-//; $tls::psa_flags = 2560;
-//; $tls::oldmask = -10136;
-//; $tls::poldmask = 2564;
-//; $tls::deltamask = -10132;
-//; $tls::pdeltamask = 2568;
-//; $tls::errno_addr = -10128;
-//; $tls::perrno_addr = 2572;
-//; $tls::sigmask = -10124;
-//; $tls::psigmask = 2576;
-//; $tls::sigwait_mask = -10120;
-//; $tls::psigwait_mask = 2580;
-//; $tls::sigwait_info = -10116;
-//; $tls::psigwait_info = 2584;
-//; $tls::signal_arrived = -10112;
-//; $tls::psignal_arrived = 2588;
-//; $tls::signal_waiting = -10108;
-//; $tls::psignal_waiting = 2592;
-//; $tls::thread_context = -10104;
-//; $tls::pthread_context = 2596;
-//; $tls::thread_id = -9892;
-//; $tls::pthread_id = 2808;
-//; $tls::infodata = -9888;
-//; $tls::pinfodata = 2812;
-//; $tls::tid = -9740;
-//; $tls::ptid = 2960;
+//; $tls::sizeof__cygtls = 4048;
+//; $tls::func = -12700;
+//; $tls::pfunc = 0;
+//; $tls::saved_errno = -12696;
+//; $tls::psaved_errno = 4;
+//; $tls::sa_flags = -12692;
+//; $tls::psa_flags = 8;
+//; $tls::oldmask = -12688;
+//; $tls::poldmask = 12;
+//; $tls::deltamask = -12684;
+//; $tls::pdeltamask = 16;
+//; $tls::event = -12680;
+//; $tls::pevent = 20;
+//; $tls::errno_addr = -12676;
+//; $tls::perrno_addr = 24;
+//; $tls::sigmask = -12672;
+//; $tls::psigmask = 28;
+//; $tls::sigwait_mask = -12668;
+//; $tls::psigwait_mask = 32;
+//; $tls::sigwait_info = -12664;
+//; $tls::psigwait_info = 36;
+//; $tls::thread_context = -12660;
+//; $tls::pthread_context = 40;
+//; $tls::thread_id = -12448;
+//; $tls::pthread_id = 252;
+//; $tls::threadkill = -12444;
+//; $tls::pthreadkill = 256;
+//; $tls::infodata = -12440;
+//; $tls::pinfodata = 260;
+//; $tls::tid = -12292;
+//; $tls::ptid = 408;
+//; $tls::local_clib = -12288;
+//; $tls::plocal_clib = 412;
+//; $tls::__dontuse = -12288;
+//; $tls::p__dontuse = 412;
+//; $tls::locals = -11200;
+//; $tls::plocals = 1500;
//; $tls::_ctinfo = -9736;
//; $tls::p_ctinfo = 2964;
//; $tls::andreas = -9732;
@@ -59,42 +59,42 @@
//; $tls::pinitialized = 4044;
//; __DATA__
-#define tls_locals (-12700)
-#define tls_plocals (0)
-#define tls_local_clib (-11236)
-#define tls_plocal_clib (1464)
-#define tls___dontuse (-11236)
-#define tls_p__dontuse (1464)
-#define tls_func (-10148)
-#define tls_pfunc (2552)
-#define tls_saved_errno (-10144)
-#define tls_psaved_errno (2556)
-#define tls_sa_flags (-10140)
-#define tls_psa_flags (2560)
-#define tls_oldmask (-10136)
-#define tls_poldmask (2564)
-#define tls_deltamask (-10132)
-#define tls_pdeltamask (2568)
-#define tls_errno_addr (-10128)
-#define tls_perrno_addr (2572)
-#define tls_sigmask (-10124)
-#define tls_psigmask (2576)
-#define tls_sigwait_mask (-10120)
-#define tls_psigwait_mask (2580)
-#define tls_sigwait_info (-10116)
-#define tls_psigwait_info (2584)
-#define tls_signal_arrived (-10112)
-#define tls_psignal_arrived (2588)
-#define tls_signal_waiting (-10108)
-#define tls_psignal_waiting (2592)
-#define tls_thread_context (-10104)
-#define tls_pthread_context (2596)
-#define tls_thread_id (-9892)
-#define tls_pthread_id (2808)
-#define tls_infodata (-9888)
-#define tls_pinfodata (2812)
-#define tls_tid (-9740)
-#define tls_ptid (2960)
+#define tls_func (-12700)
+#define tls_pfunc (0)
+#define tls_saved_errno (-12696)
+#define tls_psaved_errno (4)
+#define tls_sa_flags (-12692)
+#define tls_psa_flags (8)
+#define tls_oldmask (-12688)
+#define tls_poldmask (12)
+#define tls_deltamask (-12684)
+#define tls_pdeltamask (16)
+#define tls_event (-12680)
+#define tls_pevent (20)
+#define tls_errno_addr (-12676)
+#define tls_perrno_addr (24)
+#define tls_sigmask (-12672)
+#define tls_psigmask (28)
+#define tls_sigwait_mask (-12668)
+#define tls_psigwait_mask (32)
+#define tls_sigwait_info (-12664)
+#define tls_psigwait_info (36)
+#define tls_thread_context (-12660)
+#define tls_pthread_context (40)
+#define tls_thread_id (-12448)
+#define tls_pthread_id (252)
+#define tls_threadkill (-12444)
+#define tls_pthreadkill (256)
+#define tls_infodata (-12440)
+#define tls_pinfodata (260)
+#define tls_tid (-12292)
+#define tls_ptid (408)
+#define tls_local_clib (-12288)
+#define tls_plocal_clib (412)
+#define tls___dontuse (-12288)
+#define tls_p__dontuse (412)
+#define tls_locals (-11200)
+#define tls_plocals (1500)
#define tls__ctinfo (-9736)
#define tls_p_ctinfo (2964)
#define tls_andreas (-9732)
diff --git a/winsup/cygwin/wait.cc b/winsup/cygwin/wait.cc
index ae0403194..91a76239a 100644
--- a/winsup/cygwin/wait.cc
+++ b/winsup/cygwin/wait.cc
@@ -1,7 +1,7 @@
/* wait.cc: Posix wait routines.
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
- 2005, 2009, 2011, 2012 Red Hat, Inc.
+ 2005, 2009, 2011 Red Hat, Inc.
This file is part of Cygwin.
@@ -14,7 +14,6 @@ details. */
#include "sigproc.h"
#include "thread.h"
#include "cygtls.h"
-#include "cygwait.h"
/* This is called _wait and not wait because the real wait is defined
in libc/syscalls/syswait.c. It calls us. */
@@ -80,7 +79,7 @@ wait4 (int intpid, int *status, int options, struct rusage *r)
if ((waitfor = w->ev) == NULL)
goto nochildren;
- res = cancelable_wait (waitfor, cw_infinite, cw_cancel | cw_cancel_self);
+ res = cancelable_wait (waitfor);
sigproc_printf ("%d = cancelable_wait (...)", res);
diff --git a/winsup/cygwin/winbase.h b/winsup/cygwin/winbase.h
index 95fac3045..00c71a923 100644
--- a/winsup/cygwin/winbase.h
+++ b/winsup/cygwin/winbase.h
@@ -1,6 +1,6 @@
/* winbase.h
- Copyright 2002, 2003, 2004, 2008, 2009, 2012 Red Hat, Inc.
+ Copyright 2002, 2003, 2004, 2008 Red Hat, Inc.
This software is a copyrighted work licensed under the terms of the
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
@@ -11,25 +11,10 @@ details. */
#ifndef _WINBASE2_H
#define _WINBASE2_H
-/* For some unknown reason, InterlockedAdd is only supported on Itanium
- when using the Windows headers. Fortunately we're not restricted to the
- Windows headers :) */
-extern __inline__ LONG
-ilockadd (volatile LONG *m, LONG value)
+extern __inline__ long
+ilockincr (volatile long *m)
{
- register LONG __res;
- __asm__ __volatile__ ("\n\
- movl %3,%0\n\
- lock xadd %0,%1\n\
- addl %3,%0\n\
- ": "=&r" (__res), "=m" (*m): "m" (*m), "r" (value): "cc");
- return __res;
-}
-
-extern __inline__ LONG
-ilockincr (volatile LONG *m)
-{
- register LONG __res;
+ register int __res;
__asm__ __volatile__ ("\n\
movl $1,%0\n\
lock xadd %0,%1\n\
@@ -38,10 +23,10 @@ ilockincr (volatile LONG *m)
return __res;
}
-extern __inline__ LONG
-ilockdecr (volatile LONG *m)
+extern __inline__ long
+ilockdecr (volatile long *m)
{
- register LONG __res;
+ register int __res;
__asm__ __volatile__ ("\n\
movl $0xffffffff,%0\n\
lock xadd %0,%1\n\
@@ -50,12 +35,12 @@ ilockdecr (volatile LONG *m)
return __res;
}
-extern __inline__ LONG
-ilockexch (volatile LONG *t, long v)
+extern __inline__ long
+ilockexch (volatile long *t, long v)
{
return
({
- register LONG ret __asm ("%eax");
+ register long ret __asm ("%eax");
__asm __volatile ("\n"
"1: lock cmpxchgl %2, %1\n"
" jne 1b\n"
@@ -66,12 +51,12 @@ ilockexch (volatile LONG *t, long v)
});
}
-extern __inline__ LONG
-ilockcmpexch (volatile LONG *t, LONG v, LONG c)
+extern __inline__ long
+ilockcmpexch (volatile long *t, long v, long c)
{
return
({
- register LONG ret __asm ("%eax");
+ register long ret __asm ("%eax");
__asm __volatile ("lock cmpxchgl %2, %1"
: "=a" (ret), "=m" (*t)
: "r" (v), "m" (*t), "0" (c)
@@ -80,8 +65,6 @@ ilockcmpexch (volatile LONG *t, LONG v, LONG c)
});
}
-#undef InterlockedAdd
-#define InterlockedAdd ilockadd
#undef InterlockedIncrement
#define InterlockedIncrement ilockincr
#undef InterlockedDecrement
@@ -90,9 +73,4 @@ ilockcmpexch (volatile LONG *t, LONG v, LONG c)
#define InterlockedExchange ilockexch
#undef InterlockedCompareExchange
#define InterlockedCompareExchange ilockcmpexch
-#undef InterlockedCompareExchangePointer
-#ifndef __x86_64
-#define InterlockedCompareExchangePointer(d,e,c) \
- (PVOID)InterlockedCompareExchange((LONG volatile *)(d),(LONG)(e),(LONG)(c))
-#endif /* !__x86_64 */
#endif /*_WINBASE2_H*/
diff --git a/winsup/cygwin/wincap.cc b/winsup/cygwin/wincap.cc
index 48b51c275..c5cac6aa2 100644
--- a/winsup/cygwin/wincap.cc
+++ b/winsup/cygwin/wincap.cc
@@ -347,52 +347,72 @@ wincapc::init ()
return; // already initialized
GetSystemInfo (&system_info);
+ memset (&version, 0, sizeof version);
version.dwOSVersionInfoSize = sizeof (OSVERSIONINFOEX);
- GetVersionEx (reinterpret_cast<LPOSVERSIONINFO>(&version));
+ if (!GetVersionEx (reinterpret_cast<LPOSVERSIONINFO>(&version)))
+ api_fatal ("Cygwin requires at least Windows 2000.");
- switch (version.dwMajorVersion)
+ switch (version.dwPlatformId)
{
- case 5:
- switch (version.dwMinorVersion)
+ case VER_PLATFORM_WIN32_NT:
+ switch (version.dwMajorVersion)
{
- case 0:
- if (version.wServicePackMajor < 4)
- caps = &wincap_2000;
- else
- caps = &wincap_2000sp4;
+ case 4:
+ /* I'd be very surprised if this code is ever hit, but it doesn't
+ hurt to keep it. */
+ api_fatal ("Cygwin requires at least Windows 2000.");
break;
-
- case 1:
- caps = &wincap_xp;
- switch (version.wServicePackMajor)
+ case 5:
+ switch (version.dwMinorVersion)
{
- case 0:
- caps = &wincap_xp;
- case 1:
- caps = &wincap_xpsp1;
- default:
- caps = &wincap_xpsp2;
- }
- break;
+ case 0:
+ if (version.wServicePackMajor < 4)
+ caps = &wincap_2000;
+ else
+ caps = &wincap_2000sp4;
+ break;
- default:
- caps = &wincap_2003;
- }
- break;
- case 6:
- switch (version.dwMinorVersion)
- {
- case 0:
- caps = &wincap_vista;
+ case 1:
+ caps = &wincap_xp;
+ switch (version.wServicePackMajor)
+ {
+ case 0:
+ caps = &wincap_xp;
+ case 1:
+ caps = &wincap_xpsp1;
+ default:
+ caps = &wincap_xpsp2;
+ }
+ break;
+
+ default:
+ caps = &wincap_2003;
+ }
break;
- case 1:
- caps = &wincap_7;
+ case 6:
+ switch (version.dwMinorVersion)
+ {
+ case 0:
+ caps = &wincap_vista;
+ break;
+ case 1:
+ caps = &wincap_7;
+ break;
+ default:
+ caps = &wincap_8;
+ break;
+ }
break;
default:
- caps = &wincap_8;
+ caps = &wincap_minimal;
break;
}
break;
+ case VER_PLATFORM_WIN32_WINDOWS:
+ /* I'd be very surprised if this code is ever hit, but it doesn't
+ hurt to keep it. */
+ api_fatal ("Windows 95/98/Me are not supported.");
+ break;
default:
caps = &wincap_minimal;
break;
diff --git a/winsup/cygwin/winlean.h b/winsup/cygwin/winlean.h
index aa092ee53..d2d7f7a56 100644
--- a/winsup/cygwin/winlean.h
+++ b/winsup/cygwin/winlean.h
@@ -1,6 +1,6 @@
/* winlean.h - Standard "lean" windows include
- Copyright 2010, 2011, 2012 Red Hat, Inc.
+ Copyright 2010, 2011 Red Hat, Inc.
This file is part of Cygwin.
@@ -11,85 +11,22 @@ details. */
#ifndef _WINLEAN_H
#define _WINLEAN_H 1
#define WIN32_LEAN_AND_MEAN 1
-
-/* Mingw32 */
#define _WINGDI_H
#define _WINUSER_H
#define _WINNLS_H
#define _WINVER_H
#define _WINNETWK_H
#define _WINSVC_H
-/* Mingw64 */
-#define _WINNLS_
-#define _WINNETWK_
-#define _WINSVC_
-#define _ADVAPI32_
-#define _DSGETDCAPI_
-#define _GDI32_
-#define _KERNEL32_
-#define _OLE32_
-#define _SHELL32_
-#define _SPOOL32_
-#define _USER32_
-#define _WINMM_
-#define WINIMPM
-#define WINSOCK_API_LINKAGE
-#define NTDDI_VERSION 0x6020000 /* Probably should just be derived from our
- _WIN32_WINNT setting in winsup.h */
-
-/* Windows headers define a couple of annoyingly intrusive macros for the
- sole purpose of inline documentation. Since they are defined without
- respect for the namespace and not undef'ed anymore, they tend to collide
- with otherwise innocent definitions in the application. We check if they
- exist and if not, we undef them again after including the Windows headers. */
-#ifndef IN
-#define __undef_IN
-#endif
-#ifndef OUT
-#define __undef_OUT
-#endif
-#ifndef OPTIONAL
-#define __undef_OPTIONAL
-#endif
-#ifndef NOTHING
-#define __undef_NOTHING
-#endif
-#ifndef CRITICAL
-#define __undef_CRITICAL
-#endif
-
#include <windows.h>
#include <wincrypt.h>
#include <lmcons.h>
#include <ntdef.h>
-
-#ifdef __undef_IN
-#undef IN
-#endif
-#ifdef __undef_OUT
-#undef OUT
-#endif
-#ifdef __undef_OPTIONAL
-#undef OPTIONAL
-#endif
-#ifdef __undef_NOTHING
-#undef NOTHING
-#endif
-#ifdef __undef_CRITICAL
-#undef CRITICAL
-#endif
-
#undef _WINGDI_H
#undef _WINUSER_H
#undef _WINNLS_H
#undef _WINVER_H
#undef _WINNETWK_H
#undef _WINSVC_H
-
-#undef _WINNLS_
-#undef _WINNETWK_
-#undef _WINSVC_
-
/* When Terminal Services are installed, the GetWindowsDirectory function
does not return the system installation dir, but a user specific directory
instead. That's not what we have in mind when calling GetWindowsDirectory
diff --git a/winsup/cygwin/winsup.h b/winsup/cygwin/winsup.h
index fd6d6906f..ddbe360e4 100644
--- a/winsup/cygwin/winsup.h
+++ b/winsup/cygwin/winsup.h
@@ -1,7 +1,7 @@
/* winsup.h: main Cygwin header file.
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
- 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Red Hat, Inc.
+ 2005, 2006, 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
This file is part of Cygwin.
@@ -9,6 +9,12 @@ This software is a copyrighted work licensed under the terms of the
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
details. */
+#ifdef DEBUGIT
+#define spf(a, b, c) small_printf (a, b, c)
+#else
+#define spf(a, b, c) do {} while (0)
+#endif
+
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
@@ -21,11 +27,7 @@ details. */
#define EXPORT_ALIAS(sym,symalias) extern "C" __typeof (sym) symalias __attribute__ ((alias(#sym)));
-/* Fun, fun, fun. On Mingw64, WINVER is set according to the value of
- _WIN32_WINNT, on Mingw32 it's exactly the opposite... */
-#define _WIN32_WINNT 0x0602
-#define WINVER 0x0602
-
+#define WINVER 0x0601
#define _NO_W32_PSEUDO_MODIFIERS
#include <sys/types.h>
@@ -75,12 +77,8 @@ int fcntl64 (int fd, int cmd, ...);
#define __WIDE(a) L ## a
#define _WIDE(a) __WIDE(a)
-#include "winlean.h"
-
#ifdef __cplusplus
-#include "wincap.h"
-
extern const char case_folded_lower[];
#define cyg_tolower(c) (case_folded_lower[(unsigned char)(c)])
extern const char case_folded_upper[];
@@ -90,6 +88,12 @@ extern const char case_folded_upper[];
#define cfree newlib_cfree_dont_use
#endif
+#include "winlean.h"
+#include "wincap.h"
+
+/* The one function we use from winuser.h most of the time */
+extern "C" DWORD WINAPI GetLastError (void);
+
/* Used as type by sys_wcstombs_alloc and sys_mbstowcs_alloc. For a
description see there. */
#define HEAP_NOTHEAP -1
@@ -161,7 +165,7 @@ void dll_dllcrt0_1 (void *);
/* dynamically loaded dll initialization */
extern "C" int dll_dllcrt0 (HMODULE, per_process *);
-extern "C" void _pei386_runtime_relocator (per_process *);
+void _pei386_runtime_relocator (per_process *);
/* dynamically loaded dll initialization for non-cygwin apps */
extern "C" int dll_noncygwin_dllcrt0 (HMODULE, per_process *);
diff --git a/winsup/doc/ChangeLog b/winsup/doc/ChangeLog
index 2480c5164..f321455a4 100644
--- a/winsup/doc/ChangeLog
+++ b/winsup/doc/ChangeLog
@@ -1,33 +1,3 @@
-2012-08-03 Adam Dinwoodie <Adam.Dinwoodie@metaswitch.com>
-
- * faq-using.xml (faq.using.man): Make relevance to whatis explicit.
-
-2012-07-20 Corinna Vinschen <corinna@vinschen.de>
-
- * pathnames.sgml (pathnames-intro): Remove paragraph on UNC paths.
- Try to be clearer on POSIX vs. Win32 paths.
- (unc-paths): New section.
- (cygdrive): Fix a few SGML qualifiers.
- * setup-net.sgml: Move ntsec section from here...
- * using.sgml: ..to here.
-
-2012-07-18 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
-
- * new-features.sgml (ov-new1.7.16): Document getmntent_r.
-
-2012-07-17 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
-
- * faq-programming.xml (faq.programming.unix-gui): Update to
- reflect the availability of X11 toolkits on Cygwin.
-
-2012-06-03 Corinna Vinschen <corinna@vinschen.de>
-
- * new-features.sgml (ov-new1.7.16): Document ReFS support.
-
-2012-05-10 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
-
- * new-features.sgml (ov-new1.7.16): Document memrchr.
-
2012-05-09 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
* new-features.sgml (ov-new1.7.15): Fix XML syntax.
diff --git a/winsup/doc/faq-programming.xml b/winsup/doc/faq-programming.xml
index 6e1edda65..4aecdc3bf 100644
--- a/winsup/doc/faq-programming.xml
+++ b/winsup/doc/faq-programming.xml
@@ -810,44 +810,20 @@ a Windows environment which Cygwin handles automatically.
<question><para>How should I port my Unix GUI to Windows?</para></question>
<answer>
-<para>Like other Unix-like platforms, the Cygwin distribtion includes many of
-the common GUI toolkits, including X11, X Athena widgets, Motif, Tk, GTK+,
-and Qt. Many programs which rely on these toolkits will work with little, if
-any, porting work if they are otherwise portable. However, there are a few
-things to look out for:</para>
-<orderedlist>
-<listitem><para>Some packages written for both Windows and X11 incorrectly
-treat Cygwin as a Windows platform rather than a Unix variant. Mixing Cygwin's
-Unix APIs with Windows' GDI is best avoided; rather, remove these assumptions
-so that Cygwin is treated like other X11 platforms.</para></listitem>
-<listitem><para>GTK+ programs which use <literal>gtk_builder_connect_signals()</literal>
-or <literal>glade_xml_signal_autoconnect()</literal> need to be able to
-<literal>dlopen()</literal> themselves. In order for this to work, the program
-must be linked with the <literal>-Wl,--export-all-symbols</literal> linker flag.
-This can be added to LDFLAGS manually, or handled automatically with the
-<literal>-export-dynamic</literal> libtool flag (requires libtool 2.2.8) or
-by adding <literal>gmodule-export-2.0</literal> to the pkg-config modules used
-to build the package.</para></listitem>
-<listitem><para>Programs which include their own loadable modules (plugins)
-often must have its modules linked against the symbols in the program. The
-most portable solution is for such programs to provide all its symbols (except
-for <literal>main()</literal>) in a shared library, against which the plugins
-can be linked. Otherwise, the symbols from the executable itself must be
-exported.</para>
-<para>If the package uses the CMake build system, this can be done by adding
-<literal>ENABLE_EXPORTS TRUE</literal> to the executable's <literal>set_target_properties</literal>
-command, then adding the executable's target name to the <literal>target_link_libraries</literal>
-command for the plugins.</para>
-<para>For other build systems, the following steps are required:</para>
-<orderedlist>
-<listitem><para>The executable must be built before its plugins.</para></listitem>
-<listitem><para>Symbols must be exported from the executable with a
-<literal>-Wl,--export-all-symbols,--out-implib,libfoo.exe.a</literal>
-linker flag, where <literal>foo</literal> represents the name of the
-executable.</para></listitem>
-<listitem><para>The plugins must be linked with a <literal>-Wl,/path/to/libfoo.exe.a</literal>
-linker flag.</para></listitem>
-</orderedlist></listitem></orderedlist>
+<para>There are two basic strategies for porting Unix GUIs to Windows.
+</para>
+<para>The first is to use a portable graphics library such as tcl/tk, X11, or
+V (and others?). Typically, you will end up with a GUI on Windows that
+requires some runtime support. With tcl/tk, you'll want to include the
+necessary library files and the tcl/tk DLLs. In the case of X11, you'll
+need everyone using your program to have the X11 server installed.
+</para>
+<para>The second method is to rewrite your GUI using Win32 API calls (or MFC
+with VC++). If your program is written in a fairly modular fashion, you
+may still want to use Cygwin if your program contains a lot of shared
+(non-GUI-related) code. That way you still gain some of the portability
+advantages inherent in using Cygwin.
+</para>
</answer></qandaentry>
<qandaentry id="faq.programming.djgpp">
diff --git a/winsup/doc/faq-using.xml b/winsup/doc/faq-using.xml
index c08efbc56..5aee7717b 100644
--- a/winsup/doc/faq-using.xml
+++ b/winsup/doc/faq-using.xml
@@ -238,12 +238,10 @@ related messages.
</answer></qandaentry>
<qandaentry id="faq.using.man">
-<question><para>Why doesn't <literal>man -k</literal>,
-<literal>apropos</literal> or <literal>whatis</literal> work?</para></question>
+<question><para>Why doesn't man -k (or apropos) work?</para></question>
<answer>
-<para>Before you can use <literal>man -k</literal>, <literal>apropos</literal>
-or <literal>whatis</literal>, you
+<para>Before you can use <literal>man -k</literal> or <literal>apropos</literal>, you
must create the whatis database. Just run the command
</para>
<screen>
diff --git a/winsup/doc/new-features.sgml b/winsup/doc/new-features.sgml
index 1fe5afea4..a2df48d29 100644
--- a/winsup/doc/new-features.sgml
+++ b/winsup/doc/new-features.sgml
@@ -1,23 +1,6 @@
<sect1 id="ov-new1.7"><title>What's new and what changed in Cygwin 1.7</title>
-<sect2 id="ov-new1.7.16"><title>What's new and what changed from 1.7.15 to 1.7.16</title>
-
-<itemizedlist mark="bullet">
-
-<listitem><para>
-New API: getmntent_r, memrchr.
-</para></listitem>
-
-<listitem><para>
-Recognize ReFS filesystem.
-</para></listitem>
-
-</itemizedlist>
-
-</sect2>
-
<sect2 id="ov-new1.7.15"><title>What's new and what changed from 1.7.14 to 1.7.15</title>
-
<itemizedlist mark="bullet">
<listitem><para>
diff --git a/winsup/doc/pathnames.sgml b/winsup/doc/pathnames.sgml
index 3a4769e9e..e2a031581 100644
--- a/winsup/doc/pathnames.sgml
+++ b/winsup/doc/pathnames.sgml
@@ -2,12 +2,12 @@
<sect2 id="pathnames-intro"><title>Introduction</title>
-<para>Cygwin supports both POSIX- and Win32-style paths. Directory
+<para>Cygwin supports both Win32- and POSIX-style paths. Directory
delimiters may be either forward slashes or backslashes. Paths using
-backslashes or starting with a drive letter are always handled as
-Win32 paths. POSIX paths must only use forward slashes as delimiter,
-otherwise they are treated as Win32 paths and file access might fail
-in surprising ways.</para>
+backslashes are always handled as Win32 paths. POSIX paths must only
+use forward slashes as delimiter, otherwise they are treated as Win32
+paths and file access might fail in surprising ways. UNC pathnames
+(starting with two slashes and a network name) are also supported.</para>
<note><para>The usage of Win32 paths, though possible, is deprecated,
since it circumvents important internal path handling mechanisms.
@@ -269,27 +269,11 @@ old user mount points as before.
</sect2>
-<sect2 id="unc-paths"><title>UNC paths</title>
-
-<para>Apart from the unified POSIX tree starting at the <filename>/</filename>
-directory, UNC pathnames starting with two slashes and a server name
-(<filename>//machine/share/...</filename>) are supported as well.
-They are handled as POSIX paths if only containing forward slashes. There's
-also a virtual directory <filename>//</filename> which allows to enumerate
-the fileservers known to the local machine with <command>ls</command>.
-Same goes for the UNC paths of the type <filename>//machine</filename>,
-which allow to enumerate the shares provided by the server
-<literal>machine</literal>. For often used UNC paths it makes sense to
-add them to the mount table (see <xref linkend="mount-table"></xref> so
-they are included in the unified POSIX path tree.</para>
-
-</sect2>
-
<sect2 id="cygdrive"><title>The cygdrive path prefix</title>
<para>As already outlined in <xref linkend="ov-hi-files"></xref>, you can
access arbitary drives on your system by using the cygdrive path prefix.
-The default value for this prefix is <filename>/cygdrive</filename>, and
+The default value for this prefix is <literal>/cygdrive</literal>, and
a path to any drive can be constructed by using the cygdrive prefix and
appending the drive letter as subdirectory, like this:</para>
@@ -303,7 +287,7 @@ appending the drive letter as subdirectory, like this:</para>
on a system are subsumed. The mount options of the cygdrive prefix is
used for all file access through the cygdrive prefixed drives. For instance,
assuming the cygdrive mount options are <literal>binary,posix=0</literal>,
-then any file <filename>/cygdrive/x/file</filename> will be opened in
+then any file <literal>/cygdrive/x/file</literal> will be opened in
binary mode by default (mount option <literal>binary</literal>), and the case
of the filename doesn't matter (mount option <literal>posix=0</literal>).
</para>
diff --git a/winsup/doc/setup-net.sgml b/winsup/doc/setup-net.sgml
index 4694eb330..889f1e0fb 100644
--- a/winsup/doc/setup-net.sgml
+++ b/winsup/doc/setup-net.sgml
@@ -260,5 +260,6 @@ Problems with Cygwin</ulink>.
DOCTOOL-INSERT-setup-env
DOCTOOL-INSERT-setup-maxmem
DOCTOOL-INSERT-setup-locale
+DOCTOOL-INSERT-ntsec
DOCTOOL-INSERT-setup-files
</chapter>
diff --git a/winsup/doc/using.sgml b/winsup/doc/using.sgml
index 4a802e6c8..4678cff93 100644
--- a/winsup/doc/using.sgml
+++ b/winsup/doc/using.sgml
@@ -14,8 +14,6 @@ DOCTOOL-INSERT-using-specialnames
DOCTOOL-INSERT-using-cygwinenv
-DOCTOOL-INSERT-ntsec
-
DOCTOOL-INSERT-using-cygserver
DOCTOOL-INSERT-using-utils
diff --git a/winsup/lsaauth/ChangeLog b/winsup/lsaauth/ChangeLog
index b78696af2..bbb763a1e 100644
--- a/winsup/lsaauth/ChangeLog
+++ b/winsup/lsaauth/ChangeLog
@@ -1,11 +1,3 @@
-2012-05-29 Corinna Vinschen <corinna@vinschen.de>
-
- * Makefile.in (LIBS): Re-add advapi32.dll. Explain why.
- * make-64bit-version-with-mingw-w64.sh (LIBS): Ditto.
- * cyglsa.c: Drop NTDLL function declarations. Use equivalent advapi32
- functions again, throughout.
- * cyglsa64.dll: Regenerate.
-
2011-05-10 Corinna Vinschen <corinna@vinschen.de>
* Makefile.in: Don't override CC.
diff --git a/winsup/lsaauth/Makefile.in b/winsup/lsaauth/Makefile.in
index bb585dfda..948c08b34 100644
--- a/winsup/lsaauth/Makefile.in
+++ b/winsup/lsaauth/Makefile.in
@@ -41,11 +41,7 @@ ifdef MINGW_CC
override CC:=${MINGW_CC}
endif
-# Never again try to remove advapi32. It does not matter if the DLL calls
-# advapi32 functions or the equivalent ntdll functions.
-# But if the LSA authentication DLL is not linked against advapi32, it's
-# not recognized by LSA.
-LIBS := -ladvapi32 -lkernel32 -lntdll
+LIBS := -lkernel32 -lntdll
DLL := cyglsa.dll
DEF_FILE:= cyglsa.def
diff --git a/winsup/lsaauth/cyglsa.c b/winsup/lsaauth/cyglsa.c
index 341fdd12c..e64d0e11f 100644
--- a/winsup/lsaauth/cyglsa.c
+++ b/winsup/lsaauth/cyglsa.c
@@ -1,6 +1,6 @@
/* cyglsa.c: LSA authentication module for Cygwin
- Copyright 2006, 2008, 2010, 2011, 2012 Red Hat, Inc.
+ Copyright 2006, 2008, 2010, 2011 Red Hat, Inc.
Written by Corinna Vinschen <corinna@vinschen.de>
@@ -41,6 +41,13 @@ DllMain (HINSTANCE inst, DWORD reason, LPVOID res)
#ifndef NT_SUCCESS
#define NT_SUCCESS(s) ((s) >= 0)
#endif
+NTSTATUS NTAPI NtAllocateLocallyUniqueId (PLUID);
+NTSTATUS NTAPI RtlCopySid (ULONG, PSID, PSID);
+NTSTATUS NTAPI RtlGetAce (PACL, ULONG, PVOID *);
+ULONG NTAPI RtlLengthSid (PSID);
+PULONG NTAPI RtlSubAuthoritySid (PSID, ULONG);
+PUCHAR NTAPI RtlSubAuthorityCountSid (PSID);
+BOOLEAN NTAPI RtlValidSid (PSID);
/* These standard POSIX functions are implemented in NTDLL and exported.
There's just no header to define them and using wchar.h from mingw
or Cygwin seems wrong somehow. */
@@ -116,7 +123,7 @@ print_sid (const char *prefix, int idx, PISID sid)
cyglsa_printf ("NULL\n");
else if (IsBadReadPtr (sid, 8))
cyglsa_printf ("INVALID POINTER\n");
- else if (!IsValidSid ((PSID) sid))
+ else if (!RtlValidSid ((PSID) sid))
cyglsa_printf ("INVALID SID\n");
else if (IsBadReadPtr (sid, 8 + sizeof (DWORD) * sid->SubAuthorityCount))
cyglsa_printf ("INVALID POINTER SPACE\n");
@@ -196,9 +203,11 @@ print_dacl (PACL dacl)
{
PVOID vace;
PACCESS_ALLOWED_ACE ace;
+ NTSTATUS stat;
- if (!GetAce (dacl, i, &vace))
- cyglsa_printf ("[%lu] GetAce error %lu\n", i, GetLastError ());
+ stat = RtlGetAce (dacl, i, &vace);
+ if (!NT_SUCCESS (stat))
+ cyglsa_printf ("[%lu] RtlGetAce status 0x%08lx\n", i, stat);
else
{
ace = (PACCESS_ALLOWED_ACE) vace;
@@ -494,8 +503,8 @@ LsaApLogonUserEx (PLSA_CLIENT_REQUEST request, SECURITY_LOGON_TYPE logon_type,
tokinf->ExpirationTime = authinf->inf.ExpirationTime;
/* User SID */
src_sid = (PSID) (base + authinf->inf.User.User.Sid);
- size = GetLengthSid (src_sid);
- CopySid (size, (PSID) tptr, src_sid);
+ size = RtlLengthSid (src_sid);
+ RtlCopySid (size, (PSID) tptr, src_sid);
tokinf->User.User.Sid = (PSID) tptr;
tptr += size;
tokinf->User.User.Attributes = authinf->inf.User.User.Attributes;
@@ -509,16 +518,16 @@ LsaApLogonUserEx (PLSA_CLIENT_REQUEST request, SECURITY_LOGON_TYPE logon_type,
for (i = 0; i < src_grps->GroupCount; ++i)
{
src_sid = (PSID) (base + src_grps->Groups[i].Sid);
- size = GetLengthSid (src_sid);
- CopySid (size, (PSID) tptr, src_sid);
+ size = RtlLengthSid (src_sid);
+ RtlCopySid (size, (PSID) tptr, src_sid);
tokinf->Groups->Groups[i].Sid = (PSID) tptr;
tptr += size;
tokinf->Groups->Groups[i].Attributes = src_grps->Groups[i].Attributes;
}
/* Primary Group SID */
src_sid = (PSID) (base + authinf->inf.PrimaryGroup.PrimaryGroup);
- size = GetLengthSid (src_sid);
- CopySid (size, (PSID) tptr, src_sid);
+ size = RtlLengthSid (src_sid);
+ RtlCopySid (size, (PSID) tptr, src_sid);
tokinf->PrimaryGroup.PrimaryGroup = (PSID) tptr;
tptr += size;
/* Privileges */
@@ -545,7 +554,8 @@ LsaApLogonUserEx (PLSA_CLIENT_REQUEST request, SECURITY_LOGON_TYPE logon_type,
not done in the 64 bit code above for hopefully obvious reasons... */
LUID logon_sid_id;
- if (must_create_logon_sid && !AllocateLocallyUniqueId (&logon_sid_id))
+ if (must_create_logon_sid
+ && !NT_SUCCESS (NtAllocateLocallyUniqueId (&logon_sid_id)))
return STATUS_INSUFFICIENT_RESOURCES;
if (!(tokinf = funcs->AllocateLsaHeap (authinf->inf_size)))
@@ -565,13 +575,13 @@ LsaApLogonUserEx (PLSA_CLIENT_REQUEST request, SECURITY_LOGON_TYPE logon_type,
((PBYTE) tokinf + (LONG_PTR) tokinf->Groups->Groups[i].Sid);
if (must_create_logon_sid
&& tokinf->Groups->Groups[i].Attributes & SE_GROUP_LOGON_ID
- && *GetSidSubAuthorityCount (tokinf->Groups->Groups[i].Sid) == 3
- && *GetSidSubAuthority (tokinf->Groups->Groups[i].Sid, 0)
+ && *RtlSubAuthorityCountSid (tokinf->Groups->Groups[i].Sid) == 3
+ && *RtlSubAuthoritySid (tokinf->Groups->Groups[i].Sid, 0)
== SECURITY_LOGON_IDS_RID)
{
- *GetSidSubAuthority (tokinf->Groups->Groups[i].Sid, 1)
+ *RtlSubAuthoritySid (tokinf->Groups->Groups[i].Sid, 1)
= logon_sid_id.HighPart;
- *GetSidSubAuthority (tokinf->Groups->Groups[i].Sid, 2)
+ *RtlSubAuthoritySid (tokinf->Groups->Groups[i].Sid, 2)
= logon_sid_id.LowPart;
}
}
@@ -598,12 +608,12 @@ LsaApLogonUserEx (PLSA_CLIENT_REQUEST request, SECURITY_LOGON_TYPE logon_type,
(PVOID)((LONG_PTR) &authinf->inf + authinf->inf_size));
/* Create logon session. */
- if (!AllocateLocallyUniqueId (logon_id))
+ stat = NtAllocateLocallyUniqueId (logon_id);
+ if (!NT_SUCCESS (stat))
{
funcs->FreeLsaHeap (*tok);
*tok = NULL;
- cyglsa_printf ("AllocateLocallyUniqueId failed: Win32 error %lu\n",
- GetLastError ());
+ cyglsa_printf ("NtAllocateLocallyUniqueId status 0x%08lx\n", stat);
return STATUS_INSUFFICIENT_RESOURCES;
}
stat = funcs->CreateLogonSession (logon_id);
diff --git a/winsup/lsaauth/cyglsa64.dll b/winsup/lsaauth/cyglsa64.dll
index f3324d26a..14f1f6cff 100644
--- a/winsup/lsaauth/cyglsa64.dll
+++ b/winsup/lsaauth/cyglsa64.dll
Binary files differ
diff --git a/winsup/lsaauth/make-64bit-version-with-mingw-w64.sh b/winsup/lsaauth/make-64bit-version-with-mingw-w64.sh
index 4a8c37c23..a93daf8f3 100644
--- a/winsup/lsaauth/make-64bit-version-with-mingw-w64.sh
+++ b/winsup/lsaauth/make-64bit-version-with-mingw-w64.sh
@@ -20,10 +20,6 @@ set -e
CC="x86_64-w64-mingw32-gcc"
CFLAGS="-fno-exceptions -O0 -Wall -Werror"
LDFLAGS="-s -nostdlib -Wl,--entry,DllMain,--major-os-version,5,--minor-os-version,2"
-# Never again try to remove advapi32. It does not matter if the DLL calls
-# advapi32 functions or the equivalent ntdll functions.
-# But if the LSA authentication DLL is not linked against advapi32, it's
-# not recognized by LSA.
-LIBS="-ladvapi32 -lkernel32 -lntdll"
+LIBS="-lkernel32 -lntdll"
$CC $CFLAGS $LDFLAGS -shared -o cyglsa64.dll cyglsa.c cyglsa64.def $LIBS
diff --git a/winsup/mingw/ChangeLog b/winsup/mingw/ChangeLog
index 3eb8975c1..7205fb477 100644
--- a/winsup/mingw/ChangeLog
+++ b/winsup/mingw/ChangeLog
@@ -1,58 +1,3 @@
-2012-08-08 Kai Tietz <ktietz@redhat.com>
-
- * mingwex/gdtoa/gd_qnan.h: Make Nan constants positive valued.
-
-2012-08-06 Earnie Boyd <earnie@users.sourceforge.net>
-
- * mingwex/membarrier.c: New file.
- * mingwex/Makefile.in (DISTFILES): Add membarrier.c.
- (REPLACE_OBJS): Add membarrier.o.
-
-2012-08-02 Ivan Maidanski <ivmai@users.sourceforge.net>
-
- * include/process.h (_wexec*, _wspawn*): Declare.
-
-2012-08-02 Earnie Boyd <earnie@users.sourceforge.net>
-
- * include/stdlib.h (_strtoi64): Declare.
- (_strtoi64_l): Ditto.
- (_strtoui64): Ditto.
- (_strtoui64_l): Ditto.
- (_wcstrtoi64): Ditto.
- (_wcstrtoi64_l): Ditto.
- (_wcstrtoui64): Ditto.
- (_wcstrtoui64_l): Ditto.
- * include/wchar.h (_wcstrtoi64): Ditto.
- (_wcstrtoi64_l): Ditto.
- (_wcstrtoui64): Ditto.
- (_wcstrtoui64_l): Ditto.
- * include/stdio.h (_getws, _putws): Guard with #ifndef __STRICT_ANSI__.
- (_wfdopen, _wfopen, _wfreopen, _wfsopen, _wtmpnam, _wtempnam): Ditto.
- (_wrename, _wremove, _wperror, _wpopen): Ditto.
- (_lock_file, _unlock_file): Declare.
- * include/limits.h (PATH_MAX): Guard with #ifndef __STRICT_ANSI__.
- * include/sys/param.h (MAXPATHLEN): Make sure PATH_MAX is defined.
- * include/_mingw.h (threadlocalinfostruct, threadmbinfostruct,
- *pthreadlocinfo, *pthreadmbcinfo, _locale_tstruct, *_locale_t): Declare.
- * mingwex/tsearch.c: Correct coding to produce the proper results.
-
-2012-08-01 Earnie Boyd <earnie@users.sourceforge.net>
-
- * include/excpt.h (__try1): Define based on _WIN64 definition.
- (__except1): Ditto.
-
-2012-07-30 Earnie Boyd <earnie@users.sourceforge.net>
-
- * include/stdint.h: Include _mingw.h for the definition of __int64 when
- _WIN64 is defined.
- * include/inttypes.h: A few items like PRNdPTR and SCNdPTR need 64
- bitness specified when _WIN64 is defined.
- * include/_mingw.h: Add __MINGW_VERSION, __MINGW_MAJOR_VERSION,
- __MINGW_MINOR_VERSION and __MINGW_PATCHLEVEL deprecating the __MINGW32_*
- versions of the macros.
- * configure.in: Use __MINGW_VERSION instead of __MINGW32_VERSION.
- * configure: Ditto.
-
2012-05-08 Keith Marshall <keithmarshall@users.sourceforge.net>
Remove references to nonexistent files.
diff --git a/winsup/mingw/configure b/winsup/mingw/configure
index 598ed6d9d..1ca8b5336 100755
--- a/winsup/mingw/configure
+++ b/winsup/mingw/configure
@@ -1788,7 +1788,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ $as_echo "$as_me:$LINENO: checking package version" >&5
$as_echo_n "checking package version... " >&6; }
- PACKAGE_VERSION=`awk '$2 == "'"__MINGW_VERSION"'" { print $3 }' ${srcdir}/include/_mingw.h`
+ PACKAGE_VERSION=`awk '$2 == "'"__MINGW32_VERSION"'" { print $3 }' ${srcdir}/include/_mingw.h`
{ $as_echo "$as_me:$LINENO: result: $PACKAGE_VERSION" >&5
$as_echo "$PACKAGE_VERSION" >&6; }
diff --git a/winsup/mingw/configure.in b/winsup/mingw/configure.in
index eccf84074..92dbd3d1d 100644
--- a/winsup/mingw/configure.in
+++ b/winsup/mingw/configure.in
@@ -18,7 +18,7 @@ dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
AC_PREREQ([2.59])
AC_INIT([MinGW Runtime], [v3.x], [http://mingw.org/reporting_bugs], [mingwrt])
-MINGW_AC_CONFIG_SRCDIR([__MINGW_VERSION], [include/_mingw.h])
+MINGW_AC_CONFIG_SRCDIR([__MINGW32_VERSION], [include/_mingw.h])
AC_CANONICAL_SYSTEM
GCC_NO_EXECUTABLES
diff --git a/winsup/mingw/include/_mingw.h b/winsup/mingw/include/_mingw.h
index cbfd54ced..cb0ff53a7 100644
--- a/winsup/mingw/include/_mingw.h
+++ b/winsup/mingw/include/_mingw.h
@@ -22,13 +22,6 @@
*/
#define __MINGW_H
-#define __MINGW_VERSION 4
-#define __MINGW_MAJOR_VERSION 0
-#define __MINGW_MINOR_VERSION 0
-#define __MINGW_PATCHLEVEL 0
-
-// These four macros are deprecated and will be removed in the next major
-// version release.
#define __MINGW32_VERSION 3.20
#define __MINGW32_MAJOR_VERSION 3
#define __MINGW32_MINOR_VERSION 20
@@ -47,10 +40,10 @@
__MINGW_IMPORT The attribute definition to specify imported
variables/functions.
_CRTIMP As above. For MS compatibility.
- __MINGW_VERSION Runtime version.
- __MINGW_MAJOR_VERSION Runtime major version.
- __MINGW_MINOR_VERSION Runtime minor version.
- __MINGW_BUILD_DATE Runtime build date.
+ __MINGW32_VERSION Runtime version.
+ __MINGW32_MAJOR_VERSION Runtime major version.
+ __MINGW32_MINOR_VERSION Runtime minor version.
+ __MINGW32_BUILD_DATE Runtime build date.
Macros to enable MinGW features which deviate from standard MSVC
compatible behaviour; these may be specified directly in user code,
@@ -290,14 +283,4 @@ allow GCC to optimize away some EH unwind code, at least in DW2 case. */
# endif
#endif
-struct threadlocalinfostruct;
-struct threadmbinfostruct;
-typedef struct threadlocalinfostruct *pthreadlocinfo;
-typedef struct threadmbcinfostruct *pthreadmbcinfo;
-
-typedef struct localeinfo_struct {
- pthreadlocinfo locinfo;
- pthreadmbcinfo mbcinfo;
-} _locale_tstruct, *_locale_t;
-
#endif /* __MINGW_H */
diff --git a/winsup/mingw/include/excpt.h b/winsup/mingw/include/excpt.h
index 3919cb791..e75ceb78f 100644
--- a/winsup/mingw/include/excpt.h
+++ b/winsup/mingw/include/excpt.h
@@ -75,15 +75,8 @@ typedef PEXCEPTION_REGISTRATION PEXCEPTION_REGISTRATION_RECORD;
* onto the stack, then put a pointer to the new registration
* structure (i.e. the current stack pointer) at fs:0.
*/
-#ifdef _WIN64
-# define __try1(pHandler) \
- __asm__ __volatile__ ("pushq %0;pushq %%gs:0;movq %%rsp,%%gs:0;" : : \
- "g" (pHandler));
-#else
-# define __try1(pHandler) \
- __asm__ __volatile__ ("pushl %0;pushl %%fs:0;movl %%esp,%%fs:0;" : : \
- "g" (pHandler));
-#endif
+#define __try1(pHandler) \
+ __asm__ ("pushl %0;pushl %%fs:0;movl %%esp,%%fs:0;" : : "g" (pHandler));
/*
* A macro which (despite its name) *removes* an installed
@@ -96,15 +89,9 @@ typedef PEXCEPTION_REGISTRATION PEXCEPTION_REGISTRATION_RECORD;
* the stack must be in the exact state at this point that it was
* after we did __try1 or this will smash things.
*/
-#ifdef _WIN64
-# define __except1 \
- __asm__ __volatile__ ("movq (%%rsp),%%rax;movq %%rax,%%gs:0;addq \
- $16,%%rsp;" : : : "%rax");
-#else
-# define __except1 \
- __asm__ __volatile__ ("movl (%%esp),%%eax;movl %%eax,%%fs:0;addl \
- $8,%%esp;" : : : "%eax");
-#endif
+#define __except1 \
+ __asm__ ("movl (%%esp),%%eax;movl %%eax,%%fs:0;addl $8,%%esp;" \
+ : : : "%eax");
#ifdef __cplusplus
}
diff --git a/winsup/mingw/include/inttypes.h b/winsup/mingw/include/inttypes.h
index e13040634..2d2bb8d80 100644
--- a/winsup/mingw/include/inttypes.h
+++ b/winsup/mingw/include/inttypes.h
@@ -44,6 +44,7 @@ typedef struct {
#define PRIdFAST64 "I64d"
#define PRIdMAX "I64d"
+#define PRIdPTR "d"
#define PRIi8 "i"
#define PRIi16 "i"
@@ -61,6 +62,7 @@ typedef struct {
#define PRIiFAST64 "I64i"
#define PRIiMAX "I64i"
+#define PRIiPTR "i"
#define PRIo8 "o"
#define PRIo16 "o"
@@ -79,6 +81,8 @@ typedef struct {
#define PRIoMAX "I64o"
+#define PRIoPTR "o"
+
/* fprintf macros for unsigned types */
#define PRIu8 "u"
#define PRIu16 "u"
@@ -97,6 +101,7 @@ typedef struct {
#define PRIuFAST64 "I64u"
#define PRIuMAX "I64u"
+#define PRIuPTR "u"
#define PRIx8 "x"
#define PRIx16 "x"
@@ -114,6 +119,7 @@ typedef struct {
#define PRIxFAST64 "I64x"
#define PRIxMAX "I64x"
+#define PRIxPTR "x"
#define PRIX8 "X"
#define PRIX16 "X"
@@ -131,22 +137,7 @@ typedef struct {
#define PRIXFAST64 "I64X"
#define PRIXMAX "I64X"
-
-#ifdef _WIN64
-#define PRIdPTR "I64d"
-#define PRIiPTR "I64i"
-#define PRIoPTR "I64o"
-#define PRIuPTR "I64u"
-#define PRIxPTR "I64x"
-#define PRIXPTR "I64X"
-#else
-#define PRIdPTR "d"
-#define PRIiPTR "i"
-#define PRIoPTR "o"
-#define PRIuPTR "u"
-#define PRIxPTR "x"
#define PRIXPTR "X"
-#endif
/*
* fscanf macros for signed int types
@@ -168,6 +159,7 @@ typedef struct {
#define SCNdFAST64 "I64d"
#define SCNdMAX "I64d"
+#define SCNdPTR "d"
#define SCNi16 "hi"
#define SCNi32 "i"
@@ -182,6 +174,7 @@ typedef struct {
#define SCNiFAST64 "I64i"
#define SCNiMAX "I64i"
+#define SCNiPTR "i"
#define SCNo16 "ho"
#define SCNo32 "o"
@@ -196,6 +189,7 @@ typedef struct {
#define SCNoFAST64 "I64o"
#define SCNoMAX "I64o"
+#define SCNoPTR "o"
#define SCNx16 "hx"
#define SCNx32 "x"
@@ -210,6 +204,8 @@ typedef struct {
#define SCNxFAST64 "I64x"
#define SCNxMAX "I64x"
+#define SCNxPTR "x"
+
/* fscanf macros for unsigned int types */
@@ -226,20 +222,7 @@ typedef struct {
#define SCNuFAST64 "I64u"
#define SCNuMAX "I64u"
-
-#ifdef _WIN64
-#define SCNdPTR "I64d"
-#define SCNiPTR "I64i"
-#define SCNoPTR "I64o"
-#define SCNxPTR "I64x"
-#define SCNuPTR "I64u"
-#else
-#define SCNdPTR "d"
-#define SCNiPTR "i"
-#define SCNoPTR "o"
-#define SCNxPTR "x"
#define SCNuPTR "u"
-#endif
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
/*
diff --git a/winsup/mingw/include/limits.h b/winsup/mingw/include/limits.h
index ca4900610..96ad26cec 100644
--- a/winsup/mingw/include/limits.h
+++ b/winsup/mingw/include/limits.h
@@ -29,9 +29,7 @@
* are semantically identical, with a limit of 259 characters for the
* path name, plus one for a terminating NUL, for a total of 260.
*/
-#ifndef __STRICT_ANSI__
-# define PATH_MAX 260
-#endif
+#define PATH_MAX 260
/*
* Characteristics of the char data type.
diff --git a/winsup/mingw/include/process.h b/winsup/mingw/include/process.h
index 0a3511f4d..c0c380fbd 100644
--- a/winsup/mingw/include/process.h
+++ b/winsup/mingw/include/process.h
@@ -79,28 +79,6 @@ _CRTIMP intptr_t __cdecl __MINGW_NOTHROW _spawnve (int, const char*, const char*
_CRTIMP intptr_t __cdecl __MINGW_NOTHROW _spawnvp (int, const char*, const char* const*);
_CRTIMP intptr_t __cdecl __MINGW_NOTHROW _spawnvpe (int, const char*, const char* const*, const char* const*);
-#ifndef _WPROCESS_DEFINED
-/* Also in wchar.h - keep in sync */
-_CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wexecl (const wchar_t*, const wchar_t*, ...);
-_CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wexecle (const wchar_t*, const wchar_t*, ...);
-_CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wexeclp (const wchar_t*, const wchar_t*, ...);
-_CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wexeclpe (const wchar_t*, const wchar_t*, ...);
-_CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wexecv (const wchar_t*, const wchar_t* const*);
-_CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wexecve (const wchar_t*, const wchar_t* const*, const wchar_t* const*);
-_CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wexecvp (const wchar_t*, const wchar_t* const*);
-_CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wexecvpe (const wchar_t*, const wchar_t* const*, const wchar_t* const*);
-
-_CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wspawnl (int, const wchar_t*, const wchar_t*, ...);
-_CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wspawnle (int, const wchar_t*, const wchar_t*, ...);
-_CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wspawnlp (int, const wchar_t*, const wchar_t*, ...);
-_CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wspawnlpe (int, const wchar_t*, const wchar_t*, ...);
-_CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wspawnv (int, const wchar_t*, const wchar_t* const*);
-_CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wspawnve (int, const wchar_t*, const wchar_t* const*, const wchar_t* const*);
-_CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wspawnvp (int, const wchar_t*, const wchar_t* const*);
-_CRTIMP intptr_t __cdecl __MINGW_NOTHROW _wspawnvpe (int, const wchar_t*, const wchar_t* const*, const wchar_t* const*);
-
-#define _WPROCESS_DEFINED
-#endif
/*
* The functions _beginthreadex and _endthreadex are not provided by CRTDLL.
diff --git a/winsup/mingw/include/stdint.h b/winsup/mingw/include/stdint.h
index 942a1a8fc..c6ab3bcef 100644
--- a/winsup/mingw/include/stdint.h
+++ b/winsup/mingw/include/stdint.h
@@ -19,7 +19,6 @@
#ifndef _STDINT_H
#define _STDINT_H
-#include <_mingw.h>
#define __need_wint_t
#define __need_wchar_t
#include <stddef.h>
diff --git a/winsup/mingw/include/stdio.h b/winsup/mingw/include/stdio.h
index 60f540114..fe9f2b735 100644
--- a/winsup/mingw/include/stdio.h
+++ b/winsup/mingw/include/stdio.h
@@ -591,13 +591,10 @@ _CRTIMP wchar_t* __cdecl __MINGW_NOTHROW fgetws (wchar_t*, int, FILE*);
_CRTIMP int __cdecl __MINGW_NOTHROW fputws (const wchar_t*, FILE*);
_CRTIMP wint_t __cdecl __MINGW_NOTHROW getwc (FILE*);
_CRTIMP wint_t __cdecl __MINGW_NOTHROW getwchar (void);
-_CRTIMP wint_t __cdecl __MINGW_NOTHROW putwc (wint_t, FILE*);
-_CRTIMP wint_t __cdecl __MINGW_NOTHROW putwchar (wint_t);
-#ifndef __STRICT_ANSI__
-_CRTIMP void __cdecl __MINGW_NOTHROW _lock_file(FILE*);
-_CRTIMP void __cdecl __MINGW_NOTHROW _unlock_file(FILE*);
_CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _getws (wchar_t*);
+_CRTIMP wint_t __cdecl __MINGW_NOTHROW putwc (wint_t, FILE*);
_CRTIMP int __cdecl __MINGW_NOTHROW _putws (const wchar_t*);
+_CRTIMP wint_t __cdecl __MINGW_NOTHROW putwchar (wint_t);
_CRTIMP FILE* __cdecl __MINGW_NOTHROW _wfdopen(int, const wchar_t *);
_CRTIMP FILE* __cdecl __MINGW_NOTHROW _wfopen (const wchar_t*, const wchar_t*);
_CRTIMP FILE* __cdecl __MINGW_NOTHROW _wfreopen (const wchar_t*, const wchar_t*, FILE*);
@@ -608,7 +605,6 @@ _CRTIMP int __cdecl __MINGW_NOTHROW _wrename (const wchar_t*, const wchar_t*);
_CRTIMP int __cdecl __MINGW_NOTHROW _wremove (const wchar_t*);
_CRTIMP void __cdecl __MINGW_NOTHROW _wperror (const wchar_t*);
_CRTIMP FILE* __cdecl __MINGW_NOTHROW _wpopen (const wchar_t*, const wchar_t*);
-#endif /* __STRICT_ANSI__ */
#endif /* __MSVCRT__ */
#ifndef __NO_ISOCEXT /* externs in libmingwex.a */
diff --git a/winsup/mingw/include/stdlib.h b/winsup/mingw/include/stdlib.h
index ece21cb44..4df18aab3 100644
--- a/winsup/mingw/include/stdlib.h
+++ b/winsup/mingw/include/stdlib.h
@@ -300,11 +300,6 @@ __MINGW_IMPORT int _fmode_dll;
#endif /* Not __STRICT_ANSI__ */
-_CRTIMP __int64 __cdecl _strtoi64(const char*, char **, int);
-_CRTIMP __int64 __cdecl _strtoi64_l(const char *, char **, int, _locale_t);
-_CRTIMP unsigned __int64 __cdecl _strtoui64(const char*, char **, int);
-_CRTIMP unsigned __int64 __cdecl _strtoui64_l(const char *, char **, int, _locale_t);
-
_CRTIMP double __cdecl __MINGW_NOTHROW atof (const char*);
_CRTIMP int __cdecl __MINGW_NOTHROW atoi (const char*);
_CRTIMP long __cdecl __MINGW_NOTHROW atol (const char*);
@@ -328,10 +323,6 @@ _CRTIMP unsigned long __cdecl __MINGW_NOTHROW strtoul (const char*, char**, int)
#ifndef _WSTDLIB_DEFINED
/* also declared in wchar.h */
-_CRTIMP __int64 __cdecl _wcstoi64(const wchar_t *, wchar_t **, int);
-_CRTIMP __int64 __cdecl _wcstoi64_l(const wchar_t *, wchar_t **, int, _locale_t);
-_CRTIMP unsigned __int64 __cdecl _wcstoui64(const wchar_t *, wchar_t **, int);
-_CRTIMP unsigned __int64 __cdecl _wcstoui64_l(const wchar_t *, wchar_t **, int, _locale_t);
_CRTIMP long __cdecl __MINGW_NOTHROW wcstol (const wchar_t*, wchar_t**, int);
_CRTIMP unsigned long __cdecl __MINGW_NOTHROW wcstoul (const wchar_t*, wchar_t**, int);
_CRTIMP double __cdecl __MINGW_NOTHROW wcstod (const wchar_t*, wchar_t**);
diff --git a/winsup/mingw/include/sys/param.h b/winsup/mingw/include/sys/param.h
index d38b46a5c..74966bd78 100644
--- a/winsup/mingw/include/sys/param.h
+++ b/winsup/mingw/include/sys/param.h
@@ -17,10 +17,6 @@
#define LITTLE_ENDIAN 1234
#define BYTE_ORDER LITTLE_ENDIAN
-#ifdef PATH_MAX
#define MAXPATHLEN PATH_MAX
-#else
-#define MAXPATHLEN 260
-#endif
#endif
diff --git a/winsup/mingw/include/wchar.h b/winsup/mingw/include/wchar.h
index dadeda6d3..60e8d9c2b 100644
--- a/winsup/mingw/include/wchar.h
+++ b/winsup/mingw/include/wchar.h
@@ -177,10 +177,6 @@ _CRTIMP void __cdecl __MINGW_NOTHROW _wmakepath(wchar_t*, const wchar_t*, const
_CRTIMP void __cdecl __MINGW_NOTHROW _wsplitpath (const wchar_t*, wchar_t*, wchar_t*, wchar_t*, wchar_t*);
_CRTIMP wchar_t* __cdecl __MINGW_NOTHROW _wfullpath (wchar_t*, const wchar_t*, size_t);
#endif
-_CRTIMP __int64 __cdecl _wcstoi64(const wchar_t *, wchar_t **, int);
-_CRTIMP __int64 __cdecl _wcstoi64_l(const wchar_t *, wchar_t **, int, _locale_t);
-_CRTIMP unsigned __int64 __cdecl _wcstoui64(const wchar_t *, wchar_t **, int);
-_CRTIMP unsigned __int64 __cdecl _wcstoui64_l(const wchar_t *, wchar_t **, int, _locale_t);
#define _WSTDLIB_DEFINED
#endif /* _WSTDLIB_DEFINED */
diff --git a/winsup/mingw/mingwex/Makefile.in b/winsup/mingw/mingwex/Makefile.in
index afe32e5be..59ebac7e3 100644
--- a/winsup/mingw/mingwex/Makefile.in
+++ b/winsup/mingw/mingwex/Makefile.in
@@ -40,7 +40,7 @@ DISTFILES = \
fegetexceptflag.c fegetround.c feholdexcept.c feraiseexcept.c \
fesetenv.c fesetexceptflag.c fesetround.c fetestexcept.c \
feupdateenv.c ftruncate.c fwide.c getopt.c imaxabs.c imaxdiv.c \
- lltoa.c lltow.c mbsinit.c membarrier.c mingw-aligned-malloc.c \
+ lltoa.c lltow.c mbsinit.c mingw-aligned-malloc.c \
mingw-fseek.c sitest.c strtoimax.c strtoumax.c \
testwmem.c tst-aligned-malloc.c ulltoa.c ulltow.c wcstof.c \
wcstoimax.c wcstold.c wcstoumax.c wctrans.c wctype.c \
@@ -201,7 +201,7 @@ POSIX_OBJS = \
dirent.o wdirent.o getopt.o ftruncate.o gettimeofday.o usleep.o \
basename.o dirname.o tsearch.o twalk.o tdelete.o tfind.o
REPLACE_OBJS = \
- membarrier.o mingw-aligned-malloc.o mingw-fseek.o
+ mingw-aligned-malloc.o mingw-fseek.o
COMPLEX_OBJS = \
cabs.o cabsf.o cabsl.o cacos.o cacosf.o cacosl.o cacosh.o \
cacoshf.o cacoshl.o carg.o cargf.o cargl.o casin.o casinf.o \
diff --git a/winsup/mingw/mingwex/gdtoa/gd_qnan.h b/winsup/mingw/mingwex/gdtoa/gd_qnan.h
index 0b468c492..87eba8fb3 100644
--- a/winsup/mingw/mingwex/gdtoa/gd_qnan.h
+++ b/winsup/mingw/mingwex/gdtoa/gd_qnan.h
@@ -1,12 +1,12 @@
-#define f_QNAN 0x7fc00000
+#define f_QNAN 0xffc00000
#define d_QNAN0 0x0
-#define d_QNAN1 0x7ff80000
+#define d_QNAN1 0xfff80000
#define ld_QNAN0 0x0
#define ld_QNAN1 0xc0000000
-#define ld_QNAN2 0x7fff
+#define ld_QNAN2 0xffff
#define ld_QNAN3 0x0
#define ldus_QNAN0 0x0
#define ldus_QNAN1 0x0
#define ldus_QNAN2 0x0
#define ldus_QNAN3 0xc000
-#define ldus_QNAN4 0x7fff
+#define ldus_QNAN4 0xffff
diff --git a/winsup/mingw/mingwex/membarrier.c b/winsup/mingw/mingwex/membarrier.c
deleted file mode 100644
index b8da9f7de..000000000
--- a/winsup/mingw/mingwex/membarrier.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * THIS SOFTWARE IS NOT COPYRIGHTED
- *
- * This source code is offered for use in the public domain. You may
- * use, modify or distribute it freely.
- *
- * This code is distributed in the hope that it will be useful but
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- * DISCLAIMED. This includes but is not limited to warranties of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- */
-void __mingworg_MemoryBarrier(void);
-void __mingworg_MemoryBarrier(void)
-{
- long Barrier = 0;
- __asm__ __volatile__("xchgl %%eax,%0 "
- :"=r" (Barrier));
-}
-
diff --git a/winsup/mingw/mingwex/tsearch.c b/winsup/mingw/mingwex/tsearch.c
index 55f192214..a0aa0eb36 100755
--- a/winsup/mingw/mingwex/tsearch.c
+++ b/winsup/mingw/mingwex/tsearch.c
@@ -23,33 +23,29 @@ tsearch(const void * __restrict__ vkey, /* key to be located */
void ** __restrict__ vrootp, /* address of tree root */
int (*compar) (const void *, const void *))
{
- node_t *q, **n;
+ node_t *q;
node_t **rootp = (node_t **)vrootp;
if (rootp == NULL)
return NULL;
- n = rootp;
- while (*n != NULL) { /* Knuth's T1: */
+ while (*rootp != NULL) { /* Knuth's T1: */
int r;
- if ((r = (*compar)(vkey, ((*n)->key))) == 0) /* T2: */
- return *n; /* we found it! */
+ if ((r = (*compar)(vkey, (*rootp)->key)) == 0) /* T2: */
+ return *rootp; /* we found it! */
- n = (r < 0) ?
+ rootp = (r < 0) ?
&(*rootp)->llink : /* T3: follow left branch */
&(*rootp)->rlink; /* T4: follow right branch */
- if (*n == NULL)
- break;
- rootp = n;
}
q = malloc(sizeof(node_t)); /* T5: key not found */
- if (!q)
- return q;
- *n = q; /* make new node */
- /* LINTED const castaway ok */
- q->key = (void *)vkey; /* initialize new node */
- q->llink = q->rlink = NULL;
+ if (q != 0) { /* make new node */
+ *rootp = q; /* link new node to old */
+ /* LINTED const castaway ok */
+ q->key = (void *)vkey; /* initialize new node */
+ q->llink = q->rlink = NULL;
+ }
return q;
}
diff --git a/winsup/utils/ChangeLog b/winsup/utils/ChangeLog
index 3286cf432..c94c53f17 100644
--- a/winsup/utils/ChangeLog
+++ b/winsup/utils/ChangeLog
@@ -1,46 +1,3 @@
-2012-07-11 Corinna Vinschen <corinna@vinschen.de>
-
- * Makefile.in (cygcheck.exe): Link against psapi.dll.
- * bloda.cc: Change include section to work with Mingw64 headers.
- Include psapi.h. Use SystemProcessInformation instead of
- SystemProcessesAndThreadsInformation throughout and add define for
- w32api headers. Ditto for PSYSTEM_PROCESS_INFORMATION vs.
- PSYSTEM_PROCESSES.
- (system_module_list): New type to replace SYSTEM_MODULE_INFORMATION.
- Change usage throughout accordingly.
- (get_module_list): Fetch module list using PSAPI functions
- EnumDeviceDrivers and GetDeviceDriverBaseNameA.
- * cygcheck.cc (max): Define as __max if not defined already.
- (alloca): Only define if not defined already.
- (handle_unique_object_name): Use explicit sharing flags rather than
- FILE_SHARE_VALID_FLAGS which officially is only available in DDK
- headers.
- (PRODUCT_ULTIMATE_E): Only define if not defined already.
- * dump_setup.cc: Change include section to work with Mingw64 headers.
- (NtQueryAttributesFile): Drop NTOSAPI aka DECLSPEC_IMPORT.
- * strace.cc: Change include section to work with Mingw64 headers.
- (alloca): Only define if not defined already.
-
-2012-07-06 Corinna Vinschen <corinna@vinschen.de>
-
- * cygpath.cc: Change including headers to allow building against
- Mingw64 headers. Include ntdef.h and ntdll.h rather than ddk headers.
- Define _WIN32_WINNT and WINVER as 0x0602.
- (RtlEqualUnicodePathPrefix): Drop definition. Pulled in from ntdll.h
- now.
- (get_device_name): s/Zw/Nt.
- * dumper.cc: Include sys/param.h
- (dumper::dump_memory_region): Use MIN rather than min.
- * locale.cc: Include stdlib.h. Define _WIN32_WINNT and WINVER as
- 0x0602.
- * ps.cc: Include ntdef.h and ntdll.h rather than ddk headers.
- * regtool.cc (regDeleteKeyEx): Drop WINADVAPI qualifier.
-
-2012-06-03 Corinna Vinschen <corinna@vinschen.de>
-
- * cygcheck.cc (dump_sysinfo): Change "Server 8" to official
- "Server 2012".
-
2012-05-05 Corinna Vinschen <corinna@vinschen.de>
* mkpasswd.c (current_user): Actually *use* $HOME if it's available.
diff --git a/winsup/utils/Makefile.in b/winsup/utils/Makefile.in
index f3030a175..25ee5c48a 100644
--- a/winsup/utils/Makefile.in
+++ b/winsup/utils/Makefile.in
@@ -74,7 +74,7 @@ path-mount.o: path.cc
mount.exe: path-mount.o
# Provide any necessary per-target variable overrides.
-cygcheck.exe: MINGW_LDFLAGS += -lpsapi -lntdll
+cygcheck.exe: MINGW_LDFLAGS += -lntdll
cygpath.exe: ALL_LDFLAGS += -lcygwin -luserenv -lntdll
cygpath.exe: CXXFLAGS += -fno-threadsafe-statics
ps.exe: ALL_LDFLAGS += -lcygwin -lpsapi -lntdll
diff --git a/winsup/utils/bloda.cc b/winsup/utils/bloda.cc
index dcb18f1a4..2cd799aea 100644
--- a/winsup/utils/bloda.cc
+++ b/winsup/utils/bloda.cc
@@ -11,23 +11,10 @@
#define cygwin_internal cygwin_internal_dontuse
#include <stdio.h>
#include <assert.h>
-#define WIN32_NO_STATUS /* Disable status codes in winnt.h since we include
- ntstatus.h for extended status codes below. */
#include <windows.h>
-#undef WIN32_NO_STATUS
-#include <psapi.h>
-#ifndef __MINGW64_VERSION_MAJOR
-# include <ntdef.h>
-# include <ddk/ntstatus.h>
-# include <ddk/ntapi.h>
-# define SystemProcessInformation SystemProcessesAndThreadsInformation
-# define PSYSTEM_PROCESS_INFORMATION PSYSTEM_PROCESSES
-# define ImageName ProcessName
-# define NextEntryOffset NextEntryDelta
-#else
-# include <winternl.h>
-# include <ntstatus.h>
-#endif
+#include <ntdef.h>
+#include <ddk/ntstatus.h>
+#include <ddk/ntapi.h>
#undef cygwin_internal
#undef DEBUGGING
@@ -121,77 +108,68 @@ static struct bad_app_info big_list_of_dodgy_apps[] =
static const size_t num_of_dodgy_apps = sizeof (big_list_of_dodgy_apps) / sizeof (big_list_of_dodgy_apps[0]);
-struct system_module_list
-{
- LONG count;
- PVOID *pid;
- PCHAR *name;
-};
-
-static PSYSTEM_PROCESS_INFORMATION
+static PSYSTEM_PROCESSES
get_process_list (void)
{
int n_procs = 0x100;
- PSYSTEM_PROCESS_INFORMATION pslist = (PSYSTEM_PROCESS_INFORMATION) malloc (n_procs * sizeof *pslist);
+ PSYSTEM_PROCESSES pslist = (PSYSTEM_PROCESSES) malloc (n_procs * sizeof *pslist);
- while (NtQuerySystemInformation (SystemProcessInformation,
+ while (NtQuerySystemInformation (SystemProcessesAndThreadsInformation,
pslist, n_procs * sizeof *pslist, 0) == STATUS_INFO_LENGTH_MISMATCH)
{
n_procs *= 2;
free (pslist);
- pslist = (PSYSTEM_PROCESS_INFORMATION) malloc (n_procs * sizeof *pslist);
+ pslist = (PSYSTEM_PROCESSES) malloc (n_procs * sizeof *pslist);
}
return pslist;
}
-static system_module_list *
+static PSYSTEM_MODULE_INFORMATION
get_module_list (void)
{
- DWORD modsize = 0;
- system_module_list *modlist = (system_module_list *)
- calloc (1, sizeof (system_module_list));
- while (!EnumDeviceDrivers (modlist->pid, modsize, &modsize))
- {
- free (modlist->pid);
- free (modlist->name);
- modlist->count = modsize / sizeof (PVOID);
- modlist->pid = (PVOID *) calloc (modlist->count, sizeof (PVOID));
- modlist->name = (PCHAR *) calloc (modlist->count, sizeof (PCHAR));
- }
- for (int i = 0; i < modlist->count; ++i)
+ int modsize = 0x1000;
+ PSYSTEM_MODULE_INFORMATION modlist = (PSYSTEM_MODULE_INFORMATION) malloc (modsize);
+
+ while (NtQuerySystemInformation (SystemModuleInformation,
+ modlist, modsize, NULL) == STATUS_INFO_LENGTH_MISMATCH)
{
- modlist->name[0] = (PCHAR) calloc (256, sizeof (CHAR));
- GetDeviceDriverBaseNameA (modlist->pid[i], modlist->name[i], 256);
+ modsize *= 2;
+ free (modlist);
+ modlist = (PSYSTEM_MODULE_INFORMATION) malloc (modsize);
}
return modlist;
}
static bool
-find_process_in_list (PSYSTEM_PROCESS_INFORMATION pslist, PUNICODE_STRING psname)
+find_process_in_list (PSYSTEM_PROCESSES pslist, PUNICODE_STRING psname)
{
while (1)
{
- if (pslist->ImageName.Length && pslist->ImageName.Buffer)
+ if (pslist->ProcessName.Length && pslist->ProcessName.Buffer)
{
- dbg_printf (("%S\n", pslist->ImageName.Buffer));
- if (!_wcsicmp (pslist->ImageName.Buffer, psname->Buffer))
+ dbg_printf (("%S\n", pslist->ProcessName.Buffer));
+ if (!_wcsicmp (pslist->ProcessName.Buffer, psname->Buffer))
return true;
}
- if (!pslist->NextEntryOffset)
+ if (!pslist->NextEntryDelta)
break;
- pslist = (PSYSTEM_PROCESS_INFORMATION)(pslist->NextEntryOffset + (char *)pslist);
+ pslist = (PSYSTEM_PROCESSES)(pslist->NextEntryDelta + (char *)pslist);
};
return false;
}
static bool
-find_module_in_list (system_module_list * modlist, const char * const modname)
+find_module_in_list (PSYSTEM_MODULE_INFORMATION modlist, const char * const modname)
{
- for (int i = 0; i < modlist->count; ++i)
+ PSYSTEM_MODULE_INFORMATION_ENTRY modptr = &modlist->Module[0];
+ DWORD count = modlist->Count;
+ while (count--)
{
- dbg_printf (("name '%s' ", modlist->name[i]));
- if (!_stricmp (modlist->name[i], modname))
+ dbg_printf (("name '%s' offset %d ", &modptr->ImageName[0], modptr->PathLength));
+ dbg_printf (("= '%s'\n", &modptr->ImageName[modptr->PathLength]));
+ if (!_stricmp (&modptr->ImageName[modptr->PathLength], modname))
return true;
+ modptr++;
}
return false;
}
@@ -255,7 +233,7 @@ expand_path (const char *path, char *outbuf)
}
static bool
-detect_dodgy_app (const struct bad_app_det *det, PSYSTEM_PROCESS_INFORMATION pslist, system_module_list * modlist)
+detect_dodgy_app (const struct bad_app_det *det, PSYSTEM_PROCESSES pslist, PSYSTEM_MODULE_INFORMATION modlist)
{
HANDLE fh;
HKEY hk;
@@ -356,8 +334,8 @@ void
dump_dodgy_apps (int verbose)
{
size_t i, n_det = 0;
- PSYSTEM_PROCESS_INFORMATION pslist;
- system_module_list * modlist;
+ PSYSTEM_PROCESSES pslist;
+ PSYSTEM_MODULE_INFORMATION modlist;
/* Read system info for detect testing. */
pslist = get_process_list ();
@@ -426,9 +404,6 @@ dump_dodgy_apps (int verbose)
}
/* Tidy up allocations. */
free (pslist);
- for (int i = 0; i < modlist->count; ++i)
- free (modlist->name[i]);
- free (modlist->name);
- free (modlist->pid);
+ free (modlist);
}
diff --git a/winsup/utils/cygcheck.cc b/winsup/utils/cygcheck.cc
index de45addd2..52411c881 100644
--- a/winsup/utils/cygcheck.cc
+++ b/winsup/utils/cygcheck.cc
@@ -1,7 +1,7 @@
/* cygcheck.cc
Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
- 2006, 2007, 2008, 2009, 2010, 2011, 2012 Red Hat, Inc.
+ 2006, 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
This file is part of Cygwin.
@@ -30,13 +30,7 @@
#undef cygwin_internal
#include "loadlib.h"
-#ifndef max
-#define max __max
-#endif
-
-#ifndef alloca
#define alloca __builtin_alloca
-#endif
int verbose = 0;
int registry = 0;
@@ -1320,7 +1314,7 @@ handle_unique_object_name (int opt, char *path)
if (opt == CO_SHOW_UON)
{
access = GENERIC_READ;
- share = FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE;
+ share = FILE_SHARE_VALID_FLAGS;
protect = PAGE_READONLY;
mapping = FILE_MAP_READ;
}
@@ -1442,7 +1436,7 @@ dump_sysinfo ()
else if (osversion.dwMinorVersion == 2)
{
strcpy (osname, osversion.wProductType == VER_NT_WORKSTATION
- ? "8" : "Server 2012");
+ ? "8" : "Server 8");
strcat (osname, " (not yet supported!)");
}
DWORD prod;
@@ -1453,9 +1447,7 @@ dump_sysinfo ()
&prod))
{
#define PRODUCT_UNLICENSED 0xabcdabcd
-#ifndef PRODUCT_ULTIMATE_E
#define PRODUCT_ULTIMATE_E 0x00000047
-#endif
const char *products[] =
{
/* 0x00000000 */ "",
diff --git a/winsup/utils/cygpath.cc b/winsup/utils/cygpath.cc
index 77ee38426..662112fe5 100644
--- a/winsup/utils/cygpath.cc
+++ b/winsup/utils/cygpath.cc
@@ -8,6 +8,10 @@ This software is a copyrighted work licensed under the terms of the
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
details. */
+#define NOCOMATTRIBUTE
+
+#define WINVER 0x0600
+#include <shlobj.h>
#include <stdio.h>
#include <string.h>
#include <wchar.h>
@@ -15,22 +19,17 @@ details. */
#include <stdlib.h>
#include <limits.h>
#include <getopt.h>
+#include <windows.h>
+#include <userenv.h>
#include <io.h>
#include <sys/fcntl.h>
#include <sys/cygwin.h>
#include <cygwin/version.h>
#include <ctype.h>
#include <errno.h>
-
-#define _WIN32_WINNT 0x0602
-#define WINVER 0x0602
-#define NOCOMATTRIBUTE
-#include <windows.h>
-#include <userenv.h>
-#include <shlobj.h>
-#include <ntdef.h>
-#include <ntdll.h>
-
+#include <ddk/ntddk.h>
+#include <ddk/winddk.h>
+#include <ddk/ntifs.h>
#include "wide_path.h"
#include "loadlib.h"
@@ -149,6 +148,18 @@ RtlAllocateUnicodeString (PUNICODE_STRING uni, ULONG size)
return uni->Buffer != NULL;
}
+static inline BOOLEAN
+RtlEqualUnicodePathPrefix (PUNICODE_STRING path, PUNICODE_STRING prefix,
+ BOOLEAN caseinsensitive)
+ {
+ UNICODE_STRING p;
+
+ p.Length = p.MaximumLength = prefix->Length < path->Length
+ ? prefix->Length : path->Length;
+ p.Buffer = path->Buffer;
+ return RtlEqualUnicodeString (&p, prefix, caseinsensitive);
+ }
+
static size_t
my_wcstombs (char *dest, const wchar_t *src, size_t n)
{
@@ -192,11 +203,11 @@ get_device_name (char *path)
query it and use the new name as actual device name to search for in the
DOS device name directory. If not, just use the incoming device name. */
InitializeObjectAttributes (&ntobj, &ntdev, OBJ_CASE_INSENSITIVE, NULL, NULL);
- status = NtOpenSymbolicLinkObject (&lnk, SYMBOLIC_LINK_QUERY, &ntobj);
+ status = ZwOpenSymbolicLinkObject (&lnk, SYMBOLIC_LINK_QUERY, &ntobj);
if (NT_SUCCESS (status))
{
- status = NtQuerySymbolicLinkObject (lnk, &tgtdev, NULL);
- NtClose (lnk);
+ status = ZwQuerySymbolicLinkObject (lnk, &tgtdev, NULL);
+ ZwClose (lnk);
if (!NT_SUCCESS (status))
goto out;
RtlCopyUnicodeString (&ntdev, &tgtdev);
@@ -214,28 +225,28 @@ get_device_name (char *path)
/* Open the directory... */
InitializeObjectAttributes (&ntobj, &ntdevdir, OBJ_CASE_INSENSITIVE,
NULL, NULL);
- status = NtOpenDirectoryObject (&dir, DIRECTORY_QUERY, &ntobj);
+ status = ZwOpenDirectoryObject (&dir, DIRECTORY_QUERY, &ntobj);
if (!NT_SUCCESS (status))
break;
/* ...and scan it. */
for (restart = TRUE, cont = 0;
- NT_SUCCESS (NtQueryDirectoryObject (dir, odi, 4096, TRUE,
+ NT_SUCCESS (ZwQueryDirectoryObject (dir, odi, 4096, TRUE,
restart, &cont, NULL));
restart = FALSE)
{
/* For each entry check if it's a symbolic link. */
InitializeObjectAttributes (&ntobj, &odi->ObjectName,
OBJ_CASE_INSENSITIVE, dir, NULL);
- status = NtOpenSymbolicLinkObject (&lnk, SYMBOLIC_LINK_QUERY, &ntobj);
+ status = ZwOpenSymbolicLinkObject (&lnk, SYMBOLIC_LINK_QUERY, &ntobj);
if (!NT_SUCCESS (status))
continue;
tgtdev.Length = 0;
tgtdev.MaximumLength = 512;
/* If so, query it and compare the target of the symlink with the
incoming device name. */
- status = NtQuerySymbolicLinkObject (lnk, &tgtdev, NULL);
- NtClose (lnk);
+ status = ZwQuerySymbolicLinkObject (lnk, &tgtdev, NULL);
+ ZwClose (lnk);
if (!NT_SUCCESS (status))
continue;
if (tgtdev.Length /* There's actually a symlink pointing to an
@@ -282,12 +293,12 @@ get_device_name (char *path)
else
memmove (ret, ret + 4, strlen (ret + 4) + 1);
}
- NtClose (dir);
+ ZwClose (dir);
goto out;
}
}
}
- NtClose (dir);
+ ZwClose (dir);
}
out:
diff --git a/winsup/utils/dump_setup.cc b/winsup/utils/dump_setup.cc
index f463caf14..70f03eed5 100644
--- a/winsup/utils/dump_setup.cc
+++ b/winsup/utils/dump_setup.cc
@@ -8,6 +8,7 @@ This software is a copyrighted work licensed under the terms of the
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
details. */
+#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
@@ -16,18 +17,9 @@ details. */
#include <io.h>
#include <sys/stat.h>
#include <errno.h>
-#define WIN32_NO_STATUS /* Disable status codes in winnt.h since we include
- ntstatus.h for extended status codes below. */
-#include <windows.h>
-#undef WIN32_NO_STATUS
-#ifndef __MINGW64_VERSION_MAJOR
-# include <ddk/ntapi.h>
-# include <ddk/winddk.h>
-#else
-# include <winternl.h>
-# include <ntstatus.h>
-#endif
#include "path.h"
+#include <ddk/ntapi.h>
+#include <ddk/winddk.h>
#if 0
#include "zlib.h"
#endif
@@ -273,8 +265,8 @@ transform_chars (PWCHAR path, PWCHAR path_end)
*path = tfx_chars[*path];
}
-extern "C" NTAPI NTSTATUS NtQueryAttributesFile (POBJECT_ATTRIBUTES,
- PFILE_BASIC_INFORMATION);
+extern "C" NTOSAPI NTAPI NTSTATUS NtQueryAttributesFile(
+ POBJECT_ATTRIBUTES, PFILE_BASIC_INFORMATION);
/* This function checks for file existance and fills the stat structure
with only the required mode info. We're using a native NT function
diff --git a/winsup/utils/dumper.cc b/winsup/utils/dumper.cc
index 28d0add04..3b92bcc18 100644
--- a/winsup/utils/dumper.cc
+++ b/winsup/utils/dumper.cc
@@ -33,7 +33,6 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
-#include <sys/param.h>
#include <windows.h>
#include "dumper.h"
@@ -381,7 +380,7 @@ dumper::dump_memory_region (asection * to, process_mem_region * memory)
while (size > 0)
{
- todo = MIN (size, PAGE_BUFFER_SIZE);
+ todo = min (size, PAGE_BUFFER_SIZE);
if (!ReadProcessMemory (hProcess, pos, mem_buf, todo, &done))
{
deb_printf ("Failed to read process memory at %x(%x), error %ld\n", pos, todo, GetLastError ());
diff --git a/winsup/utils/locale.cc b/winsup/utils/locale.cc
index be57cf161..e3c39c049 100644
--- a/winsup/utils/locale.cc
+++ b/winsup/utils/locale.cc
@@ -25,7 +25,6 @@
*/
#include <errno.h>
#include <stdio.h>
-#include <stdlib.h>
#include <ctype.h>
#include <getopt.h>
#include <string.h>
@@ -35,8 +34,7 @@
#include <limits.h>
#include <sys/cygwin.h>
#include <cygwin/version.h>
-#define _WIN32_WINNT 0x0602
-#define WINVER 0x0602
+#define WINVER 0x0601
#include <windows.h>
#define LOCALE_ALIAS "/usr/share/locale/locale.alias"
diff --git a/winsup/utils/ps.cc b/winsup/utils/ps.cc
index 7ed69ea9b..e026518c4 100644
--- a/winsup/utils/ps.cc
+++ b/winsup/utils/ps.cc
@@ -23,8 +23,8 @@ details. */
#include <sys/cygwin.h>
#include <cygwin/version.h>
#include <psapi.h>
-#include <ntdef.h>
-#include <ntdll.h>
+#include <ddk/ntapi.h>
+#include <ddk/winddk.h>
#include "loadlib.h"
/* Maximum possible path length under NT. There's no official define
@@ -347,7 +347,7 @@ main (int argc, char *argv[])
unicode_buf to have enough space for a maximum sized
UNICODE_STRING. */
if (uni->Length == 0) /* System process */
- win32path = (wchar_t *) L"System";
+ win32path = L"System";
else
{
uni->Buffer[uni->Length / sizeof (WCHAR)] = L'\0';
diff --git a/winsup/utils/regtool.cc b/winsup/utils/regtool.cc
index 5a4244e3e..cc28d485e 100644
--- a/winsup/utils/regtool.cc
+++ b/winsup/utils/regtool.cc
@@ -574,7 +574,7 @@ cmd_add ()
}
extern "C" {
- LONG WINAPI (*regDeleteKeyEx)(HKEY, LPCWSTR, REGSAM, DWORD);
+WINADVAPI LONG WINAPI (*regDeleteKeyEx)(HKEY, LPCWSTR, REGSAM, DWORD);
}
int
@@ -587,7 +587,7 @@ cmd_remove ()
{
HMODULE mod = LoadLibrary ("advapi32.dll");
if (mod)
- regDeleteKeyEx = (LONG WINAPI (*)(HKEY, LPCWSTR, REGSAM, DWORD)) GetProcAddress (mod, "RegDeleteKeyExW");
+ regDeleteKeyEx = (WINADVAPI LONG WINAPI (*)(HKEY, LPCWSTR, REGSAM, DWORD)) GetProcAddress (mod, "RegDeleteKeyExW");
}
if (regDeleteKeyEx)
rv = (*regDeleteKeyEx) (key, value, wow64, 0);
diff --git a/winsup/utils/strace.cc b/winsup/utils/strace.cc
index f9d2eb323..f8662582d 100644
--- a/winsup/utils/strace.cc
+++ b/winsup/utils/strace.cc
@@ -11,12 +11,6 @@ This software is a copyrighted work licensed under the terms of the
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
details. */
-#include <windows.h>
-#ifndef __MINGW64_VERSION_MAJOR
-#include "ddk/ntapi.h"
-#else
-#include <winternl.h>
-#endif
#define cygwin_internal cygwin_internal_dontuse
#include <stdio.h>
#include <fcntl.h>
@@ -25,6 +19,7 @@ details. */
#include <string.h>
#include <stdlib.h>
#include <time.h>
+#include <windows.h>
#include <signal.h>
#include <errno.h>
#include "cygwin/include/sys/strace.h"
@@ -33,11 +28,10 @@ details. */
#include "path.h"
#undef cygwin_internal
#include "loadlib.h"
+#include "ddk/ntapi.h"
/* we *know* we're being built with GCC */
-#ifndef alloca
#define alloca __builtin_alloca
-#endif
static const char *pgm;
static int forkdebug = 1;
diff --git a/winsup/w32api/ChangeLog b/winsup/w32api/ChangeLog
index 79892af2a..60fcacd00 100644
--- a/winsup/w32api/ChangeLog
+++ b/winsup/w32api/ChangeLog
@@ -1,61 +1,3 @@
-2012-08-08 Earnie Boyd <earnie@users.sourceforge.net>
-
- * lib/kernel32.def (InterlockedDecrement): Remove the @BYTE count since
- we now declare it as __cdecl.
- (InterlockedIncrement): Ditto.
- (InterlockedExchange): Ditto.
-
-2012-08-06 Earnie Boyd <earnie@users.sourceforge.net>
-
- * include/winnt.h (MemoryBarrier): Define to __mingworg_MemoryBarrier()
- which is in libmingwex.a.
- MODIFIED FROM: Use __sync_synchronize instead of
- creating a function due to multiple definition.
- NOTE: Not using __sync_synchronize to allow applications to mix-n-match
- C libraries from different vendors.
-
-2012-08-04 Earnie Boyd <earnie@users.sourceforge.net>
-
- * include/winver.h (VerQueryValue[AW]): Correct declaration per MSDN.
-
-2012-08-01 Stephan Jorek <sjorek@users.sourceforge.net>
-
- * include/setupapi.h: Correct typos and truncations.
-
-2012-08-01 Earnie Boyd <earnie@users.sourceforge.net>
-
- * include/winuser.h (tagMENUITEMINFOA): Correct dwItemData definition.
- (tagMENUITEMINFOW): Ditto.
- * include/wtsapi32.h (WTSVirtualChannelClose): Add declaration.
- (WTSVirtualChannelOpen): Ditto.
- (WTSVirtualchannelOpenEx): Ditto.
- (WTSVirtualChannelPurgeInput): Ditto.
- (WTSVirtualChannelPurgeOutput): Ditto.
- (WTSVirtualChannelQuery): Ditto.
- (WTSVirtualChannelRead): Ditto.
- (WTSVirtualChannelWrite): Ditto.
- * lib/wtsapi32.def (WTSVirtualChannelOpenEx@12): Add import.
- * include/winbase.h (InterlockedDecrement): Modify declaration from
- LONG WINAPI to LONG __cdecl to match Microsoft documentation.
- (InterlockedIncrement): Ditto.
- (InterlockedExchange): Ditto.
- * include/winnt.h (MemoryBarrier): Add definition.
- * lib/Makefile.in (amvideo.h): Dependencies are not met making this file
- implementation incomplete. Do not deliver it.
- (amaudio.h): Ditto.
-
-2012-07-29 Earnie Boyd <earnie@users.sourceforge.net>
-
- * include/sdkddkver.h: New file.
- * include/windows.h: Include sdkddkver.h.
-
-2012-07-06 Corinna Vinschen <corinna@vinschen.de>
-
- * include/winsock.h: Keep IP_OPTIONS and SO_xxx definitions when
- building Cygwin.
- * include/winsock2.h: Keep sockaddr and sockaddr_storage definitions
- when building Cygwin.
-
2012-04-29 Jan Ringos <tringi@users.sf.net>
* include/winbase.h (GetModuleHandleEx[A/W]): Correct version guard.
diff --git a/winsup/w32api/include/sdkddkver.h b/winsup/w32api/include/sdkddkver.h
deleted file mode 100644
index 3005cf5ab..000000000
--- a/winsup/w32api/include/sdkddkver.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/**
- sdkddkver.h - Versioning file for Windows SDK/DDK.
-
- This file is part of a free library for the Windows API.
-
- This 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.
-*/
-#ifndef _SDKDDKVER_H
-#define _SDKDDKVER_H
-
-/**
- * Define version masks
- * http://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspx
- * Values and names are guessed based on comments in the documentation.
- */
-#define OSVERSION_MASK 0xFFFF0000
-#define SPVERSION_MASK 0x0000FF00
-#define SUBVERSION_MASK 0x000000FF
-
-/**
- * Macros to extract values from NTDDI version.
- * Derived from comments on MSDN or social.microsoft.com
- */
-#define OSVER(ver) ((ver) & OSVERSION_MASK)
-#define SPVER(ver) (((ver) & SPVERSION_MASK) >> 8)
-#define SUBVER(ver) ((ver) & SUBVERSION_MASK)
-
-/**
- * Macros to create the minimal NTDDI version from _WIN32_WINNT value.
- */
-#define NTDDI_VERSION_FROM_WIN32_WINNT(ver) _NTDDI_VERSION_FROM_WIN32_WINNT(ver)
-#define _NTDDI_VERSION_FROM_WIN32_WINNT(ver) ver##0000
-
-/**
- * Version constants defining _WIN32_WINNT versions.
- * http://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspx
- */
-#define _WIN32_WINNT_NT4 0x0400
-#define _WIN32_WINNT_WIN2K 0x0500
-#define _WIN32_WINNT_WINXP 0x0501
-#define _WIN32_WINNT_WS03 0x0502
-#define _WIN32_WINNT_WIN6 0x0600
-#define _WIN32_WINNT_VISTA 0x0600
-#define _WIN32_WINNT_WS08 0x0600
-#define _WIN32_WINNT_LONGORN 0x0600
-#define _WIN32_WINNT_WIN7 0x0601
-
-/**
- * Version constants defining _WIN32_IE versions.
- * http://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspx
- */
-#define _WIN32_IE_IE50 0x0500
-#define _WIN32_IE_IE501 0x0501
-#define _WIN32_IE_IE55 0x0550
-#define _WIN32_IE_IE60 0x0600
-#define _WIN32_IE_IE60SP1 0x0601
-#define _WIN32_IE_IE60SP2 0x0603
-#define _WIN32_IE_IE70 0x0700
-#define _WIN32_IE_IE80 0x0800
-
-/**
- * Version constants defining NTDDI_VERSION.
- * http://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspx
- */
-#define __NTDDI_WIN5 0x05000000
-#define __NTDDI_WIN51 0x05010000
-#define __NTDDI_WIN52 0x05020000
-#define __NTDDI_WIN6 0x06000000
-#define __NTDDI_WIN61 0x06010000
-#define __NTDDI_SP0 0x00000000
-#define __NTDDI_SP1 0x00000100
-#define __NTDDI_SP2 0x00000200
-#define __NTDDI_SP3 0x00000300
-#define __NTDDI_SP4 0x00000400
-
-#define NTDDI_WIN2K __NTDDI_WIN5 + __NTDDI_SP0
-#define NTDDI_WIN2KSP1 __NTDDI_WIN5 + __NTDDI_SP1
-#define NTDDI_WIN2KSP2 __NTDDI_WIN5 + __NTDDI_SP2
-#define NTDDI_WIN2KSP3 __NTDDI_WIN5 + __NTDDI_SP3
-#define NTDDI_WIN2KSP4 __NTDDI_WIN5 + __NTDDI_SP4
-
-#define NTDDI_WINXP __NTDDI_WIN51 + __NTDDI_SP0
-#define NTDDI_WINXPSP1 __NTDDI_WIN51 + __NTDDI_SP1
-#define NTDDI_WINXPSP2 __NTDDI_WIN51 + __NTDDI_SP2
-#define NTDDI_WINXPSP3 __NTDDI_WIN51 + __NTDDI_SP3
-
-#define NTDDI_WS03 __NTDDI_WIN52 + __NTDDI_SP0
-#define NTDDI_WS03SP1 __NTDDI_WIN52 + __NTDDI_SP1
-#define NTDDI_WS03SP2 __NTDDI_WIN52 + __NTDDI_SP2
-
-#define NTDDI_VISTA __NTDDI_WIN6 + __NTDDI_SP0
-#define NTDDI_VISTASP1 __NTDDI_WIN6 + __NTDDI_SP1
-#define NTDDI_VISTASP2 __NTDDI_WIN6 + __NTDDI_SP2
-
-#define NTDDI_LONGHORN NTDDI_VISTA
-
-#define NTDDI_WIN6 NTDDI_VISTA
-#define NTDDI_WIN6SP1 NTDDI_VISTASP1
-#define NTDDI_WIN6SP2 NTDDI_VISTASP2
-
-#define NTDDI_WS08 __NTDDI_WIN6 + __NTDDI_SP1
-
-#define NTDDI_WIN7 __NTDDI_WIN61 + __NTDDI_SP0
-
-/**
- * Assign defaults
- */
-#ifdef NTDDI_VERSION
-# ifdef _WIN32_WINNT
-# if _WIN32_WINNT != OSDIR(NTDDI_VERSION)
-# error The _WIN32_WINNT value does not match NTDDI_VERSION
-# endif
-# else
-# define _WIN32_WINNT OSVER(NTDDI_VERSION)
-# ifndef WINVER
-# define WINVER _WIN32_WINNT
-# endif
-# endif
-#endif
-
-#ifndef _WIN32_WINNT
-# ifdef WINVER
-# define _WIN32_WINNT WINVER
-# else
-# warning _WIN32_WINNT is defaulting to _WIN32_WINNT_WIN2K
-# define _WIN32_WINNT _WIN32_WINNT_WIN2K
-# endif
-#endif
-
-#ifndef WINVER
-# define WINVER _WIN32_WINNT
-#endif
-
-#ifndef NTDDI_VERSION
-# warning NTDDI_VERSION is defaulting to _WIN32_WINNT version SPK0
-# define NTDDI_VERSION NTDDI_VERSION_FROM_WIN32_WINNT(_WIN32_WINNT)
-#endif
-
-#endif
diff --git a/winsup/w32api/include/setupapi.h b/winsup/w32api/include/setupapi.h
index 8fc7a6c82..ef38852a2 100644
--- a/winsup/w32api/include/setupapi.h
+++ b/winsup/w32api/include/setupapi.h
@@ -1046,7 +1046,7 @@ WINSETUPAPI BOOL WINAPI SetupAdjustDiskSpaceListA(HDSKSPC,LPCSTR,LONGLONG,PVOID,
WINSETUPAPI BOOL WINAPI SetupAdjustDiskSpaceListW(HDSKSPC,LPCWSTR,LONGLONG,PVOID,UINT);
WINSETUPAPI UINT WINAPI SetupBackupErrorA(HWND,PCSTR,PCSTR,PCSTR,UINT,DWORD);
WINSETUPAPI UINT WINAPI SetupBackupErrorW(HWND,PCWSTR,PCWSTR,PCWSTR,UINT,DWORD);
-WINSETUPAPI BOOL WINAPI SetupCancelTemporarySourceList(VOID);
+WINSETUPAPI BOOL WINAPI SetupCancelTemporary(VOID);
WINSETUPAPI BOOL WINAPI SetupCloseFileQueue(HSPFILEQ);
WINSETUPAPI VOID WINAPI SetupCloseInfFile(HINF);
WINSETUPAPI VOID WINAPI SetupCloseLog(VOID);
@@ -1157,7 +1157,7 @@ WINSETUPAPI BOOL WINAPI SetupDiGetINFClassW(PCWSTR,LPGUID,PWSTR,DWORD,PDWORD);
WINSETUPAPI BOOL WINAPI SetupDiGetSelectedDevice(HDEVINFO,PSP_DEVINFO_DATA);
WINSETUPAPI BOOL WINAPI SetupDiGetSelectedDriverA(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_A);
WINSETUPAPI BOOL WINAPI SetupDiGetSelectedDriverW(HDEVINFO,PSP_DEVINFO_DATA,PSP_DRVINFO_DATA_W);
-WINSETUPAPI HPROPSHEETPAGE WINAPI SetupDiGetWizardPage(HDEVINFO,PSP_DEVINFO_DATA,PSP_INSTALLWIZARD_DATA,DWORD,DWORD);
+WINSETUPAPI HPROPSHEETPAGE WINAPI SetupDiGetWizardage(HDEVINFO,PSP_DEVINFO_DATA,PSP_INSTALLWIZARD_DATA,DWORD,DWORD);
WINSETUPAPI BOOL WINAPI SetupDiInstallClassA(HWND,PCSTR,DWORD,HSPFILEQ);
WINSETUPAPI BOOL WINAPI SetupDiInstallClassW(HWND,PCWSTR,DWORD,HSPFILEQ);
WINSETUPAPI BOOL WINAPI SetupDiInstallClassExA(HWND,PCSTR,DWORD,HSPFILEQ,CONST GUID*,PVOID,PVOID);
@@ -1204,8 +1204,8 @@ WINSETUPAPI BOOL WINAPI SetupFindFirstLineW(HINF,PCWSTR,PCWSTR,PINFCONTEXT);
WINSETUPAPI BOOL WINAPI SetupFindNextLine(PINFCONTEXT,PINFCONTEXT);
WINSETUPAPI BOOL WINAPI SetupFindNextMatchLineA(PINFCONTEXT,PCSTR,PINFCONTEXT);
WINSETUPAPI BOOL WINAPI SetupFindNextMatchLineW(PINFCONTEXT,PCWSTR,PINFCONTEXT);
-WINSETUPAPI BOOL WINAPI SetupFreeSourceListA(PCSTR**,UINT);
-WINSETUPAPI BOOL WINAPI SetupFreeSourceListW(PCWSTR**,UINT);
+WINSETUPAPI BOOL WINAPI SetupFreeA(PCSTR**,UINT);
+WINSETUPAPI BOOL WINAPI SetupFreeW(PCWSTR**,UINT);
WINSETUPAPI BOOL WINAPI SetupGetBackupInformationA(HSPFILEQ,PSP_BACKUP_QUEUE_PARAMS_A);
WINSETUPAPI BOOL WINAPI SetupGetBackupInformationW(HSPFILEQ,PSP_BACKUP_QUEUE_PARAMS_W);
WINSETUPAPI BOOL WINAPI SetupGetBinaryField(PINFCONTEXT,DWORD,PBYTE,DWORD,LPDWORD);
@@ -1267,8 +1267,8 @@ WINSETUPAPI HINF WINAPI SetupOpenMasterInf(VOID);
WINSETUPAPI UINT WINAPI SetupPromptForDiskA(HWND,PCSTR,PCSTR,PCSTR,PCSTR,PCSTR,DWORD,PSTR,DWORD,PDWORD);
WINSETUPAPI UINT WINAPI SetupPromptForDiskW(HWND,PCWSTR,PCWSTR,PCWSTR,PCWSTR,PCWSTR,DWORD,PWSTR,DWORD,PDWORD);
WINSETUPAPI INT WINAPI SetupPromptReboot(HSPFILEQ,HWND,BOOL);
-WINSETUPAPI BOOL WINAPI SetupQuerySourceListA(DWORD,PCSTR**,PUINT);
-WINSETUPAPI BOOL WINAPI SetupQuerySourceListW(DWORD,PCWSTR**,PUINT);
+WINSETUPAPI BOOL WINAPI SetupQueryA(DWORD,PCSTR**,PUINT);
+WINSETUPAPI BOOL WINAPI SetupQueryW(DWORD,PCWSTR**,PUINT);
WINSETUPAPI BOOL WINAPI SetupQueryDrivesInDiskSpaceListA(HDSKSPC,PSTR,DWORD,PDWORD);
WINSETUPAPI BOOL WINAPI SetupQueryDrivesInDiskSpaceListW(HDSKSPC,PWSTR,DWORD,PDWORD);
WINSETUPAPI BOOL WINAPI SetupQueryFileLogA(HSPFILELOG,PCSTR,PCSTR,SetupFileLogInfo,PSTR,DWORD,PDWORD);
diff --git a/winsup/w32api/include/winbase.h b/winsup/w32api/include/winbase.h
index aa168418b..a61547051 100644
--- a/winsup/w32api/include/winbase.h
+++ b/winsup/w32api/include/winbase.h
@@ -1846,8 +1846,8 @@ LONG WINAPI InterlockedCompareExchange(LONG volatile *,LONG,LONG);
/* PVOID WINAPI InterlockedCompareExchangePointer(PVOID*,PVOID,PVOID); */
#define InterlockedCompareExchangePointer(d,e,c) \
(PVOID)InterlockedCompareExchange((LONG volatile *)(d),(LONG)(e),(LONG)(c))
-LONG __cdecl InterlockedDecrement(LONG volatile *);
-LONG __cdecl InterlockedExchange(LONG volatile *,LONG);
+LONG WINAPI InterlockedDecrement(LONG volatile *);
+LONG WINAPI InterlockedExchange(LONG volatile *,LONG);
/* PVOID WINAPI InterlockedExchangePointer(PVOID*,PVOID); */
#define InterlockedExchangePointer(t,v) \
(PVOID)InterlockedExchange((LONG volatile *)(t),(LONG)(v))
@@ -1855,7 +1855,7 @@ LONG WINAPI InterlockedExchangeAdd(LONG volatile *,LONG);
#if (_WIN32_WINNT >= 0x0501)
PSLIST_ENTRY WINAPI InterlockedFlushSList(PSLIST_HEADER);
#endif
-LONG __cdecl InterlockedIncrement(LONG volatile *);
+LONG WINAPI InterlockedIncrement(LONG volatile *);
#if (_WIN32_WINNT >= 0x0501)
PSLIST_ENTRY WINAPI InterlockedPopEntrySList(PSLIST_HEADER);
PSLIST_ENTRY WINAPI InterlockedPushEntrySList(PSLIST_HEADER,PSLIST_ENTRY);
diff --git a/winsup/w32api/include/windows.h b/winsup/w32api/include/windows.h
index db18aec8d..97e037e90 100644
--- a/winsup/w32api/include/windows.h
+++ b/winsup/w32api/include/windows.h
@@ -16,8 +16,6 @@
#pragma GCC system_header
#endif
-#include <sdkddkver.h>
-
/* translate GCC target defines to MS equivalents. Keep this synchronized
with winnt.h. */
#if defined(__i686__) && !defined(_M_IX86)
diff --git a/winsup/w32api/include/winnt.h b/winsup/w32api/include/winnt.h
index d650bf800..b31274bbe 100644
--- a/winsup/w32api/include/winnt.h
+++ b/winsup/w32api/include/winnt.h
@@ -4035,19 +4035,6 @@ struct _TEB * NtCurrentTeb(void);
#endif /* __GNUC__ */
#endif /* _X86_ */
-#if _WIN32_WINNT >= _WIN32_WINNT_VISTA
-# if defined(_AMD64_) || defined(__X86_64)
-# define MemoryBarrier __faststorefence
-# elif defined(_IA64_)
-# define MemoryBarrier __mf
-# else
- void __mingworg_MemoryBarrier(void);
-# define MemoryBarrier __mingworg_MemoryBarrier
-# endif
-#else
-# define MemoryBarrier
-#endif
-
#endif /* RC_INVOKED */
#ifdef __cplusplus
diff --git a/winsup/w32api/include/winsock.h b/winsup/w32api/include/winsock.h
index 929c10348..b595b597c 100644
--- a/winsup/w32api/include/winsock.h
+++ b/winsup/w32api/include/winsock.h
@@ -240,7 +240,7 @@ typedef struct WSAData {
} WSADATA;
typedef WSADATA *LPWSADATA;
-#ifndef __INSIDE_MSYS__
+#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
#define IP_OPTIONS 1
#define SO_DEBUG 1
#define SO_ACCEPTCONN 2
@@ -260,7 +260,7 @@ typedef WSADATA *LPWSADATA;
#define SO_RCVTIMEO 0x1006
#define SO_ERROR 0x1007
#define SO_TYPE 0x1008
-#endif /* !__INSIDE_MSYS__ */
+#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
/*
* Note that the next 5 IP defines are specific to WinSock 1.1 (wsock32.dll).
* They will cause errors or unexpected results if used with the
diff --git a/winsup/w32api/include/winsock2.h b/winsup/w32api/include/winsock2.h
index 0279227b4..260c3fa5f 100644
--- a/winsup/w32api/include/winsock2.h
+++ b/winsup/w32api/include/winsock2.h
@@ -331,7 +331,7 @@ typedef WSADATA *LPWSADATA;
#define AF_12844 25
#define AF_IRDA 26
#define AF_NETDES 28
-#ifndef __INSIDE_MSYS__
+#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
#define AF_MAX 29
struct sockaddr {
u_short sa_family;
@@ -359,7 +359,7 @@ struct sockaddr_storage {
__int64 __ss_align; /* force alignment */
char __ss_pad2[_SS_PAD2SIZE]; /* pad to 128 */
};
-#endif /* !__INSIDE_MSYS__ */
+#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
struct sockproto {
u_short sp_family;
diff --git a/winsup/w32api/include/winuser.h b/winsup/w32api/include/winuser.h
index 76f493584..7fb6fe224 100644
--- a/winsup/w32api/include/winuser.h
+++ b/winsup/w32api/include/winuser.h
@@ -2771,7 +2771,7 @@ typedef struct tagMENUITEMINFOA {
HMENU hSubMenu;
HBITMAP hbmpChecked;
HBITMAP hbmpUnchecked;
- ULONG_PTR dwItemData;
+ DWORD dwItemData;
LPSTR dwTypeData;
UINT cch;
#if (_WIN32_WINNT >= 0x0500)
@@ -2788,7 +2788,7 @@ typedef struct tagMENUITEMINFOW {
HMENU hSubMenu;
HBITMAP hbmpChecked;
HBITMAP hbmpUnchecked;
- ULONG_PTR dwItemData;
+ DWORD dwItemData;
LPWSTR dwTypeData;
UINT cch;
#if (_WIN32_WINNT >= 0x0500)
diff --git a/winsup/w32api/include/winver.h b/winsup/w32api/include/winver.h
index f5a0dab85..9f8c9b76c 100644
--- a/winsup/w32api/include/winver.h
+++ b/winsup/w32api/include/winver.h
@@ -107,8 +107,8 @@ BOOL WINAPI GetFileVersionInfoA(LPCSTR,DWORD,DWORD,PVOID);
BOOL WINAPI GetFileVersionInfoW(LPCWSTR,DWORD,DWORD,PVOID);
DWORD WINAPI VerLanguageNameA(DWORD,LPSTR,DWORD);
DWORD WINAPI VerLanguageNameW(DWORD,LPWSTR,DWORD);
-BOOL WINAPI VerQueryValueA(LPCVOID,LPCSTR,LPVOID*,PUINT);
-BOOL WINAPI VerQueryValueW(LPCVOID,LPCWSTR,LPVOID*,PUINT);
+BOOL WINAPI VerQueryValueA(const LPVOID,LPCSTR,LPVOID*,PUINT);
+BOOL WINAPI VerQueryValueW(const LPVOID,LPCWSTR,LPVOID*,PUINT);
#ifdef UNICODE
#define VerFindFile VerFindFileW
#define VerQueryValue VerQueryValueW
diff --git a/winsup/w32api/include/wtsapi32.h b/winsup/w32api/include/wtsapi32.h
index 298acb9b6..5bd09bbbd 100644
--- a/winsup/w32api/include/wtsapi32.h
+++ b/winsup/w32api/include/wtsapi32.h
@@ -74,7 +74,7 @@ BOOL WINAPI WTSQueryUserToken(ULONG SessionId, PHANDLE pToken);
#endif /* _WIN32_WINNT >= 0x0501 */
-#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
+#if (_WIN32_WINNT >= 0x0500)
typedef struct _WTS_SESSION_INFOW {
DWORD SessionId;
@@ -168,56 +168,6 @@ BOOL WTSSendMessageW(
#define WTSSendMessage WTSSendMessageA
#endif
-BOOL WTSVirtualChannelClose(
- __in HANDLE hChannelHandle
-);
-
-HANDLE WTSVirtualChannelOpen(
- __in HANDLE hServer,
- __in DWORD SessionId,
- __in LPSTR pVirtualName
-);
-
-#if _WIN32_WINNT >= _WIN32_WINNT_VISTA
-HANDLE WTSVirtualChannelOpenEx(
- __in DWORD SessionId,
- __in LPSTR pVirtualName,
- __in DWORD flags
-);
-#endif
-
-BOOL WTSVirtualChannelPurgeInput(
- __in HANDLE hChannelHandle
-);
-
-BOOL WTSVirtualChannelPurgeOutput(
- __in HANDLE hChannelHandle
-);
-
-#if _WIN32_WINNT >= _WIN32_WINNT_WINXP
-BOOL WTSVirtualChannelQuery(
- __in HANDLE hChannelHandle,
- __in WTS_VIRTUAL_CLASS WtsVirtualClass,
- __out PVOID *ppBuffer,
- __out DWORD *pBytesReturned
-);
-#endif
-
-BOOL WTSVirtualChannelRead(
- __in HANDLE hChannelHandle,
- __in ULONG TimeOut,
- __out PCHAR Buffer,
- __in ULONG BufferSize,
- __out PULONG pBytesRead
-);
-
-BOOL WTSVirtualChannelWrite(
- __in HANDLE hChannelHandle,
- __in PCHAR Buffer,
- __in ULONG Length,
- __out PULONG pBytesWritten
-);
-
#endif /* _WIN32_WINNT >= 0x0500 */
#ifdef __cplusplus
diff --git a/winsup/w32api/lib/Makefile.in b/winsup/w32api/lib/Makefile.in
index d918f680f..97201566a 100644
--- a/winsup/w32api/lib/Makefile.in
+++ b/winsup/w32api/lib/Makefile.in
@@ -131,14 +131,7 @@ install-libraries: all $(need-DESTDIR-compatibility)
install-headers: $(need-DESTDIR-compatibility)
$(mkinstalldirs) $(DESTDIR)${inst_includedir}
for file in $(HEADERS); do \
- case $$file in \
- amvideo.h | amaudio.h) \
- echo Not installing $$file \
- ;; \
- *) \
- $(INSTALL_DATA) ${top_srcdir}/include/$$file $(DESTDIR)${inst_includedir}; \
- ;; \
- esac \
+ $(INSTALL_DATA) ${top_srcdir}/include/$$file $(DESTDIR)${inst_includedir}; \
done
$(mkinstalldirs) $(DESTDIR)${inst_includedir}/GL
for file in $(GL_HEADERS); do \
diff --git a/winsup/w32api/lib/kernel32.def b/winsup/w32api/lib/kernel32.def
index 177160f6b..fca559aac 100644
--- a/winsup/w32api/lib/kernel32.def
+++ b/winsup/w32api/lib/kernel32.def
@@ -749,11 +749,11 @@ InitializeSListHead@4
InitializeSRWLock@4
InterlockedCompareExchange64@20
InterlockedCompareExchange@12
-InterlockedDecrement
-InterlockedExchange
+InterlockedDecrement@4
+InterlockedExchange@8
InterlockedExchangeAdd@8
InterlockedFlushSList@4
-InterlockedIncrement
+InterlockedIncrement@4
InterlockedPopEntrySList@4
InterlockedPushEntrySList@8
InvalidateConsoleDIBits@8
diff --git a/winsup/w32api/lib/wtsapi32.def b/winsup/w32api/lib/wtsapi32.def
index 6baaa7124..e02e4705c 100755
--- a/winsup/w32api/lib/wtsapi32.def
+++ b/winsup/w32api/lib/wtsapi32.def
@@ -27,7 +27,6 @@ WTSTerminateProcess@12
WTSUnRegisterSessionNotification@4
WTSVirtualChannelClose@4
WTSVirtualChannelOpen@12
-WTSVirtualChannelOpenEx@12
WTSVirtualChannelPurgeInput@4
WTSVirtualChannelPurgeOutput@4
WTSVirtualChannelQuery@16