diff options
author | Rene Ladan <rene@FreeBSD.org> | 2014-06-01 14:16:40 +0000 |
---|---|---|
committer | Rene Ladan <rene@FreeBSD.org> | 2014-06-01 14:16:40 +0000 |
commit | 5ee7fa75d63eefc0840f3488e378ad771f28aacb (patch) | |
tree | 1cddf1d3270706f8770e9e135cd13cd917093300 | |
parent | 5dbe4e1bf1e90ad10ea5324c1a3f6d4f5288c216 (diff) | |
download | ports-5ee7fa75d63eefc0840f3488e378ad771f28aacb.tar.gz ports-5ee7fa75d63eefc0840f3488e378ad771f28aacb.zip |
Notes
-rw-r--r-- | MOVED | 3 | ||||
-rw-r--r-- | lang/Makefile | 3 | ||||
-rw-r--r-- | lang/gnat-aux/Makefile | 263 | ||||
-rw-r--r-- | lang/gnat-aux/Makefile.common | 19 | ||||
-rw-r--r-- | lang/gnat-aux/distinfo | 20 | ||||
-rw-r--r-- | lang/gnat-aux/files/diff-ada | 9755 | ||||
-rw-r--r-- | lang/gnat-aux/files/diff-ada-testsuite | 190 | ||||
-rw-r--r-- | lang/gnat-aux/files/diff-core | 2069 | ||||
-rw-r--r-- | lang/gnat-aux/files/diff-cxx | 953 | ||||
-rw-r--r-- | lang/gnat-aux/files/diff-cxx-testsuite | 4547 | ||||
-rw-r--r-- | lang/gnat-aux/files/diff-fortran | 54 | ||||
-rw-r--r-- | lang/gnat-aux/files/diff-fortran-testsuite | 31 | ||||
-rw-r--r-- | lang/gnat-aux/files/diff-gcc-testsuite | 10 | ||||
-rw-r--r-- | lang/gnat-aux/pkg-descr | 13 | ||||
-rw-r--r-- | lang/ocaml-doc/Makefile | 41 | ||||
-rw-r--r-- | lang/ocaml-doc/distinfo | 6 | ||||
-rw-r--r-- | lang/ocaml-doc/pkg-descr | 4 | ||||
-rw-r--r-- | lang/ocaml-examples/Makefile | 28 | ||||
-rw-r--r-- | lang/ocaml-examples/distinfo | 2 | ||||
-rw-r--r-- | lang/ocaml-examples/pkg-descr | 3 | ||||
-rw-r--r-- | lang/ocaml-examples/pkg-plist | 505 |
21 files changed, 3 insertions, 18516 deletions
@@ -6121,3 +6121,6 @@ net-im/vicq||2014-05-30|Has expired: Unmaintained, outdated not depend on net-im/mercury||2014-05-31|Has expired: MSN is dying and the domain mercury.im is down german/bsdgroup-firefox-searchplugin||2014-05-31|Has expired: bsdgroup.de no longer seems to exist german/bsdforen-firefox-searchplugin||2014-05-31|Has expired: No longer works after forum software update +lang/ocaml-doc||2014-06-01|Has expired: Documentation is now included in lang/ocaml +lang/ocaml-examples||2014-06-01|Has expired: Outdated and discontinued; new examples are in lang/ocaml +lang/gnat-aux|lang/gcc-aux|2014-06-01|Has expired: Superceded by gcc4.9-based lang/gcc-aux, use it instead diff --git a/lang/Makefile b/lang/Makefile index 85c267c4678a..24aee567050b 100644 --- a/lang/Makefile +++ b/lang/Makefile @@ -93,7 +93,6 @@ SUBDIR += gforth SUBDIR += ghc SUBDIR += gjs - SUBDIR += gnat-aux SUBDIR += gnat_util SUBDIR += gnatdroid-armv5 SUBDIR += gnatdroid-armv7 @@ -184,8 +183,6 @@ SUBDIR += ocaml SUBDIR += ocaml-autoconf SUBDIR += ocaml-camlidl - SUBDIR += ocaml-doc - SUBDIR += ocaml-examples SUBDIR += ocaml-mode.el SUBDIR += ocaml-nox11 SUBDIR += ocs diff --git a/lang/gnat-aux/Makefile b/lang/gnat-aux/Makefile deleted file mode 100644 index 52bfa3a2a308..000000000000 --- a/lang/gnat-aux/Makefile +++ /dev/null @@ -1,263 +0,0 @@ -# Created by: John Marino <marino@FreeBSD.org> -# $FreeBSD$ - -PORTNAME= gnat-aux -PORTVERSION= ${SNAPSHOT} -PORTREVISION= 2 -CATEGORIES= lang -MASTER_SITES= http://downloads.dragonlace.net/src/:boot \ - ${MASTER_SITE_GCC} -MASTER_SITE_SUBDIR= releases/gcc-${GCC_VERSION} -DISTFILES= gcc-core-${GCC_VERSION}.tar.bz2 - -MAINTAINER= marino@FreeBSD.org -COMMENT= GNAT Ada compiler based on GCC ${GCC_BRANCH} - -LICENSE= GPLv3 GPLv3RLE -LICENSE_COMB= multi - -DEPRECATED= Superceded by gcc4.9-based lang/gcc-aux, use it instead -EXPIRATION_DATE=2014-06-01 - -.include "${.CURDIR}/Makefile.common" - -LANGS= c -APPLY_DIFFS= core -INTENDED_COMPILER= NATIVE -BOOTSTRAP_COMPILER= NOT_REQUIRED -BOOTSTRAP_TRIPLET= NOT_SET -FULL_GNATGCC= NOT_SET -GARCH= ${ARCH:S/amd64/x86_64/} -OS_LABEL4VERS= [${OPSYS}${GARCH:C,^.*(64),\1,}] -NO_LICENSES_INSTALL= yes -NO_MTREE= yes - -OPTIONS_DEFINE= ADA CXX FORT OBJC TESTSUITE -OPTIONS_DEFAULT= ADA CXX FORT OBJC -NO_OPTIONS_SORT= yes - -ADA_DESC= Build Ada language -CXX_DESC= Build C++ language -FORT_DESC= Build Fortran language -OBJC_DESC= Build Objective-C language -TESTSUITE_DESC= Activate test support - -.include <bsd.port.options.mk> - -.if ${OPSYS} == FreeBSD -. if ${GARCH} == x86_64 -BOOTSTRAP_TRIPLET= x86_64-bootstrap-freebsd8.1/4.6.0 -. else -BOOTSTRAP_TRIPLET= i386-bootstrap-freebsd8.0/4.6.0 -. endif -.endif -.if ${OPSYS} == DragonFly -BOOTSTRAP_TRIPLET= ${GARCH}-bootstrap-dragonfly2.8/4.6.0 -.endif -BLD_TARGET= ${GARCH}-aux-${OPSYS:tl}${OSREL} -BOOTSTRAP_COMPILER= gnat-bootstrap.${GARCH}.${OPSYS:tl}.tar.bz2 - -WRKSRC= ${WRKDIR}/gcc-${GCC_VERSION} -BUILDDIR= ${WRKDIR}/build -CFG_SCRIPT= ${WRKSRC}/configure -REVFILE= ${WRKSRC}/gcc/REVISION -BOOTSTRAP_PREFIX= ${WRKDIR}/bootstrap -PKG_PREFIX= ${PREFIX} -AWKMANPAGE= '{if ($$0 ~ /^man\/man[1-9]\/.+[1-9]$$/) print $$0 ".gz"; else print $$0}' - -# If we find gnatgcc and friends in standard location, then we'll use this -# compiler instead of downloading the bootstrap. -.if exists (${PREFIX}/bin/gnatgcc) -.if exists (${PREFIX}/bin/gnatbind) -.if exists (${PREFIX}/bin/gnatlink) -.if exists (${PREFIX}/bin/gnatmake) -FULL_GNATGCC=${PREFIX}/bin/gnatgcc -FULL_PATH=/sbin:/bin:/usr/sbin:/usr/bin:${PREFIX}/bin -.endif -.endif -.endif -.endif - -# If FULL_GNATGCC is not set, we'll request the bootstrap compiler -.if ${FULL_GNATGCC} == NOT_SET -INTENDED_COMPILER=BOOTSTRAP -FULL_GNATGCC=${BOOTSTRAP_PREFIX}/bin/gnatgcc -FULL_PATH=${BOOTSTRAP_PREFIX}/bin:/sbin:/bin:/usr/sbin:/usr/bin:${PREFIX}/bin -DISTFILES+= ${BOOTSTRAP_COMPILER}:boot -.endif - -########### -## Ada ## -########### - -.if ${PORT_OPTIONS:MADA} -LANGS+= ada -APPLY_DIFFS+= ada -DISTFILES+= gcc-ada-${GCC_VERSION}.tar.bz2 -.endif - -########### -## C++ ## -########### - -.if ${PORT_OPTIONS:MCXX} -LANGS+= c++ -APPLY_DIFFS+= cxx -DISTFILES+= gcc-g++-${GCC_VERSION}.tar.bz2 -.endif - -############### -## Fortran ## -############### - -.if ${PORT_OPTIONS:MFORT} -LANGS+= fortran -APPLY_DIFFS+= fortran -DISTFILES+= gcc-fortran-${GCC_VERSION}.tar.bz2 -QUADOPT= --enable-libquadmath -.else -QUADOPT= --disable-libquadmath -.endif - -################### -## Objective-C ## -################### - -.if ${PORT_OPTIONS:MOBJC} -LANGS+= objc -DISTFILES+= gcc-objc-${GCC_VERSION}.tar.bz2 -.endif - -################## -## Testsuites ## -################## - -.if ${PORT_OPTIONS:MTESTSUITE} -BUILD_DEPENDS= dejagnu>=1.4:${PORTSDIR}/misc/dejagnu -DISTFILES+= gcc-testsuite-${GCC_VERSION}.tar.bz2 -APPLY_DIFFS+= ada-testsuite -APPLY_DIFFS+= cxx-testsuite -APPLY_DIFFS+= fortran-testsuite -APPLY_DIFFS+= gcc-testsuite -.endif - -# for port maintenance, uncomment to invoke "make makesum PLUS_BOOTSTRAPS=1" -.if defined(PLUS_BOOTSTRAPS) -DISTFILES= \ - gcc-core-${GCC_VERSION}.tar.bz2\ - gcc-ada-${GCC_VERSION}.tar.bz2 \ - gcc-g++-${GCC_VERSION}.tar.bz2 \ - gcc-fortran-${GCC_VERSION}.tar.bz2 \ - gcc-objc-${GCC_VERSION}.tar.bz2 \ - gcc-testsuite-${GCC_VERSION}.tar.bz2 \ - gnat-bootstrap.x86_64.dragonfly.tar.bz2:boot \ - gnat-bootstrap.i386.dragonfly.tar.bz2:boot \ - gnat-bootstrap.x86_64.freebsd.tar.bz2:boot \ - gnat-bootstrap.i386.freebsd.tar.bz2:boot -.endif - -# Establish Ada-aware compiler for use -ADA_CONFIGURE_ENV= CC=${FULL_GNATGCC} -ADA_CONFIGURE_ENV+= PATH=${FULL_PATH} -ADA_CONFIGURE_ENV+= CONFIG_SHELL=${SH} -ADA_MAKE_ENV= PATH=${FULL_PATH} -ADA_MAKE_ENV+= LD_LIBRARY_PATH=${BUILDDIR}/gcc - -# The standard configuration options -CONFIGURE_ARGS= --enable-languages=${LANGS:Q} -CONFIGURE_ARGS+= --build=${BLD_TARGET} -CONFIGURE_ARGS+= --program-prefix=gnat -CONFIGURE_ARGS+= --prefix=${PREFIX} -CONFIGURE_ARGS+= --with-system-zlib -CONFIGURE_ARGS+= --with-gmp=${PKG_PREFIX} -CONFIGURE_ARGS+= --with-mpfr=${PKG_PREFIX} -CONFIGURE_ARGS+= --with-mpc=${PKG_PREFIX} -CONFIGURE_ARGS+= ${ICONV_CONFIGURE_ARG} -CONFIGURE_ARGS+= --enable-shared -CONFIGURE_ARGS+= --enable-threads=posix -CONFIGURE_ARGS+= --disable-bootstrap -CONFIGURE_ARGS+= ${QUADOPT} -CONFIGURE_ARGS+= --disable-libmudflap -CONFIGURE_ARGS+= --disable-libgomp -CONFIGURE_ARGS+= --disable-libssp -CONFIGURE_ARGS+= --disable-nls - -post-extract: - # Personalize GNAT for each different machine - @${ECHO} "-=> GNAT AUX ${OS_LABEL4VERS}" > ${REVFILE} - - # Create new directories in preparation of applying diff files -.if ${PORT_OPTIONS:MCXX} - ${MKDIR} ${WRKSRC}/libstdc++-v3/config/locale/dragonfly - ${MKDIR} ${WRKSRC}/libstdc++-v3/config/os/bsd/dragonfly -.endif - - # Apply required composite diff files -.for suffix in ${APPLY_DIFFS} - @${ECHO} "Applying composite patch diff-${suffix}" - @${PATCH} -d ${WRKSRC} -s -E < ${FILESDIR}/diff-${suffix} -.endfor - -.if ${INTENDED_COMPILER} == BOOTSTRAP - ${MKDIR} ${BOOTSTRAP_PREFIX} - ${MV} ${BOOTSTRAP_PREFIX}/../bin ${BOOTSTRAP_PREFIX} - ${MV} ${BOOTSTRAP_PREFIX}/../lib ${BOOTSTRAP_PREFIX} - ${MV} ${BOOTSTRAP_PREFIX}/../libexec ${BOOTSTRAP_PREFIX} - - # Bootstrap compiler has statically linked z, gmp, mpc, mpfr and iconv - # The only shared lib is libc.so.7, so it should work for a long time. - - ${RM} -rf ${BOOTSTRAP_PREFIX}/lib/gcc/${BOOTSTRAP_TRIPLET}/include-fixed -.endif - -do-configure: - ${MKDIR} ${BUILDDIR} - cd ${BUILDDIR} && ${SETENV} ${ADA_CONFIGURE_ENV} \ - ${CFG_SCRIPT} ${CONFIGURE_ARGS} - -do-build: - cd ${BUILDDIR} && ${SETENV} ${ADA_MAKE_ENV} ${GMAKE} -j${MAKE_JOBS_NUMBER} all - -test: build test-ada test-fortran test-objc test-cxx test-c - -test-ada: -.if ${PORT_OPTIONS:MADA} && ${PORT_OPTIONS:MTESTSUITE} - cd ${BUILDDIR} && ${SETENV} ${ADA_MAKE_ENV} ${GMAKE} -sk check-ada -.endif - -test-fortran: -.if ${PORT_OPTIONS:MFORT} && ${PORT_OPTIONS:MTESTSUITE} - cd ${BUILDDIR} && ${SETENV} ${ADA_MAKE_ENV} ${GMAKE} -sk check-fortran -.endif - -test-objc: -.if ${PORT_OPTIONS:MOBJC} && ${PORT_OPTIONS:MTESTSUITE} - cd ${BUILDDIR} && ${SETENV} ${ADA_MAKE_ENV} ${GMAKE} -sk check-objc -.endif - -test-cxx: -.if ${PORT_OPTIONS:MCXX} && ${PORT_OPTIONS:MTESTSUITE} - # libstdc++ testsuite will break every time, TRUE used to force continuation - cd ${BUILDDIR} && ${SETENV} ${ADA_MAKE_ENV} ${GMAKE} -sk check-c++ || true -.endif - -test-c: -.if ${PORT_OPTIONS:MTESTSUITE} - cd ${BUILDDIR} && ${SETENV} ${ADA_MAKE_ENV} ${GMAKE} -sk check-c -.endif - -do-install: - cd ${BUILDDIR} && ${SETENV} ${ADA_MAKE_ENV} ${GMAKE} install-strip DESTDIR=${STAGEDIR} - ${RM} ${STAGEDIR}${PREFIX}/lib/libiberty.a - -post-install: - ${MV} ${STAGEDIR}${PREFIX}/share/man ${STAGEDIR}/${PREFIX} - cd ${STAGEDIR}${PREFIX}; ${FIND} * -type d -empty | \ - ${SORT} -dr | ${XARGS} ${RMDIR} - cd ${STAGEDIR}${PREFIX}; ${FIND} * \( -type f -or -type l \) | \ - ${AWK} ${AWKMANPAGE} | ${SORT} >> ${TMPPLIST} - cd ${STAGEDIR}${PREFIX}; ${FIND} * -type d | ${SORT} -r | \ - ${SED} -E -e '/^(bin|sbin|lib|libexec|share|man|include)$$/d' \ - -e '/^man\/man[1-9]$$/d' -e 's/^/@dirrm /g' >> ${TMPPLIST} - -.include <bsd.port.mk> diff --git a/lang/gnat-aux/Makefile.common b/lang/gnat-aux/Makefile.common deleted file mode 100644 index faa7f639191e..000000000000 --- a/lang/gnat-aux/Makefile.common +++ /dev/null @@ -1,19 +0,0 @@ -# $FreeBSD$ - -LIB_DEPENDS= libgmp.so:${PORTSDIR}/math/gmp -LIB_DEPENDS+= libmpfr.so:${PORTSDIR}/math/mpfr -LIB_DEPENDS+= libmpc.so:${PORTSDIR}/math/mpc - -ONLY_FOR_ARCHS= i386 amd64 - -GNU_CONFIGURE= yes -USE_BZIP2= yes -USES= gmake iconv perl5 -USE_PERL5= build -ALL_TARGET= default - -SNAPSHOT= 20130412 -GCC_BRANCH= 4.6 -GCC_POINT= 4 -GCC_VERSION= ${GCC_BRANCH}.${GCC_POINT} - diff --git a/lang/gnat-aux/distinfo b/lang/gnat-aux/distinfo deleted file mode 100644 index 284694285ff6..000000000000 --- a/lang/gnat-aux/distinfo +++ /dev/null @@ -1,20 +0,0 @@ -SHA256 (gcc-core-4.6.4.tar.bz2) = 48b566f1288f099dff8fba868499a320f83586245ec69b8c82a9042566a5bf62 -SIZE (gcc-core-4.6.4.tar.bz2) = 30353380 -SHA256 (gcc-ada-4.6.4.tar.bz2) = 2a09bbf942b2557839722d4807e67559123037356f5cb1a3b12f44539968d0ad -SIZE (gcc-ada-4.6.4.tar.bz2) = 6084085 -SHA256 (gcc-g++-4.6.4.tar.bz2) = 4eaa347f9cd3ab7d5e14efbb9c5c03009229cd714b558fc55fa56e8996b74d42 -SIZE (gcc-g++-4.6.4.tar.bz2) = 6939359 -SHA256 (gcc-fortran-4.6.4.tar.bz2) = 4f402e0d27995a02354570f0a63047f27463c72c62f1ba3c08ef5a7c6c9c3d1c -SIZE (gcc-fortran-4.6.4.tar.bz2) = 1679632 -SHA256 (gcc-objc-4.6.4.tar.bz2) = f1f399fedc52d70d91e13211f0ccff56b7183f429d248010a5d7b43fa9bada3d -SIZE (gcc-objc-4.6.4.tar.bz2) = 346591 -SHA256 (gcc-testsuite-4.6.4.tar.bz2) = bfa9a5188dde3332df3eaf1ab0bc2bec11aa5e02146a445c23547c8fbe8d895b -SIZE (gcc-testsuite-4.6.4.tar.bz2) = 6388458 -SHA256 (gnat-bootstrap.x86_64.dragonfly.tar.bz2) = ccd361f3fa15fad38ea68530b120517f0049767d6b98cf02898d5adf9ef2b23e -SIZE (gnat-bootstrap.x86_64.dragonfly.tar.bz2) = 31380342 -SHA256 (gnat-bootstrap.i386.dragonfly.tar.bz2) = 9148952791231e7d302238b690b183af72867b19ecac8ac482f035c06583cb0c -SIZE (gnat-bootstrap.i386.dragonfly.tar.bz2) = 28205489 -SHA256 (gnat-bootstrap.x86_64.freebsd.tar.bz2) = c4abd6af1281785d47d99352e28e41b2a1455e25ff347eca0de5791cdede9ed8 -SIZE (gnat-bootstrap.x86_64.freebsd.tar.bz2) = 31565201 -SHA256 (gnat-bootstrap.i386.freebsd.tar.bz2) = c38e1c960f651c3f248c1ef540b1df724058fa71c1d046af93ce975483abb645 -SIZE (gnat-bootstrap.i386.freebsd.tar.bz2) = 27973176 diff --git a/lang/gnat-aux/files/diff-ada b/lang/gnat-aux/files/diff-ada deleted file mode 100644 index 9d4a8cf5f6f5..000000000000 --- a/lang/gnat-aux/files/diff-ada +++ /dev/null @@ -1,9755 +0,0 @@ ---- /dev/null -+++ gcc/ada/a-intnam-dragonfly.ads -@@ -0,0 +1,133 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS -- -+-- -- -+-- A D A . I N T E R R U P T S . N A M E S -- -+-- -- -+-- S p e c -- -+-- -- -+-- Copyright (C) 1991-2009, Free Software Foundation, Inc. -- -+-- -- -+-- GNARL is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 3, or (at your option) any later ver- -- -+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- -+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- -+-- or FITNESS FOR A PARTICULAR PURPOSE. -- -+-- -- -+-- As a special exception under Section 7 of GPL version 3, you are granted -- -+-- additional permissions described in the GCC Runtime Library Exception, -- -+-- version 3.1, as published by the Free Software Foundation. -- -+-- -- -+-- You should have received a copy of the GNU General Public License and -- -+-- a copy of the GCC Runtime Library Exception along with this program; -- -+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- -+-- <http://www.gnu.org/licenses/>. -- -+-- -- -+-- GNARL was developed by the GNARL team at Florida State University. -- -+-- Extensive contributions were provided by Ada Core Technologies, Inc. -- -+-- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- -+------------------------------------------------------------------------------ -+ -+-- This is the DragonFly BSD THREADS version of this package -+ -+with System.OS_Interface; -+ -+package Ada.Interrupts.Names is -+ -+ -- Beware that the mapping of names to signals may be many-to-one. There -+ -- may be aliases. Also, for all signal names that are not supported on -+ -- the current system the value of the corresponding constant will be zero. -+ -+ SIGHUP : constant Interrupt_ID := -+ System.OS_Interface.SIGHUP; -- hangup -+ -+ SIGINT : constant Interrupt_ID := -+ System.OS_Interface.SIGINT; -- interrupt (rubout) -+ -+ SIGQUIT : constant Interrupt_ID := -+ System.OS_Interface.SIGQUIT; -- quit (ASCD FS) -+ -+ SIGILL : constant Interrupt_ID := -+ System.OS_Interface.SIGILL; -- illegal instruction (not reset) -+ -+ SIGTRAP : constant Interrupt_ID := -+ System.OS_Interface.SIGTRAP; -- trace trap (not reset) -+ -+ SIGIOT : constant Interrupt_ID := -+ System.OS_Interface.SIGIOT; -- IOT instruction -+ -+ SIGABRT : constant Interrupt_ID := -- used by abort, -+ System.OS_Interface.SIGABRT; -- replace SIGIOT in the future -+ -+ SIGFPE : constant Interrupt_ID := -+ System.OS_Interface.SIGFPE; -- floating point exception -+ -+ SIGKILL : constant Interrupt_ID := -+ System.OS_Interface.SIGKILL; -- kill (cannot be caught or ignored) -+ -+ SIGBUS : constant Interrupt_ID := -+ System.OS_Interface.SIGBUS; -- bus error -+ -+ SIGSEGV : constant Interrupt_ID := -+ System.OS_Interface.SIGSEGV; -- segmentation violation -+ -+ SIGPIPE : constant Interrupt_ID := -- write on a pipe with -+ System.OS_Interface.SIGPIPE; -- no one to read it -+ -+ SIGALRM : constant Interrupt_ID := -+ System.OS_Interface.SIGALRM; -- alarm clock -+ -+ SIGTERM : constant Interrupt_ID := -+ System.OS_Interface.SIGTERM; -- software termination signal from kill -+ -+ SIGURG : constant Interrupt_ID := -+ System.OS_Interface.SIGURG; -- urgent condition on IO channel -+ -+ SIGSTOP : constant Interrupt_ID := -+ System.OS_Interface.SIGSTOP; -- stop (cannot be caught or ignored) -+ -+ SIGTSTP : constant Interrupt_ID := -+ System.OS_Interface.SIGTSTP; -- user stop requested from tty -+ -+ SIGCONT : constant Interrupt_ID := -+ System.OS_Interface.SIGCONT; -- stopped process has been continued -+ -+ SIGCHLD : constant Interrupt_ID := -+ System.OS_Interface.SIGCHLD; -- 4.3BSD's/POSIX name for SIGCLD -+ -+ SIGCLD : constant Interrupt_ID := -+ System.OS_Interface.SIGCLD; -- child status change -+ -+ SIGTTIN : constant Interrupt_ID := -+ System.OS_Interface.SIGTTIN; -- background tty read attempted -+ -+ SIGTTOU : constant Interrupt_ID := -+ System.OS_Interface.SIGTTOU; -- background tty write attempted -+ -+ SIGIO : constant Interrupt_ID := -- input/output possible, -+ System.OS_Interface.SIGIO; -- SIGPOLL alias (Solaris) -+ -+ SIGXCPU : constant Interrupt_ID := -+ System.OS_Interface.SIGXCPU; -- CPU time limit exceeded -+ -+ SIGXFSZ : constant Interrupt_ID := -+ System.OS_Interface.SIGXFSZ; -- filesize limit exceeded -+ -+ SIGVTALRM : constant Interrupt_ID := -+ System.OS_Interface.SIGVTALRM; -- virtual timer expired -+ -+ SIGPROF : constant Interrupt_ID := -+ System.OS_Interface.SIGPROF; -- profiling timer expired -+ -+ SIGWINCH : constant Interrupt_ID := -+ System.OS_Interface.SIGWINCH; -- window size change -+ -+ SIGUSR1 : constant Interrupt_ID := -+ System.OS_Interface.SIGUSR1; -- user defined signal 1 -+ -+ SIGUSR2 : constant Interrupt_ID := -+ System.OS_Interface.SIGUSR2; -- user defined signal 2 -+ -+end Ada.Interrupts.Names; ---- /dev/null -+++ gcc/ada/a-intnam-netbsd.ads -@@ -0,0 +1,136 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS -- -+-- -- -+-- A D A . I N T E R R U P T S . N A M E S -- -+-- -- -+-- S p e c -- -+-- -- -+-- Copyright (C) 1991-2009, Free Software Foundation, Inc. -- -+-- -- -+-- GNARL is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 3, or (at your option) any later ver- -- -+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- -+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- -+-- or FITNESS FOR A PARTICULAR PURPOSE. -- -+-- -- -+-- As a special exception under Section 7 of GPL version 3, you are granted -- -+-- additional permissions described in the GCC Runtime Library Exception, -- -+-- version 3.1, as published by the Free Software Foundation. -- -+-- -- -+-- You should have received a copy of the GNU General Public License and -- -+-- a copy of the GCC Runtime Library Exception along with this program; -- -+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- -+-- <http://www.gnu.org/licenses/>. -- -+-- -- -+-- GNARL was developed by the GNARL team at Florida State University. -- -+-- Extensive contributions were provided by Ada Core Technologies, Inc. -- -+-- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- -+------------------------------------------------------------------------------ -+ -+-- This is the NetBSD THREADS version of this package -+ -+with System.OS_Interface; -+ -+package Ada.Interrupts.Names is -+ -+ -- Beware that the mapping of names to signals may be many-to-one. There -+ -- may be aliases. Also, for all signal names that are not supported on -+ -- the current system the value of the corresponding constant will be zero. -+ -+ SIGHUP : constant Interrupt_ID := -+ System.OS_Interface.SIGHUP; -- hangup -+ -+ SIGINT : constant Interrupt_ID := -+ System.OS_Interface.SIGINT; -- interrupt (rubout) -+ -+ SIGQUIT : constant Interrupt_ID := -+ System.OS_Interface.SIGQUIT; -- quit (ASCD FS) -+ -+ SIGILL : constant Interrupt_ID := -+ System.OS_Interface.SIGILL; -- illegal instruction (not reset) -+ -+ SIGTRAP : constant Interrupt_ID := -+ System.OS_Interface.SIGTRAP; -- trace trap (not reset) -+ -+ SIGIOT : constant Interrupt_ID := -+ System.OS_Interface.SIGIOT; -- IOT instruction -+ -+ SIGABRT : constant Interrupt_ID := -- used by abort, -+ System.OS_Interface.SIGABRT; -- replace SIGIOT in the future -+ -+ SIGFPE : constant Interrupt_ID := -+ System.OS_Interface.SIGFPE; -- floating point exception -+ -+ SIGKILL : constant Interrupt_ID := -+ System.OS_Interface.SIGKILL; -- kill (cannot be caught or ignored) -+ -+ SIGBUS : constant Interrupt_ID := -+ System.OS_Interface.SIGBUS; -- bus error -+ -+ SIGSEGV : constant Interrupt_ID := -+ System.OS_Interface.SIGSEGV; -- segmentation violation -+ -+ SIGPIPE : constant Interrupt_ID := -- write on a pipe with -+ System.OS_Interface.SIGPIPE; -- no one to read it -+ -+ SIGALRM : constant Interrupt_ID := -+ System.OS_Interface.SIGALRM; -- alarm clock -+ -+ SIGTERM : constant Interrupt_ID := -+ System.OS_Interface.SIGTERM; -- software termination signal from kill -+ -+ SIGURG : constant Interrupt_ID := -+ System.OS_Interface.SIGURG; -- urgent condition on IO channel -+ -+ SIGSTOP : constant Interrupt_ID := -+ System.OS_Interface.SIGSTOP; -- stop (cannot be caught or ignored) -+ -+ SIGTSTP : constant Interrupt_ID := -+ System.OS_Interface.SIGTSTP; -- user stop requested from tty -+ -+ SIGCONT : constant Interrupt_ID := -+ System.OS_Interface.SIGCONT; -- stopped process has been continued -+ -+ SIGCHLD : constant Interrupt_ID := -+ System.OS_Interface.SIGCHLD; -- 4.3BSD's/POSIX name for SIGCLD -+ -+ SIGCLD : constant Interrupt_ID := -+ System.OS_Interface.SIGCLD; -- child status change -+ -+ SIGTTIN : constant Interrupt_ID := -+ System.OS_Interface.SIGTTIN; -- background tty read attempted -+ -+ SIGTTOU : constant Interrupt_ID := -+ System.OS_Interface.SIGTTOU; -- background tty write attempted -+ -+ SIGIO : constant Interrupt_ID := -- input/output possible, -+ System.OS_Interface.SIGIO; -- SIGPOLL alias (Solaris) -+ -+ SIGXCPU : constant Interrupt_ID := -+ System.OS_Interface.SIGXCPU; -- CPU time limit exceeded -+ -+ SIGXFSZ : constant Interrupt_ID := -+ System.OS_Interface.SIGXFSZ; -- filesize limit exceeded -+ -+ SIGVTALRM : constant Interrupt_ID := -+ System.OS_Interface.SIGVTALRM; -- virtual timer expired -+ -+ SIGPROF : constant Interrupt_ID := -+ System.OS_Interface.SIGPROF; -- profiling timer expired -+ -+ SIGWINCH : constant Interrupt_ID := -+ System.OS_Interface.SIGWINCH; -- window size change -+ -+ SIGUSR1 : constant Interrupt_ID := -+ System.OS_Interface.SIGUSR1; -- user defined signal 1 -+ -+ SIGUSR2 : constant Interrupt_ID := -+ System.OS_Interface.SIGUSR2; -- user defined signal 2 -+ -+ SIGPWR : constant Interrupt_ID := -+ System.OS_Interface.SIGPWR; -- power fail/restart -+ -+end Ada.Interrupts.Names; ---- /dev/null -+++ gcc/ada/a-intnam-openbsd.ads -@@ -0,0 +1,133 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS -- -+-- -- -+-- A D A . I N T E R R U P T S . N A M E S -- -+-- -- -+-- S p e c -- -+-- -- -+-- Copyright (C) 1991-2009, Free Software Foundation, Inc. -- -+-- -- -+-- GNARL is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 3, or (at your option) any later ver- -- -+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- -+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- -+-- or FITNESS FOR A PARTICULAR PURPOSE. -- -+-- -- -+-- As a special exception under Section 7 of GPL version 3, you are granted -- -+-- additional permissions described in the GCC Runtime Library Exception, -- -+-- version 3.1, as published by the Free Software Foundation. -- -+-- -- -+-- You should have received a copy of the GNU General Public License and -- -+-- a copy of the GCC Runtime Library Exception along with this program; -- -+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- -+-- <http://www.gnu.org/licenses/>. -- -+-- -- -+-- GNARL was developed by the GNARL team at Florida State University. -- -+-- Extensive contributions were provided by Ada Core Technologies, Inc. -- -+-- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- -+------------------------------------------------------------------------------ -+ -+-- This is the OpenBSD THREADS version of this package -+ -+with System.OS_Interface; -+ -+package Ada.Interrupts.Names is -+ -+ -- Beware that the mapping of names to signals may be many-to-one. There -+ -- may be aliases. Also, for all signal names that are not supported on -+ -- the current system the value of the corresponding constant will be zero. -+ -+ SIGHUP : constant Interrupt_ID := -+ System.OS_Interface.SIGHUP; -- hangup -+ -+ SIGINT : constant Interrupt_ID := -+ System.OS_Interface.SIGINT; -- interrupt (rubout) -+ -+ SIGQUIT : constant Interrupt_ID := -+ System.OS_Interface.SIGQUIT; -- quit (ASCD FS) -+ -+ SIGILL : constant Interrupt_ID := -+ System.OS_Interface.SIGILL; -- illegal instruction (not reset) -+ -+ SIGTRAP : constant Interrupt_ID := -+ System.OS_Interface.SIGTRAP; -- trace trap (not reset) -+ -+ SIGIOT : constant Interrupt_ID := -+ System.OS_Interface.SIGIOT; -- IOT instruction -+ -+ SIGABRT : constant Interrupt_ID := -- used by abort, -+ System.OS_Interface.SIGABRT; -- replace SIGIOT in the future -+ -+ SIGFPE : constant Interrupt_ID := -+ System.OS_Interface.SIGFPE; -- floating point exception -+ -+ SIGKILL : constant Interrupt_ID := -+ System.OS_Interface.SIGKILL; -- kill (cannot be caught or ignored) -+ -+ SIGBUS : constant Interrupt_ID := -+ System.OS_Interface.SIGBUS; -- bus error -+ -+ SIGSEGV : constant Interrupt_ID := -+ System.OS_Interface.SIGSEGV; -- segmentation violation -+ -+ SIGPIPE : constant Interrupt_ID := -- write on a pipe with -+ System.OS_Interface.SIGPIPE; -- no one to read it -+ -+ SIGALRM : constant Interrupt_ID := -+ System.OS_Interface.SIGALRM; -- alarm clock -+ -+ SIGTERM : constant Interrupt_ID := -+ System.OS_Interface.SIGTERM; -- software termination signal from kill -+ -+ SIGURG : constant Interrupt_ID := -+ System.OS_Interface.SIGURG; -- urgent condition on IO channel -+ -+ SIGSTOP : constant Interrupt_ID := -+ System.OS_Interface.SIGSTOP; -- stop (cannot be caught or ignored) -+ -+ SIGTSTP : constant Interrupt_ID := -+ System.OS_Interface.SIGTSTP; -- user stop requested from tty -+ -+ SIGCONT : constant Interrupt_ID := -+ System.OS_Interface.SIGCONT; -- stopped process has been continued -+ -+ SIGCHLD : constant Interrupt_ID := -+ System.OS_Interface.SIGCHLD; -- 4.3BSD's/POSIX name for SIGCLD -+ -+ SIGCLD : constant Interrupt_ID := -+ System.OS_Interface.SIGCLD; -- child status change -+ -+ SIGTTIN : constant Interrupt_ID := -+ System.OS_Interface.SIGTTIN; -- background tty read attempted -+ -+ SIGTTOU : constant Interrupt_ID := -+ System.OS_Interface.SIGTTOU; -- background tty write attempted -+ -+ SIGIO : constant Interrupt_ID := -- input/output possible, -+ System.OS_Interface.SIGIO; -- SIGPOLL alias (Solaris) -+ -+ SIGXCPU : constant Interrupt_ID := -+ System.OS_Interface.SIGXCPU; -- CPU time limit exceeded -+ -+ SIGXFSZ : constant Interrupt_ID := -+ System.OS_Interface.SIGXFSZ; -- filesize limit exceeded -+ -+ SIGVTALRM : constant Interrupt_ID := -+ System.OS_Interface.SIGVTALRM; -- virtual timer expired -+ -+ SIGPROF : constant Interrupt_ID := -+ System.OS_Interface.SIGPROF; -- profiling timer expired -+ -+ SIGWINCH : constant Interrupt_ID := -+ System.OS_Interface.SIGWINCH; -- window size change -+ -+ SIGUSR1 : constant Interrupt_ID := -+ System.OS_Interface.SIGUSR1; -- user defined signal 1 -+ -+ SIGUSR2 : constant Interrupt_ID := -+ System.OS_Interface.SIGUSR2; -- user defined signal 2 -+ -+end Ada.Interrupts.Names; ---- gcc/ada/adaint.c.orig -+++ gcc/ada/adaint.c -@@ -27,6 +27,7 @@ - * GNAT was originally developed by the GNAT team at New York University. * - * Extensive contributions were provided by Ada Core Technologies Inc. * - * * -+ * Copyright (C) 2010 John Marino <www.dragonlace.net> * - ****************************************************************************/ - - /* This file contains those routines named by Import pragmas in -@@ -400,7 +401,11 @@ - __gnat_current_time - (void) - { -+#if defined(__NetBSD__) && (__NetBSD__ > 5) -+ time_t res = __time50 (NULL); -+#else - time_t res = time (NULL); -+#endif - return (OS_Time) res; - } - -@@ -1047,6 +1052,7 @@ - strcpy (path, "GNAT-XXXXXX"); - - #if (defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) \ -+ || defined (__DragonFly__) \ - || defined (linux) || defined(__GLIBC__)) && !defined (__vxworks) - return mkstemp (path); - #elif defined (__Lynx__) -@@ -1195,7 +1201,49 @@ - free (pname); - } - -+#elif defined (__ANDROID__) -+ -+ /* -+ * ext2 /ext3/ext4/fat16/fat32 have no path limits -+ * /data/local/tmp normally requires rooted devices, if it even exists -+ * /sdcard is the standard location for external storage. Nativeactivity -+ * manifest needs to authorize its use, otherwise it might not have the -+ * proper permissions. -+ */ -+ -+ int testfd; -+ char *datadir = getenv ("ANDROID_DATA"); -+ -+ if (datadir == NULL) -+ strcpy (tmp_filename, "/data/local/tmp/gnat-XXXXXX"); -+ else -+ sprintf (tmp_filename, "%s/local/tmp/gnat-XXXXXX", datadir); -+ -+ testfd = mkstemp (tmp_filename); -+ if (testfd != -1) -+ { -+ close (testfd); -+ return; -+ } -+ -+ char *sdcard = getenv ("EXTERNAL_STORAGE"); -+ -+ if (sdcard == NULL) -+ strcpy (tmp_filename, "/sdcard/gnat-XXXXXX"); -+ else -+ sprintf (tmp_filename, "%s/gnat-XXXXXX", sdcard); -+ -+ testfd = mkstemp (tmp_filename); -+ if (testfd != -1) -+ { -+ close (testfd); -+ return; -+ } -+ -+ tmpnam (tmp_filename); -+ - #elif defined (linux) || defined (__FreeBSD__) || defined (__NetBSD__) \ -+ || defined (__DragonFly__) \ - || defined (__OpenBSD__) || defined(__GLIBC__) - #define MAX_SAFE_PATH 1000 - char *tmpdir = getenv ("TMPDIR"); -@@ -1617,9 +1665,12 @@ - /* Set access time to now in local time. */ - t = time ((time_t) 0); - utimbuf.actime = mktime (localtime (&t)); -- -+#if defined(__NetBSD__) && (__NetBSD__ > 5) -+ __utime50 (name, &utimbuf); -+#else - utime (name, &utimbuf); - #endif -+#endif - } - - /* Get the list of installed standard libraries from the -@@ -2384,6 +2435,8 @@ - int cores = 1; - - #if defined (linux) || defined (sun) || defined (AIX) \ -+ || defined (__FreeBSD__) || defined (__DragonFly__) \ -+ || defined (__OpenBSD__) || defined (__NetBSD__) \ - || (defined (__alpha__) && defined (_osf_)) || defined (__APPLE__) - cores = (int) sysconf (_SC_NPROCESSORS_ONLN); - -@@ -3421,25 +3474,214 @@ - } - #endif - --#if defined (IS_CROSS) \ -- || (! ((defined (sparc) || defined (i386)) && defined (sun) \ -- && defined (__SVR4)) \ -- && ! (defined (linux) && (defined (i386) || defined (__x86_64__))) \ -- && ! (defined (linux) && defined (__ia64__)) \ -- && ! (defined (linux) && defined (powerpc)) \ -- && ! defined (__FreeBSD__) \ -- && ! defined (__Lynx__) \ -- && ! defined (__hpux__) \ -- && ! defined (__APPLE__) \ -- && ! defined (_AIX) \ -- && ! (defined (__alpha__) && defined (__osf__)) \ -- && ! defined (VMS) \ -- && ! defined (__MINGW32__) \ -- && ! (defined (__mips) && defined (__sgi))) -- --/* Dummy function to satisfy g-trasym.o. See the preprocessor conditional -- just above for a list of native platforms that provide a non-dummy -- version of this procedure in libaddr2line.a. */ -+/* run-time symbolic traceback support */ -+#if defined (__DragonFly__) \ -+ || defined (__FreeBSD__) \ -+ || defined (__OpenBSD__) \ -+ || defined (__NetBSD__) \ -+ || (defined (__sun__) && defined (__i386__) && defined (__SVR4)) -+ -+/* The above platforms use the external program /usr/bin/addr2line */ -+#define EXTERNAL_SYMTRACE -+ -+#elif defined (VMS) \ -+ || defined (_AIX) \ -+ || defined (__Lynx__) \ -+ || defined (__hpux__) \ -+ || defined (__APPLE__) \ -+ || defined (__MINGW32__) \ -+ || (defined (__mips) && defined (__sgi)) \ -+ || (defined (__alpha__) && defined (__osf__)) \ -+ || (defined (linux) && defined (i386)) \ -+ || (defined (linux) && defined (powerpc)) \ -+ || (defined (linux) && defined (__ia64__)) \ -+ || (defined (linux) && defined (__x86_64__)) \ -+ || (defined (__SVR4) && defined (__sun__) && defined (sparc)) -+ -+/* The above platforms use the system library libaddr2line.a */ -+#define NATIVE_SYMTRACE -+#endif -+ -+#if defined (EXTERNAL_SYMTRACE) && !defined (IS_CROSS) -+ -+/* -+ Copyright (C) 1999 by Juergen Pfeifer <juergen.pfeifer@gmx.net> -+ Ada for Linux Team (ALT) -+ Heavily modified by John Marino <http://www.dragonlace.net> -+ -+ Permission is hereby granted, free of charge, to any person obtaining a -+ copy of this software and associated documentation files (the -+ "Software"), to deal in the Software without restriction, including -+ without limitation the rights to use, copy, modify, merge, publish, -+ distribute, distribute with modifications, sublicense, and/or sell -+ copies of the Software, and to permit persons to whom the Software is -+ furnished to do so, subject to the following conditions: -+ -+ The above copyright notice and this permission notice shall be included -+ in all copies or substantial portions of the Software. -+ -+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -+ IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -+ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR -+ THE USE OR OTHER DEALINGS IN THE SOFTWARE. -+ -+ Except as contained in this notice, the name(s) of the above copyright -+ holders shall not be used in advertising or otherwise to promote the -+ sale, use or other dealings in this Software without prior written -+ authorization. -+*/ -+ -+#include <sys/types.h> -+#include <stdlib.h> -+#include <unistd.h> -+#include <string.h> -+#include <signal.h> -+ -+#define CLOSE_SENDPIPE close(sendpipe[0]); close(sendpipe[1]) -+#define CLOSE_READPIPE close(readpipe[0]); close(readpipe[1]) -+#define DUP2CLOSE(oldfd, newfd) dup2(oldfd, newfd); close(oldfd); -+#define RESTSIG sigaction(SIGPIPE,&oact,NULL) -+ -+#define MAX_LINE 1024 -+#define PARENT_READ readpipe[0] -+#define CHILD_WRITE readpipe[1] -+#define CHILD_READ sendpipe[0] -+#define PARENT_WRITE sendpipe[1] -+ -+#if defined (__sun__) -+#define ADDR2LINE_PROG "/usr/gnu/bin/addr2line" -+#else -+#define ADDR2LINE_PROG "/usr/bin/addr2line" -+#endif -+ -+void -+convert_addresses (const char *file_name, -+ void *addrs, -+ int n_addr, -+ void *buf, -+ int *len) -+{ -+ int max_len = *len; -+ pid_t childpid; -+ -+ struct sigaction act, oact; -+ -+ int sendpipe[2] = {-1,-1}, /* parent -> child */ -+ readpipe[2] = {-1,-1}; /* parent <- child */ -+ -+ *len = 0; -+ act.sa_handler = SIG_IGN; -+ sigemptyset(&act.sa_mask); -+ act.sa_flags = 0; -+ if (sigaction(SIGPIPE,&act,&oact) < 0) -+ return; -+ -+ if (pipe(sendpipe) < 0) { RESTSIG; return; } -+ if (pipe(readpipe) < 0) { CLOSE_SENDPIPE; RESTSIG; return; } -+ if ((childpid = fork()) < 0) { -+ CLOSE_READPIPE; -+ CLOSE_SENDPIPE; -+ RESTSIG; -+ return; -+ } -+ -+ if (childpid == 0) { /* child process */ -+ close(PARENT_WRITE); -+ close(PARENT_READ); -+ if ((CHILD_READ != STDIN_FILENO) && (CHILD_WRITE != STDOUT_FILENO)) { -+ if ((CHILD_READ == STDOUT_FILENO) && (CHILD_WRITE == STDIN_FILENO)) { -+ const int temp_fd = dup(CHILD_WRITE); -+ close (CHILD_WRITE); -+ DUP2CLOSE (CHILD_READ, STDIN_FILENO); -+ DUP2CLOSE (temp_fd, STDOUT_FILENO); -+ } -+ else if ((CHILD_READ == STDIN_FILENO) && (CHILD_WRITE > 1)) { -+ DUP2CLOSE (CHILD_WRITE, STDOUT_FILENO); -+ } -+ else if ((CHILD_READ > 1) && (CHILD_WRITE == STDOUT_FILENO)) { -+ DUP2CLOSE (CHILD_READ, STDIN_FILENO); -+ } -+ else if ((CHILD_READ > 1) && (CHILD_WRITE == STDIN_FILENO)) { -+ DUP2CLOSE (CHILD_WRITE, STDOUT_FILENO); -+ DUP2CLOSE (CHILD_READ, STDIN_FILENO); -+ } -+ else { -+ /* CHILD_READ >= 1 and CHILD_WRITE > 1 */ -+ DUP2CLOSE (CHILD_READ, STDIN_FILENO); -+ DUP2CLOSE (CHILD_WRITE, STDOUT_FILENO); -+ } -+ } -+ /* As pointed out by Florian Weimer to JP, it is a security threat to call -+ the script with a user defined environment and using the path. That -+ would be Trojans pleasure. Therefore the absolute path to addr2line -+ and an empty environment is used. That should be safe. -+ */ -+ char *const argv[] = { "addr2line", -+ "-e", file_name, -+ "--demangle=gnat", -+ "--functions", -+ "--basenames", -+ NULL }; -+ char *const envp[] = { NULL }; -+ if (execve(ADDR2LINE_PROG, argv, envp) < 0) { -+ close (CHILD_WRITE); -+ close (CHILD_READ); -+ RESTSIG; -+ exit (1); -+ } -+ } -+ -+ /* Below this line is parent process */ -+ int i, n; -+ char hex[16]; -+ char line[MAX_LINE + 1]; -+ char *p; -+ char *s = buf; -+ long *trace_address = addrs; -+ -+ close(CHILD_WRITE); -+ close(CHILD_READ); -+ -+ for(i=0; i < n_addr; i++) { -+ snprintf(hex,sizeof(hex),"%#lx\n",*trace_address); -+ write(PARENT_WRITE,hex,strlen(hex)); -+ n = read(PARENT_READ,line,MAX_LINE); -+ if (n<=0) -+ break; -+ -+ line[n]=0; -+ /* We have approx. 16 additional chars for "%#lx in " clause. -+ We use this info to prevent a buffer overrun. */ -+ if (n + 16 + (*len) > max_len) -+ break; -+ -+ p = strchr(line,'\n'); -+ if (p) { -+ if (*(p+1)) { -+ *p = 0; -+ *len += snprintf(s, (max_len - (*len)), "%#lx in %s at %s", -+ *trace_address, line, p+1); -+ } -+ else { -+ *len += snprintf(s, (max_len - (*len)), "%#lx at %s", -+ *trace_address, line); -+ } -+ s = buf + (*len); -+ } -+ trace_address += 1; -+ } -+ close (PARENT_WRITE); -+ close (PARENT_READ); -+ RESTSIG; -+} -+ -+#elif defined (IS_CROSS) || !defined (NATIVE_SYMTRACE) -+ -+/* run-time symbolic traceback support -+ Dummy function to satisfy g-trasym.o. */ - - void - convert_addresses (const char *file_name ATTRIBUTE_UNUSED, -@@ -3686,3 +3928,110 @@ - return (void *) syscall (__NR_gettid); - } - #endif -+ -+ -+ -+ -+#ifdef MARINO_DISABLED_THIS -+/* JRM 31 OCT 2010: For some reason, gnatmake wouldn't function correct when -+ strcpy or sprintf & friends were replaced. I had to back out the patches. -+ I'll leave the BSD routines here in case we ever want to try again. */ -+ -+ -+/* -+ * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com> -+ * -+ * Permission to use, copy, modify, and distribute this software for any -+ * purpose with or without fee is hereby granted, provided that the above -+ * copyright notice and this permission notice appear in all copies. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -+ */ -+ -+/* -+ * original function name: strlcpy -+ * Copy src to string dst of size siz. At most siz-1 characters -+ * will be copied. Always NUL terminates (unless siz == 0). -+ * Returns strlen(src); if retval >= siz, truncation occurred. -+ * -+ * OpenBSD: strlcpy.c,v 1.11 2006/05/05 15:27:38 millert Exp -+ * FreeBSD: src/lib/libc/string/strlcpy.c,v 1.10 2008/10/19 delphij Exp -+ * DragonFly: src/lib/libc/string/strlcpy.c,v 1.4 2005/09/18 asmodai Exp -+ */ -+ -+size_t -+bsd_strlcpy(char *dst, const char *src, size_t siz) -+{ -+ char *d = dst; -+ const char *s = src; -+ size_t n = siz; -+ -+ /* Copy as many bytes as will fit */ -+ if (n != 0) { -+ while (--n != 0) { -+ if ((*d++ = *s++) == '\0') -+ break; -+ } -+ } -+ -+ /* Not enough room in dst, add NUL and traverse rest of src */ -+ if (n == 0) { -+ if (siz != 0) -+ *d = '\0'; /* NUL-terminate dst */ -+ while (*s++) -+ ; -+ } -+ -+ return(s - src - 1); /* count does not include NUL */ -+} -+ -+ -+ -+/* -+ * Original function name: strlcat -+ * Appends src to string dst of size siz (unlike strncat, siz is the -+ * full size of dst, not space left). At most siz-1 characters -+ * will be copied. Always NUL terminates (unless siz <= strlen(dst)). -+ * Returns strlen(src) + MIN(siz, strlen(initial dst)). -+ * If retval >= siz, truncation occurred. -+ * -+ * OpenBSD: strlcat.c,v 1.13 2005/08/08 08:05:37 espie Exp -+ * FreeBSD: src/lib/libc/string/strlcat.c,v 1.11 2009/01/12 delphij Exp -+ * DragonFly: src/lib/libc/string/strlcat.c,v 1.4 2004/12/18 asmodai Exp -+ */ -+ -+size_t -+bsd_strlcat(char *dst, const char *src, size_t siz) -+{ -+ char *d = dst; -+ const char *s = src; -+ size_t n = siz; -+ size_t dlen; -+ -+ /* Find the end of dst and adjust bytes left but don't go past end */ -+ while (n-- != 0 && *d != '\0') -+ d++; -+ dlen = d - dst; -+ n = siz - dlen; -+ -+ if (n == 0) -+ return(dlen + strlen(s)); -+ while (*s != '\0') { -+ if (n != 1) { -+ *d++ = *s; -+ n--; -+ } -+ s++; -+ } -+ *d = '\0'; -+ -+ return(dlen + (s - src)); /* count does not include NUL */ -+} -+#endif -+ ---- gcc/ada/cio.c.orig -+++ gcc/ada/cio.c -@@ -27,6 +27,7 @@ - * GNAT was originally developed by the GNAT team at New York University. * - * Extensive contributions were provided by Ada Core Technologies Inc. * - * * -+ * Copyright (C) 2011 John Marino <www.dragonlace.net> * - ****************************************************************************/ - - #ifdef IN_RTS -@@ -42,7 +43,8 @@ - - /* Don't use macros on GNU/Linux since they cause incompatible changes between - glibc 2.0 and 2.1 */ --#ifdef linux -+/* Android is The exception because it uses the BIONIC library */ -+#if defined(linux) && !defined(__ANDROID__) - #undef putchar - #undef getchar - #undef fputc ---- gcc/ada/cstreams.c.orig -+++ gcc/ada/cstreams.c -@@ -27,6 +27,7 @@ - * GNAT was originally developed by the GNAT team at New York University. * - * Extensive contributions were provided by Ada Core Technologies Inc. * - * * -+ * Copyright (C) 2010 John Marino <draco@marino.st> * - ****************************************************************************/ - - /* Routines required for implementing routines in Interfaces.C.Streams */ -@@ -50,9 +51,10 @@ - #include <unixlib.h> - #endif - --#ifdef linux -+#if defined(linux) && !defined(__ANDROID__) - /* Don't use macros on GNU/Linux since they cause incompatible changes between - glibc 2.0 and 2.1 */ -+/* Android is The exception because it uses the BIONIC library */ - - #ifdef stderr - # undef stderr -@@ -173,7 +175,9 @@ - *p = '\\'; - } - --#elif defined (sgi) || defined (__FreeBSD__) -+#elif defined (sgi) || defined (__FreeBSD__) \ -+ || defined (__DragonFly__) \ -+ || defined (__OpenBSD__) - - /* Use realpath function which resolves links and references to . and .. - on those Unix systems that support it. Note that GNU/Linux provides it but ---- gcc/ada/env.c.orig -+++ gcc/ada/env.c -@@ -27,6 +27,7 @@ - * GNAT was originally developed by the GNAT team at New York University. * - * Extensive contributions were provided by Ada Core Technologies Inc. * - * * -+ * Copyright (C) 2010 John Marino <draco@marino.st> * - ****************************************************************************/ - - /* Tru64 UNIX V4.0F <stdlib.h> declares unsetenv() only if AES_SOURCE (which -@@ -172,7 +173,8 @@ - LIB$SIGNAL (status); - } - --#elif (defined (__vxworks) && defined (__RTP__)) || defined (__APPLE__) -+#elif (defined (__vxworks) && defined (__RTP__)) || defined (__APPLE__) \ -+ || defined (__OpenBSD__) - setenv (name, value, 1); - - #else -@@ -299,6 +301,7 @@ - } - #elif defined (__MINGW32__) || defined (__FreeBSD__) || defined (__APPLE__) \ - || (defined (__vxworks) && defined (__RTP__)) || defined (__CYGWIN__) \ -+ || defined (__DragonFly__) \ - || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__rtems__) - /* On Windows, FreeBSD and MacOS there is no function to clean all the - environment but there is a "clean" way to unset a variable. So go ---- gcc/ada/errno.c.orig -+++ gcc/ada/errno.c -@@ -27,6 +27,7 @@ - * GNAT was originally developed by the GNAT team at New York University. * - * Extensive contributions were provided by Ada Core Technologies Inc. * - * * -+ * Copyright (C) 2011 John Marino <www.dragonlace.net> * - ****************************************************************************/ - - /* This file provides access to the C-language errno to the Ada interface -@@ -39,6 +40,7 @@ - #define _REENTRANT - #define _THREAD_SAFE - #define _SGI_MP_SOURCE -+#define GNAT_SET_ERRNO - - #ifdef MaRTE - -@@ -52,6 +54,17 @@ - - #endif - -+#ifdef __ANDROID__ -+ -+/* The ANDROID errno.h file also defines __set_errno as an external variable -+ for use with syscalls. It should not be referenced directly, but we are -+ going to do it anyway because the alternative solution is to rename all -+ uses of __set_errno in GNAT. */ -+ -+#undef GNAT_SET_ERRNO -+#endif -+ -+ - #include <errno.h> - int - __get_errno(void) -@@ -59,8 +72,10 @@ - return errno; - } - -+#ifdef GNAT_SET_ERRNO - void - __set_errno(int err) - { - errno = err; - } -+#endif ---- gcc/ada/g-comlin.adb.orig -+++ gcc/ada/g-comlin.adb -@@ -27,6 +27,7 @@ - -- GNAT was originally developed by the GNAT team at New York University. -- - -- Extensive contributions were provided by Ada Core Technologies Inc. -- - -- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- - ------------------------------------------------------------------------------ - - with Ada.Characters.Handling; use Ada.Characters.Handling; -@@ -512,6 +513,7 @@ - begin - Index_In_Switches := 0; - Switch_Length := 0; -+ Param := Parameter_None; - - -- Remove all leading spaces first to make sure that Index points - -- at the start of the first switch. ---- gcc/ada/g-expect.adb.orig -+++ gcc/ada/g-expect.adb -@@ -29,6 +29,7 @@ - -- GNAT was originally developed by the GNAT team at New York University. -- - -- Extensive contributions were provided by Ada Core Technologies Inc. -- - -- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- - ------------------------------------------------------------------------------ - - with System; use System; -@@ -1333,15 +1334,21 @@ - - -- The following commands are not executed on Unix systems, and are only - -- required for Windows systems. We are now in the parent process. -+ -- Although the if-statement is redundant, it's here so the compiler -+ -- doesn't complain about uninitialized variables. - -- -- Restore the old descriptors -+ if No_Fork_On_Target then -+ -+ -- Restore the old descriptors -+ -+ Dup2 (Input, GNAT.OS_Lib.Standin); -+ Dup2 (Output, GNAT.OS_Lib.Standout); -+ Dup2 (Error, GNAT.OS_Lib.Standerr); -+ Close (Input); -+ Close (Output); -+ Close (Error); -+ end if; - -- Dup2 (Input, GNAT.OS_Lib.Standin); -- Dup2 (Output, GNAT.OS_Lib.Standout); -- Dup2 (Error, GNAT.OS_Lib.Standerr); -- Close (Input); -- Close (Output); -- Close (Error); - end Set_Up_Child_Communications; - - --------------------------- ---- /dev/null -+++ gcc/ada/g-socthi-bsd.adb -@@ -0,0 +1,379 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT COMPILER COMPONENTS -- -+-- -- -+-- G N A T . S O C K E T S . T H I N -- -+-- -- -+-- B o d y -- -+-- -- -+-- Copyright (C) 2001-2009, AdaCore -- -+-- -- -+-- GNAT is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 2, or (at your option) any later ver- -- -+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- -+-- OUT 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 distributed with GNAT; see file COPYING. If not, write -- -+-- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, -- -+-- Boston, MA 02110-1301, USA. -- -+-- -- -+-- As a special exception, if other files instantiate generics from this -- -+-- unit, or you link this unit with other files to produce an executable, -- -+-- this unit does not by itself cause the resulting executable to be -- -+-- covered by the GNU General Public License. This exception does not -- -+-- however invalidate any other reasons why the executable file might be -- -+-- covered by the GNU Public License. -- -+-- -- -+-- GNAT was originally developed by the GNAT team at New York University. -- -+-- Extensive contributions were provided by Ada Core Technologies Inc. -- -+-- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- -+------------------------------------------------------------------------------ -+ -+-- This package provides a target dependent thin interface to the sockets -+-- layer for use by the GNAT.Sockets package (g-socket.ads). This package -+-- should not be directly with'ed by an applications program. -+ -+-- This is the *BSD version which uses fcntl rather than ioctl -+-- The constant SCON.Thread_Blocking_IO is always true (for all platforms, not -+-- just *BSD), so this binding is significantly simpler than the standard -+-- one it replaces. -+ -+with GNAT.OS_Lib; use GNAT.OS_Lib; -+ -+with Interfaces.C; use Interfaces.C; -+ -+package body GNAT.Sockets.Thin is -+ -+ Unknown_System_Error : constant C.Strings.chars_ptr := -+ C.Strings.New_String ("Unknown system error"); -+ -+ function Syscall_Accept -+ (S : C.int; -+ Addr : System.Address; -+ Addrlen : not null access C.int) return C.int; -+ pragma Import (C, Syscall_Accept, "accept"); -+ -- The accept() function accepts a connection on a socket. An incoming -+ -- connection is acknowledged and associated with an immediately created -+ -- socket. The original socket is returned to the listening state. -+ -+ function Syscall_Connect -+ (S : C.int; -+ Name : System.Address; -+ Namelen : C.int) return C.int; -+ pragma Import (C, Syscall_Connect, "connect"); -+ -- The connect() system call initiates a connection on a socket. If the -+ -- parameter S is of type SOCK_DGRAM then connect() permanently specifies -+ -- the peer to which datagrams are to be sent. If S is type SOCK_STREAM -+ -- then connect() attempts to make a connection with another socket, which -+ -- is identified by the parameter Name. -+ -+ function Syscall_Recv -+ (S : C.int; -+ Msg : System.Address; -+ Len : C.int; -+ Flags : C.int) return C.int; -+ pragma Import (C, Syscall_Recv, "recv"); -+ -- The recv() function receives a message from a socket. The call can be -+ -- used on a connection mode socket or a bound, connectionless socket. If -+ -- no messages are available at the socket, the recv() call waits for a -+ -- message to arrive unless the socket is non-blocking. If a socket is -+ -- non-blocking, the call returns a -1 and ERRNO is set to EWOULDBLOCK. -+ -+ function Syscall_Recvfrom -+ (S : C.int; -+ Msg : System.Address; -+ Len : C.int; -+ Flags : C.int; -+ From : System.Address; -+ Fromlen : not null access C.int) return C.int; -+ pragma Import (C, Syscall_Recvfrom, "recvfrom"); -+ -- The recvfrom() system call receives a message from a socket and captures -+ -- the address from which the data was sent. It can be used to receive -+ -- data on an unconnected socket as well. If no messages are available, -+ -- the call waits for a message to arrive on blocking sockets. For -+ -- non-blocking sockets without messages, -1 is returned and ERRNO is set -+ -- to EAGAIN or EWOULDBLOCK. -+ -+ function Syscall_Recvmsg -+ (S : C.int; -+ Msg : System.Address; -+ Flags : C.int) return System.CRTL.ssize_t; -+ pragma Import (C, Syscall_Recvmsg, "recvmsg"); -+ -- The recvmsg call receives a message from a socket, and can be used to -+ -- receive data on an unconnected socket as well. If no messages are -+ -- available, the call waits for a message to arrive on blocking sockets. -+ -- For non-blocking sockets without messages, -1 is returned and ERRNO is -+ -- set to EAGAIN or EWOULDBLOCK. -+ -+ function Syscall_Sendmsg -+ (S : C.int; -+ Msg : System.Address; -+ Flags : C.int) return System.CRTL.ssize_t; -+ pragma Import (C, Syscall_Sendmsg, "sendmsg"); -+ -- The sendmsg() function sends a message to a socket, and can be used with -+ -- unconnected sockets as well (the msg is ignored in this case). The -+ -- function returns the number of bytes sent when successful, otherwise it -+ -- returns -1 and ERRNO is set (many possible values). -+ -+ function Syscall_Sendto -+ (S : C.int; -+ Msg : System.Address; -+ Len : C.int; -+ Flags : C.int; -+ To : System.Address; -+ Tolen : C.int) return C.int; -+ pragma Import (C, Syscall_Sendto, "sendto"); -+ -- The sendto() function only works for connected sockets and it initiates -+ -- the transmission of a message. A successful call returns the numbers of -+ -- bytes sent, and a failure returns a -1 and ERRNO is set. -+ -+ function Syscall_Socket -+ (Domain : C.int; -+ Typ : C.int; -+ Protocol : C.int) return C.int; -+ pragma Import (C, Syscall_Socket, "socket"); -+ -- The socket() function is used to create an unbound socket and returns a -+ -- file descriptor that can be used with other socket functions. Upon -+ -- failure, a -1 is returned and ERRNO is set. -+ -+ procedure Disable_SIGPIPE (S : C.int); -+ pragma Import (C, Disable_SIGPIPE, "__gnat_disable_sigpipe"); -+ -+ procedure Disable_All_SIGPIPEs; -+ pragma Import (C, Disable_All_SIGPIPEs, "__gnat_disable_all_sigpipes"); -+ -- Sets the process to ignore all SIGPIPE signals on platforms that -+ -- don't support Disable_SIGPIPE for particular streams. -+ -+ function C_Fcntl -+ (Fd : C.int; -+ Cmd : C.int; -+ Val : C.int) return C.int; -+ pragma Import (C, C_Fcntl, "fcntl"); -+ -- The ioctl of 64-bit DragonFlyBSD, OpenBSD, and NetBSD does not support -+ -- setting a socket in non-blocking mode. fcntl must be used instead. -+ -+ -------------- -+ -- C_Accept -- -+ -------------- -+ -+ function C_Accept -+ (S : C.int; -+ Addr : System.Address; -+ Addrlen : not null access C.int) return C.int -+ is -+ Res : constant C.int := Syscall_Accept (S, Addr, Addrlen); -+ begin -+ -+ Disable_SIGPIPE (Res); -+ return Res; -+ -+ end C_Accept; -+ -+ --------------- -+ -- C_Connect -- -+ --------------- -+ -+ function C_Connect -+ (S : C.int; -+ Name : System.Address; -+ Namelen : C.int) return C.int -+ is -+ begin -+ -+ return Syscall_Connect (S, Name, Namelen); -+ -+ end C_Connect; -+ -+ ------------------ -+ -- Socket_Ioctl -- -+ ------------------ -+ -+ function Socket_Ioctl -+ (S : C.int; -+ Req : C.int; -+ Arg : access C.int) return C.int -+ is -+ -- Currently all requests are of the FIONBIO type, so always calc flags -+ use Interfaces; -+ flags : constant Unsigned_32 := -+ Unsigned_32 (C_Fcntl (S, SOSC.F_GETFL, 0)); -+ nonblock : constant Unsigned_32 := Unsigned_32 (SOSC.FNDELAY); -+ enabled : constant Boolean := Arg.all = 1; -+ newval : C.int; -+ begin -+ if Req = SOSC.FIONBIO then -+ if enabled then -+ newval := C.int (flags or nonblock); -+ elsif (flags and nonblock) > 0 then -+ newval := C.int (flags - nonblock); -+ else -+ newval := C.int (flags); -+ end if; -+ return C_Fcntl (Fd => S, Cmd => SOSC.F_SETFL, Val => newval); -+ else -+ return C_Ioctl (Fd => S, Req => Req, Arg => Arg); -+ end if; -+ end Socket_Ioctl; -+ -+ ------------ -+ -- C_Recv -- -+ ------------ -+ -+ function C_Recv -+ (S : C.int; -+ Msg : System.Address; -+ Len : C.int; -+ Flags : C.int) return C.int -+ is -+ begin -+ -+ return Syscall_Recv (S, Msg, Len, Flags); -+ -+ end C_Recv; -+ -+ ---------------- -+ -- C_Recvfrom -- -+ ---------------- -+ -+ function C_Recvfrom -+ (S : C.int; -+ Msg : System.Address; -+ Len : C.int; -+ Flags : C.int; -+ From : System.Address; -+ Fromlen : not null access C.int) return C.int -+ is -+ begin -+ -+ return Syscall_Recvfrom (S, Msg, Len, Flags, From, Fromlen); -+ -+ end C_Recvfrom; -+ -+ --------------- -+ -- C_Recvmsg -- -+ --------------- -+ -+ function C_Recvmsg -+ (S : C.int; -+ Msg : System.Address; -+ Flags : C.int) return System.CRTL.ssize_t -+ is -+ begin -+ -+ return Syscall_Recvmsg (S, Msg, Flags); -+ -+ end C_Recvmsg; -+ -+ --------------- -+ -- C_Sendmsg -- -+ --------------- -+ -+ function C_Sendmsg -+ (S : C.int; -+ Msg : System.Address; -+ Flags : C.int) return System.CRTL.ssize_t -+ is -+ begin -+ -+ return Syscall_Sendmsg (S, Msg, Flags); -+ -+ end C_Sendmsg; -+ -+ -------------- -+ -- C_Sendto -- -+ -------------- -+ -+ function C_Sendto -+ (S : C.int; -+ Msg : System.Address; -+ Len : C.int; -+ Flags : C.int; -+ To : System.Address; -+ Tolen : C.int) return C.int -+ is -+ begin -+ -+ return Syscall_Sendto (S, Msg, Len, Flags, To, Tolen); -+ -+ end C_Sendto; -+ -+ -------------- -+ -- C_Socket -- -+ -------------- -+ -+ function C_Socket -+ (Domain : C.int; -+ Typ : C.int; -+ Protocol : C.int) return C.int -+ is -+ Res : constant C.int := Syscall_Socket (Domain, Typ, Protocol); -+ begin -+ -+ Disable_SIGPIPE (Res); -+ return Res; -+ -+ end C_Socket; -+ -+ -------------- -+ -- Finalize -- -+ -------------- -+ -+ procedure Finalize is -+ begin -+ null; -+ end Finalize; -+ -+ ------------------------- -+ -- Host_Error_Messages -- -+ ------------------------- -+ -+ package body Host_Error_Messages is separate; -+ -+ ---------------- -+ -- Initialize -- -+ ---------------- -+ -+ procedure Initialize is -+ begin -+ Disable_All_SIGPIPEs; -+ end Initialize; -+ -+ -------------------- -+ -- Signalling_Fds -- -+ -------------------- -+ -+ package body Signalling_Fds is -+ -+ -- In this default implementation, we use a C version of these -+ -- subprograms provided by socket.c. -+ -+ function C_Create (Fds : not null access Fd_Pair) return C.int; -+ function C_Read (Rsig : C.int) return C.int; -+ function C_Write (Wsig : C.int) return C.int; -+ procedure C_Close (Sig : C.int); -+ -+ pragma Import (C, C_Create, "__gnat_create_signalling_fds"); -+ pragma Import (C, C_Read, "__gnat_read_signalling_fd"); -+ pragma Import (C, C_Write, "__gnat_write_signalling_fd"); -+ pragma Import (C, C_Close, "__gnat_close_signalling_fd"); -+ -+ function Create -+ (Fds : not null access Fd_Pair) return C.int renames C_Create; -+ function Read (Rsig : C.int) return C.int renames C_Read; -+ function Write (Wsig : C.int) return C.int renames C_Write; -+ procedure Close (Sig : C.int) renames C_Close; -+ -+ end Signalling_Fds; -+ -+ -------------------------- -+ -- Socket_Error_Message -- -+ -------------------------- -+ -+ function Socket_Error_Message -+ (Errno : Integer) return C.Strings.chars_ptr -+ is separate; -+ -+end GNAT.Sockets.Thin; ---- /dev/null -+++ gcc/ada/g-socthi-netbsd.adb -@@ -0,0 +1,381 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT COMPILER COMPONENTS -- -+-- -- -+-- G N A T . S O C K E T S . T H I N -- -+-- -- -+-- B o d y -- -+-- -- -+-- Copyright (C) 2001-2009, AdaCore -- -+-- -- -+-- GNAT is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 2, or (at your option) any later ver- -- -+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- -+-- OUT 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 distributed with GNAT; see file COPYING. If not, write -- -+-- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, -- -+-- Boston, MA 02110-1301, USA. -- -+-- -- -+-- As a special exception, if other files instantiate generics from this -- -+-- unit, or you link this unit with other files to produce an executable, -- -+-- this unit does not by itself cause the resulting executable to be -- -+-- covered by the GNU General Public License. This exception does not -- -+-- however invalidate any other reasons why the executable file might be -- -+-- covered by the GNU Public License. -- -+-- -- -+-- GNAT was originally developed by the GNAT team at New York University. -- -+-- Extensive contributions were provided by Ada Core Technologies Inc. -- -+-- -- -+-- Copyright (C) 2010, 2011 John Marino <www.dragonlace.net> -- -+------------------------------------------------------------------------------ -+ -+-- This package provides a target dependent thin interface to the sockets -+-- layer for use by the GNAT.Sockets package (g-socket.ads). This package -+-- should not be directly with'ed by an applications program. -+ -+-- This is the NetBSD version which uses fcntl rather than ioctl -+-- The constant SCON.Thread_Blocking_IO is always true (for all platforms, not -+-- just *BSD), so this binding is significantly simpler than the standard -+-- one it replaces. -+-- NetBSD uses binary compatibility functions that are forcing the use of -+-- their own files rather than sharing the *BSD versions. -+ -+with GNAT.OS_Lib; use GNAT.OS_Lib; -+ -+with Interfaces.C; use Interfaces.C; -+ -+package body GNAT.Sockets.Thin is -+ -+ Unknown_System_Error : constant C.Strings.chars_ptr := -+ C.Strings.New_String ("Unknown system error"); -+ -+ function Syscall_Accept -+ (S : C.int; -+ Addr : System.Address; -+ Addrlen : not null access C.int) return C.int; -+ pragma Import (C, Syscall_Accept, "accept"); -+ -- The accept() function accepts a connection on a socket. An incoming -+ -- connection is acknowledged and associated with an immediately created -+ -- socket. The original socket is returned to the listening state. -+ -+ function Syscall_Connect -+ (S : C.int; -+ Name : System.Address; -+ Namelen : C.int) return C.int; -+ pragma Import (C, Syscall_Connect, "connect"); -+ -- The connect() system call initiates a connection on a socket. If the -+ -- parameter S is of type SOCK_DGRAM then connect() permanently specifies -+ -- the peer to which datagrams are to be sent. If S is type SOCK_STREAM -+ -- then connect() attempts to make a connection with another socket, which -+ -- is identified by the parameter Name. -+ -+ function Syscall_Recv -+ (S : C.int; -+ Msg : System.Address; -+ Len : C.int; -+ Flags : C.int) return C.int; -+ pragma Import (C, Syscall_Recv, "recv"); -+ -- The recv() function receives a message from a socket. The call can be -+ -- used on a connection mode socket or a bound, connectionless socket. If -+ -- no messages are available at the socket, the recv() call waits for a -+ -- message to arrive unless the socket is non-blocking. If a socket is -+ -- non-blocking, the call returns a -1 and ERRNO is set to EWOULDBLOCK. -+ -+ function Syscall_Recvfrom -+ (S : C.int; -+ Msg : System.Address; -+ Len : C.int; -+ Flags : C.int; -+ From : System.Address; -+ Fromlen : not null access C.int) return C.int; -+ pragma Import (C, Syscall_Recvfrom, "recvfrom"); -+ -- The recvfrom() system call receives a message from a socket and captures -+ -- the address from which the data was sent. It can be used to receive -+ -- data on an unconnected socket as well. If no messages are available, -+ -- the call waits for a message to arrive on blocking sockets. For -+ -- non-blocking sockets without messages, -1 is returned and ERRNO is set -+ -- to EAGAIN or EWOULDBLOCK. -+ -+ function Syscall_Recvmsg -+ (S : C.int; -+ Msg : System.Address; -+ Flags : C.int) return System.CRTL.ssize_t; -+ pragma Import (C, Syscall_Recvmsg, "recvmsg"); -+ -- The recvmsg call receives a message from a socket, and can be used to -+ -- receive data on an unconnected socket as well. If no messages are -+ -- available, the call waits for a message to arrive on blocking sockets. -+ -- For non-blocking sockets without messages, -1 is returned and ERRNO is -+ -- set to EAGAIN or EWOULDBLOCK. -+ -+ function Syscall_Sendmsg -+ (S : C.int; -+ Msg : System.Address; -+ Flags : C.int) return System.CRTL.ssize_t; -+ pragma Import (C, Syscall_Sendmsg, "sendmsg"); -+ -- The sendmsg() function sends a message to a socket, and can be used with -+ -- unconnected sockets as well (the msg is ignored in this case). The -+ -- function returns the number of bytes sent when successful, otherwise it -+ -- returns -1 and ERRNO is set (many possible values). -+ -+ function Syscall_Sendto -+ (S : C.int; -+ Msg : System.Address; -+ Len : C.int; -+ Flags : C.int; -+ To : System.Address; -+ Tolen : C.int) return C.int; -+ pragma Import (C, Syscall_Sendto, "sendto"); -+ -- The sendto() function only works for connected sockets and it initiates -+ -- the transmission of a message. A successful call returns the numbers of -+ -- bytes sent, and a failure returns a -1 and ERRNO is set. -+ -+ function Syscall_Socket -+ (Domain : C.int; -+ Typ : C.int; -+ Protocol : C.int) return C.int; -+ pragma Import (C, Syscall_Socket, "__socket30"); -+ -- The socket() function is used to create an unbound socket and returns a -+ -- file descriptor that can be used with other socket functions. Upon -+ -- failure, a -1 is returned and ERRNO is set. -+ -+ procedure Disable_SIGPIPE (S : C.int); -+ pragma Import (C, Disable_SIGPIPE, "__gnat_disable_sigpipe"); -+ -+ procedure Disable_All_SIGPIPEs; -+ pragma Import (C, Disable_All_SIGPIPEs, "__gnat_disable_all_sigpipes"); -+ -- Sets the process to ignore all SIGPIPE signals on platforms that -+ -- don't support Disable_SIGPIPE for particular streams. -+ -+ function C_Fcntl -+ (Fd : C.int; -+ Cmd : C.int; -+ Val : C.int) return C.int; -+ pragma Import (C, C_Fcntl, "fcntl"); -+ -- The ioctl of 64-bit DragonFlyBSD, OpenBSD, and NetBSD does not support -+ -- setting a socket in non-blocking mode. fcntl must be used instead. -+ -+ -------------- -+ -- C_Accept -- -+ -------------- -+ -+ function C_Accept -+ (S : C.int; -+ Addr : System.Address; -+ Addrlen : not null access C.int) return C.int -+ is -+ Res : constant C.int := Syscall_Accept (S, Addr, Addrlen); -+ begin -+ -+ Disable_SIGPIPE (Res); -+ return Res; -+ -+ end C_Accept; -+ -+ --------------- -+ -- C_Connect -- -+ --------------- -+ -+ function C_Connect -+ (S : C.int; -+ Name : System.Address; -+ Namelen : C.int) return C.int -+ is -+ begin -+ -+ return Syscall_Connect (S, Name, Namelen); -+ -+ end C_Connect; -+ -+ ------------------ -+ -- Socket_Ioctl -- -+ ------------------ -+ -+ function Socket_Ioctl -+ (S : C.int; -+ Req : C.int; -+ Arg : access C.int) return C.int -+ is -+ -- Currently all requests are of the FIONBIO type, so always calc flags -+ use Interfaces; -+ flags : constant Unsigned_32 := -+ Unsigned_32 (C_Fcntl (S, SOSC.F_GETFL, 0)); -+ nonblock : constant Unsigned_32 := Unsigned_32 (SOSC.FNDELAY); -+ enabled : constant Boolean := Arg.all = 1; -+ newval : C.int; -+ begin -+ if Req = SOSC.FIONBIO then -+ if enabled then -+ newval := C.int (flags or nonblock); -+ elsif (flags and nonblock) > 0 then -+ newval := C.int (flags - nonblock); -+ else -+ newval := C.int (flags); -+ end if; -+ return C_Fcntl (Fd => S, Cmd => SOSC.F_SETFL, Val => newval); -+ else -+ return C_Ioctl (Fd => S, Req => Req, Arg => Arg); -+ end if; -+ end Socket_Ioctl; -+ -+ ------------ -+ -- C_Recv -- -+ ------------ -+ -+ function C_Recv -+ (S : C.int; -+ Msg : System.Address; -+ Len : C.int; -+ Flags : C.int) return C.int -+ is -+ begin -+ -+ return Syscall_Recv (S, Msg, Len, Flags); -+ -+ end C_Recv; -+ -+ ---------------- -+ -- C_Recvfrom -- -+ ---------------- -+ -+ function C_Recvfrom -+ (S : C.int; -+ Msg : System.Address; -+ Len : C.int; -+ Flags : C.int; -+ From : System.Address; -+ Fromlen : not null access C.int) return C.int -+ is -+ begin -+ -+ return Syscall_Recvfrom (S, Msg, Len, Flags, From, Fromlen); -+ -+ end C_Recvfrom; -+ -+ --------------- -+ -- C_Recvmsg -- -+ --------------- -+ -+ function C_Recvmsg -+ (S : C.int; -+ Msg : System.Address; -+ Flags : C.int) return System.CRTL.ssize_t -+ is -+ begin -+ -+ return Syscall_Recvmsg (S, Msg, Flags); -+ -+ end C_Recvmsg; -+ -+ --------------- -+ -- C_Sendmsg -- -+ --------------- -+ -+ function C_Sendmsg -+ (S : C.int; -+ Msg : System.Address; -+ Flags : C.int) return System.CRTL.ssize_t -+ is -+ begin -+ -+ return Syscall_Sendmsg (S, Msg, Flags); -+ -+ end C_Sendmsg; -+ -+ -------------- -+ -- C_Sendto -- -+ -------------- -+ -+ function C_Sendto -+ (S : C.int; -+ Msg : System.Address; -+ Len : C.int; -+ Flags : C.int; -+ To : System.Address; -+ Tolen : C.int) return C.int -+ is -+ begin -+ -+ return Syscall_Sendto (S, Msg, Len, Flags, To, Tolen); -+ -+ end C_Sendto; -+ -+ -------------- -+ -- C_Socket -- -+ -------------- -+ -+ function C_Socket -+ (Domain : C.int; -+ Typ : C.int; -+ Protocol : C.int) return C.int -+ is -+ Res : constant C.int := Syscall_Socket (Domain, Typ, Protocol); -+ begin -+ -+ Disable_SIGPIPE (Res); -+ return Res; -+ -+ end C_Socket; -+ -+ -------------- -+ -- Finalize -- -+ -------------- -+ -+ procedure Finalize is -+ begin -+ null; -+ end Finalize; -+ -+ ------------------------- -+ -- Host_Error_Messages -- -+ ------------------------- -+ -+ package body Host_Error_Messages is separate; -+ -+ ---------------- -+ -- Initialize -- -+ ---------------- -+ -+ procedure Initialize is -+ begin -+ Disable_All_SIGPIPEs; -+ end Initialize; -+ -+ -------------------- -+ -- Signalling_Fds -- -+ -------------------- -+ -+ package body Signalling_Fds is -+ -+ -- In this default implementation, we use a C version of these -+ -- subprograms provided by socket.c. -+ -+ function C_Create (Fds : not null access Fd_Pair) return C.int; -+ function C_Read (Rsig : C.int) return C.int; -+ function C_Write (Wsig : C.int) return C.int; -+ procedure C_Close (Sig : C.int); -+ -+ pragma Import (C, C_Create, "__gnat_create_signalling_fds"); -+ pragma Import (C, C_Read, "__gnat_read_signalling_fd"); -+ pragma Import (C, C_Write, "__gnat_write_signalling_fd"); -+ pragma Import (C, C_Close, "__gnat_close_signalling_fd"); -+ -+ function Create -+ (Fds : not null access Fd_Pair) return C.int renames C_Create; -+ function Read (Rsig : C.int) return C.int renames C_Read; -+ function Write (Wsig : C.int) return C.int renames C_Write; -+ procedure Close (Sig : C.int) renames C_Close; -+ -+ end Signalling_Fds; -+ -+ -------------------------- -+ -- Socket_Error_Message -- -+ -------------------------- -+ -+ function Socket_Error_Message -+ (Errno : Integer) return C.Strings.chars_ptr -+ is separate; -+ -+end GNAT.Sockets.Thin; ---- /dev/null -+++ gcc/ada/g-socthi-netbsd6.ads -@@ -0,0 +1,263 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT COMPILER COMPONENTS -- -+-- -- -+-- G N A T . S O C K E T S . T H I N -- -+-- -- -+-- S p e c -- -+-- -- -+-- Copyright (C) 2001-2009, AdaCore -- -+-- -- -+-- GNAT is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 2, or (at your option) any later ver- -- -+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- -+-- OUT 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 distributed with GNAT; see file COPYING. If not, write -- -+-- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, -- -+-- Boston, MA 02110-1301, USA. -- -+-- -- -+-- As a special exception, if other files instantiate generics from this -- -+-- unit, or you link this unit with other files to produce an executable, -- -+-- this unit does not by itself cause the resulting executable to be -- -+-- covered by the GNU General Public License. This exception does not -- -+-- however invalidate any other reasons why the executable file might be -- -+-- covered by the GNU Public License. -- -+-- -- -+-- GNAT was originally developed by the GNAT team at New York University. -- -+-- Extensive contributions were provided by Ada Core Technologies Inc. -- -+-- -- -+-- Copyright (C) 2011 John Marino <www.dragonlace.net> -- -+------------------------------------------------------------------------------ -+ -+-- This package provides a target dependent thin interface to the sockets -+-- layer for use by the GNAT.Sockets package (g-socket.ads). This package -+-- should not be directly with'ed by an applications program. -+ -+-- This is the NetBSD 6+ version -+ -+with Interfaces.C.Strings; -+ -+with GNAT.OS_Lib; -+with GNAT.Sockets.Thin_Common; -+ -+with System; -+with System.CRTL; -+ -+package GNAT.Sockets.Thin is -+ -+ -- This package is intended for hosts implementing BSD sockets with a -+ -- standard interface. It will be used as a default for all the platforms -+ -- that do not have a specific version of this file. -+ -+ use Thin_Common; -+ -+ package C renames Interfaces.C; -+ -+ use type System.CRTL.ssize_t; -+ -+ function Socket_Errno return Integer renames GNAT.OS_Lib.Errno; -+ -- Returns last socket error number -+ -+ function Socket_Error_Message (Errno : Integer) return C.Strings.chars_ptr; -+ -- Returns the error message string for the error number Errno. If Errno is -+ -- not known, returns "Unknown system error". -+ -+ function Host_Errno return Integer; -+ pragma Import (C, Host_Errno, "__gnat_get_h_errno"); -+ -- Returns last host error number -+ -+ package Host_Error_Messages is -+ -+ function Host_Error_Message -+ (H_Errno : Integer) return C.Strings.chars_ptr; -+ -- Returns the error message string for the host error number H_Errno. -+ -- If H_Errno is not known, returns "Unknown system error". -+ -+ end Host_Error_Messages; -+ -+ -------------------------------- -+ -- Standard library functions -- -+ -------------------------------- -+ -+ function C_Accept -+ (S : C.int; -+ Addr : System.Address; -+ Addrlen : not null access C.int) return C.int; -+ -+ function C_Bind -+ (S : C.int; -+ Name : System.Address; -+ Namelen : C.int) return C.int; -+ -+ function C_Close -+ (Fd : C.int) return C.int; -+ -+ function C_Connect -+ (S : C.int; -+ Name : System.Address; -+ Namelen : C.int) return C.int; -+ -+ function C_Gethostname -+ (Name : System.Address; -+ Namelen : C.int) return C.int; -+ -+ function C_Getpeername -+ (S : C.int; -+ Name : System.Address; -+ Namelen : not null access C.int) return C.int; -+ -+ function C_Getsockname -+ (S : C.int; -+ Name : System.Address; -+ Namelen : not null access C.int) return C.int; -+ -+ function C_Getsockopt -+ (S : C.int; -+ Level : C.int; -+ Optname : C.int; -+ Optval : System.Address; -+ Optlen : not null access C.int) return C.int; -+ -+ function Socket_Ioctl -+ (S : C.int; -+ Req : C.int; -+ Arg : access C.int) return C.int; -+ -+ function C_Listen -+ (S : C.int; -+ Backlog : C.int) return C.int; -+ -+ function C_Recv -+ (S : C.int; -+ Msg : System.Address; -+ Len : C.int; -+ Flags : C.int) return C.int; -+ -+ function C_Recvfrom -+ (S : C.int; -+ Msg : System.Address; -+ Len : C.int; -+ Flags : C.int; -+ From : System.Address; -+ Fromlen : not null access C.int) return C.int; -+ -+ function C_Recvmsg -+ (S : C.int; -+ Msg : System.Address; -+ Flags : C.int) return System.CRTL.ssize_t; -+ -+ function C_Select -+ (Nfds : C.int; -+ Readfds : access Fd_Set; -+ Writefds : access Fd_Set; -+ Exceptfds : access Fd_Set; -+ Timeout : Timeval_Access) return C.int; -+ -+ function C_Sendmsg -+ (S : C.int; -+ Msg : System.Address; -+ Flags : C.int) return System.CRTL.ssize_t; -+ -+ function C_Sendto -+ (S : C.int; -+ Msg : System.Address; -+ Len : C.int; -+ Flags : C.int; -+ To : System.Address; -+ Tolen : C.int) return C.int; -+ -+ function C_Setsockopt -+ (S : C.int; -+ Level : C.int; -+ Optname : C.int; -+ Optval : System.Address; -+ Optlen : C.int) return C.int; -+ -+ function C_Shutdown -+ (S : C.int; -+ How : C.int) return C.int; -+ -+ function C_Socket -+ (Domain : C.int; -+ Typ : C.int; -+ Protocol : C.int) return C.int; -+ -+ function C_System -+ (Command : System.Address) return C.int; -+ -+ ------------------------------------------------------- -+ -- Signalling file descriptors for selector abortion -- -+ ------------------------------------------------------- -+ -+ package Signalling_Fds is -+ -+ function Create (Fds : not null access Fd_Pair) return C.int; -+ pragma Convention (C, Create); -+ -- Create a pair of connected descriptors suitable for use with C_Select -+ -- (used for signalling in Selector objects). -+ -+ function Read (Rsig : C.int) return C.int; -+ pragma Convention (C, Read); -+ -- Read one byte of data from rsig, the read end of a pair of signalling -+ -- fds created by Create_Signalling_Fds. -+ -+ function Write (Wsig : C.int) return C.int; -+ pragma Convention (C, Write); -+ -- Write one byte of data to wsig, the write end of a pair of signalling -+ -- fds created by Create_Signalling_Fds. -+ -+ procedure Close (Sig : C.int); -+ pragma Convention (C, Close); -+ -- Close one end of a pair of signalling fds (ignoring any error) -+ -+ end Signalling_Fds; -+ -+ ------------------------------------------- -+ -- Nonreentrant network databases access -- -+ ------------------------------------------- -+ -+ -- The following are used only on systems that have nonreentrant -+ -- getXXXbyYYY functions, and do NOT have corresponding getXXXbyYYY_ -+ -- functions. Currently, LynxOS is the only such system. -+ -+ function Nonreentrant_Gethostbyname -+ (Name : C.char_array) return Hostent_Access; -+ -+ function Nonreentrant_Gethostbyaddr -+ (Addr : System.Address; -+ Addr_Len : C.int; -+ Addr_Type : C.int) return Hostent_Access; -+ -+ function Nonreentrant_Getservbyname -+ (Name : C.char_array; -+ Proto : C.char_array) return Servent_Access; -+ -+ function Nonreentrant_Getservbyport -+ (Port : C.int; -+ Proto : C.char_array) return Servent_Access; -+ -+ procedure Initialize; -+ procedure Finalize; -+ -+private -+ pragma Import (C, C_Bind, "bind"); -+ pragma Import (C, C_Close, "close"); -+ pragma Import (C, C_Gethostname, "gethostname"); -+ pragma Import (C, C_Getpeername, "getpeername"); -+ pragma Import (C, C_Getsockname, "getsockname"); -+ pragma Import (C, C_Getsockopt, "getsockopt"); -+ pragma Import (C, C_Listen, "listen"); -+ pragma Import (C, C_Select, "__select50"); -+ pragma Import (C, C_Setsockopt, "setsockopt"); -+ pragma Import (C, C_Shutdown, "shutdown"); -+ pragma Import (C, C_System, "system"); -+ -+ pragma Import (C, Nonreentrant_Gethostbyname, "gethostbyname"); -+ pragma Import (C, Nonreentrant_Gethostbyaddr, "gethostbyaddr"); -+ pragma Import (C, Nonreentrant_Getservbyname, "getservbyname"); -+ pragma Import (C, Nonreentrant_Getservbyport, "getservbyport"); -+ -+end GNAT.Sockets.Thin; ---- /dev/null -+++ gcc/ada/g-trasym-bsd.adb -@@ -0,0 +1,150 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME COMPONENTS -- -+-- -- -+-- G N A T . T R A C E B A C K . S Y M B O L I C -- -+-- -- -+-- B o d y -- -+-- -- -+-- Copyright (C) 1999-2009, AdaCore -- -+-- -- -+-- GNAT is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 2, or (at your option) any later ver- -- -+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- -+-- OUT 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 distributed with GNAT; see file COPYING. If not, write -- -+-- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, -- -+-- Boston, MA 02110-1301, USA. -- -+-- -- -+-- As a special exception, if other files instantiate generics from this -- -+-- unit, or you link this unit with other files to produce an executable, -- -+-- this unit does not by itself cause the resulting executable to be -- -+-- covered by the GNU General Public License. This exception does not -- -+-- however invalidate any other reasons why the executable file might be -- -+-- covered by the GNU Public License. -- -+-- -- -+-- GNAT was originally developed by the GNAT team at New York University. -- -+-- Extensive contributions were provided by Ada Core Technologies Inc. -- -+-- -- -+------------------------------------------------------------------------------ -+ -+-- Run-time symbolic traceback support -+-- This file is based on the work by Juergen Pfiefer which is still used -+-- today to provide symbolic traceback support for gnu/kFreeBSD. -+-- Incorporated in GNAT-AUX by John Marino <http://www.dragonlace.net> -+ -+with System.Soft_Links; -+with Ada.Exceptions.Traceback; use Ada.Exceptions.Traceback; -+ -+package body GNAT.Traceback.Symbolic is -+ -+ package TSL renames System.Soft_Links; -+ -+ -- To perform the raw addresses to symbolic form translation we rely on a -+ -- libaddr2line symbolizer which examines debug info from a provided -+ -- executable file name, and an absolute path is needed to ensure the file -+ -- is always found. This is "__gnat_locate_exec_on_path (gnat_argv [0])" -+ -- for our executable file, a fairly heavy operation so we cache the -+ -- result. -+ -+ Exename : System.Address; -+ -- Pointer to the name of the executable file to be used on all -+ -- invocations of the libaddr2line symbolization service. -+ -+ Exename_Resolved : Boolean := False; -+ -- Flag to indicate whether we have performed the executable file name -+ -- resolution already. Relying on a not null Exename for this purpose -+ -- would be potentially inefficient as this is what we will get if the -+ -- resolution attempt fails. -+ -+ ------------------------ -+ -- Symbolic_Traceback -- -+ ------------------------ -+ -+ function Symbolic_Traceback (Traceback : Tracebacks_Array) return String is -+ -+ procedure convert_addresses -+ (filename : System.Address; -+ addrs : System.Address; -+ n_addrs : Integer; -+ buf : System.Address; -+ len : System.Address); -+ pragma Import (C, convert_addresses, "convert_addresses"); -+ -- This is the procedure version of the Ada-aware addr2line. It places -+ -- in BUF a string representing the symbolic translation of the N_ADDRS -+ -- raw addresses provided in ADDRS, looked up in debug information from -+ -- FILENAME. LEN points to an integer which contains the size of the -+ -- BUF buffer at input and the result length at output. -+ -- -+ -- Note that this procedure is *not* thread-safe. -+ -+ type Argv_Array is array (0 .. 0) of System.Address; -+ gnat_argv : access Argv_Array; -+ pragma Import (C, gnat_argv, "gnat_argv"); -+ -+ function locate_exec_on_path -+ (c_exename : System.Address) return System.Address; -+ pragma Import (C, locate_exec_on_path, "__gnat_locate_exec_on_path"); -+ -+ B_Size : constant Integer := 256 * Traceback'Length; -+ Len : Integer := B_Size; -+ Res : String (1 .. B_Size); -+ -+ use type System.Address; -+ -+ begin -+ -- The symbolic translation of an empty set of addresses is an empty -+ -- string. -+ -+ if Traceback'Length = 0 then -+ return ""; -+ end if; -+ -+ -- If our input set of raw addresses is not empty, resort to the -+ -- libaddr2line service to symbolize it all. -+ -+ -- Compute, cache and provide the absolute path to our executable file -+ -- name as the binary file where the relevant debug information is to be -+ -- found. If the executable file name resolution fails, we have no -+ -- sensible basis to invoke the symbolizer at all. -+ -+ -- Protect all this against concurrent accesses explicitly, as the -+ -- underlying services are potentially thread unsafe. -+ -+ TSL.Lock_Task.all; -+ -+ if not Exename_Resolved then -+ Exename := locate_exec_on_path (gnat_argv (0)); -+ Exename_Resolved := True; -+ end if; -+ -+ if Exename /= System.Null_Address then -+ Len := Res'Length; -+ convert_addresses -+ (Exename, Traceback'Address, Traceback'Length, -+ Res (1)'Address, Len'Address); -+ end if; -+ -+ TSL.Unlock_Task.all; -+ -+ -- Return what the addr2line symbolizer has produced if we have called -+ -- it (the executable name resolution succeeded), or an empty string -+ -- otherwise. -+ -+ if Exename /= System.Null_Address then -+ return Res (1 .. Len); -+ else -+ return ""; -+ end if; -+ -+ end Symbolic_Traceback; -+ -+ function Symbolic_Traceback (E : Exception_Occurrence) return String is -+ begin -+ return Symbolic_Traceback (Tracebacks (E)); -+ end Symbolic_Traceback; -+ -+end GNAT.Traceback.Symbolic; ---- gcc/ada/gnatchop.adb.orig -+++ gcc/ada/gnatchop.adb -@@ -21,6 +21,7 @@ - -- GNAT was originally developed by the GNAT team at New York University. -- - -- Extensive contributions were provided by Ada Core Technologies Inc. -- - -- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- - ------------------------------------------------------------------------------ - - with Ada.Characters.Conversions; use Ada.Characters.Conversions; -@@ -45,7 +46,7 @@ - Config_File_Name : constant String_Access := new String'("gnat.adc"); - -- The name of the file holding the GNAT configuration pragmas - -- Gcc : String_Access := new String'("gcc"); -+ Gcc : String_Access := new String'("gnatgcc"); - -- May be modified by switch --GCC= - - Gcc_Set : Boolean := False; ---- gcc/ada/gnatlink.adb.orig -+++ gcc/ada/gnatlink.adb -@@ -21,6 +21,7 @@ - -- GNAT was originally developed by the GNAT team at New York University. -- - -- Extensive contributions were provided by Ada Core Technologies Inc. -- - -- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- - ------------------------------------------------------------------------------ - - -- Gnatlink usage: please consult the gnat documentation -@@ -137,7 +138,7 @@ - -- This table collects the arguments to be passed to compile the binder - -- generated file. - -- Gcc : String_Access := Program_Name ("gcc", "gnatlink"); -+ Gcc : String_Access := Program_Name ("gnatgcc", "gnatlink"); - - Read_Mode : constant String := "r" & ASCII.NUL; - ---- gcc/ada/gnatvsn.ads.orig -+++ gcc/ada/gnatvsn.ads -@@ -27,6 +27,7 @@ - -- GNAT was originally developed by the GNAT team at New York University. -- - -- Extensive contributions were provided by Ada Core Technologies Inc. -- - -- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- - ------------------------------------------------------------------------------ - - -- This package spec holds version information for the GNAT tools. -@@ -34,7 +35,7 @@ - - package Gnatvsn is - -- Gnat_Static_Version_String : constant String := "GNU Ada"; -+ Gnat_Static_Version_String : constant String := "GNAT AUX"; - -- Static string identifying this version, that can be used as an argument - -- to e.g. pragma Ident. - ---- gcc/ada/gsocket.h.orig -+++ gcc/ada/gsocket.h -@@ -27,6 +27,7 @@ - * GNAT was originally developed by the GNAT team at New York University. * - * Extensive contributions were provided by Ada Core Technologies Inc. * - * * -+ * Copyright (C) 2010 John Marino <draco@marino.st> * - ****************************************************************************/ - - #if defined(__nucleus__) || defined(VTHREADS) -@@ -194,7 +195,14 @@ - #include <netdb.h> - #endif - -+#if defined(__ANDROID__) -+#include <sys/select.h> -+#endif -+ - #if defined (_AIX) || defined (__FreeBSD__) || defined (__hpux__) || \ -+ defined (__OpenBSD__) || \ -+ defined (__NetBSD__) || \ -+ defined (__DragonFly__) || \ - defined (__osf__) || defined (_WIN32) || defined (__APPLE__) - # define HAVE_THREAD_SAFE_GETxxxBYyyy 1 - -@@ -227,7 +235,13 @@ - # endif - #endif - --#if defined (__FreeBSD__) || defined (__vxworks) || defined(__rtems__) -+#if defined (__FreeBSD__) \ -+ || defined (__DragonFly__) \ -+ || defined (__OpenBSD__) \ -+ || defined (__NetBSD__) \ -+ || defined (__ANDROID__) \ -+ || defined (__vxworks) \ -+ || defined(__rtems__) - # define Has_Sockaddr_Len 1 - #else - # define Has_Sockaddr_Len 0 ---- gcc/ada/init.c.orig -+++ gcc/ada/init.c -@@ -27,6 +27,7 @@ - * GNAT was originally developed by the GNAT team at New York University. * - * Extensive contributions were provided by Ada Core Technologies Inc. * - * * -+ * Copyright (C) 2010, 2011 John Marino <www.dragonlace.net> * - ****************************************************************************/ - - /* This unit contains initialization circuits that are system dependent. -@@ -519,7 +520,7 @@ - /* GNU/Linux Section */ - /*********************/ - --#elif defined (linux) -+#elif defined (linux) && !defined(__ANDROID__) - - #include <signal.h> - -@@ -1724,7 +1725,7 @@ - /* FreeBSD Section */ - /*******************/ - --#elif defined (__FreeBSD__) -+#elif defined (__FreeBSD__) || defined (__DragonFly__) - - #include <signal.h> - #include <sys/ucontext.h> -@@ -1769,7 +1770,7 @@ - } - - void --__gnat_install_handler () -+__gnat_install_handler (void) - { - struct sigaction act; - -@@ -1791,6 +1792,77 @@ - } - - /*******************/ -+/* Android Section */ -+/*******************/ -+ -+#elif defined(__ANDROID__) -+ -+#include <signal.h> -+ -+static void -+__gnat_error_handler (int sig, -+ struct siginfo *si ATTRIBUTE_UNUSED, -+ void *ucontext ATTRIBUTE_UNUSED) -+{ -+ struct Exception_Data *exception; -+ const char *msg; -+ -+ switch (sig) -+ { -+ case SIGFPE: -+ exception = &constraint_error; -+ msg = "SIGFPE"; -+ break; -+ -+ case SIGILL: -+ exception = &constraint_error; -+ msg = "SIGILL"; -+ break; -+ -+ case SIGSEGV: -+ exception = &storage_error; -+ msg = "stack overflow or erroneous memory access"; -+ break; -+ -+ case SIGBUS: -+ exception = &constraint_error; -+ msg = "SIGBUS"; -+ break; -+ -+ default: -+ exception = &program_error; -+ msg = "unhandled signal"; -+ } -+ -+ Raise_From_Signal_Handler (exception, msg); -+} -+ -+void -+__gnat_install_handler (void) -+{ -+ struct sigaction act; -+ -+ act.sa_sigaction = __gnat_error_handler; -+ act.sa_flags = SA_NODEFER | SA_RESTART | SA_SIGINFO; -+ sigemptyset (&act.sa_mask); -+ -+ /* Do not install handlers if interrupt state is "System". */ -+ if (__gnat_get_interrupt_state (SIGABRT) != 's') -+ sigaction (SIGABRT, &act, NULL); -+ if (__gnat_get_interrupt_state (SIGFPE) != 's') -+ sigaction (SIGFPE, &act, NULL); -+ if (__gnat_get_interrupt_state (SIGILL) != 's') -+ sigaction (SIGILL, &act, NULL); -+ if (__gnat_get_interrupt_state (SIGBUS) != 's') -+ sigaction (SIGBUS, &act, NULL); -+ if (__gnat_get_interrupt_state (SIGSEGV) != 's') -+ sigaction (SIGSEGV, &act, NULL); -+ -+ __gnat_handler_installed = 1; -+} -+ -+ -+/*******************/ - /* VxWorks Section */ - /*******************/ - -@@ -2341,6 +2413,7 @@ - - #if defined (_WIN32) || defined (__INTERIX) \ - || defined (__Lynx__) || defined(__NetBSD__) || defined(__FreeBSD__) \ -+ || defined (__DragonFly__) \ - || defined (__OpenBSD__) - - #define HAVE_GNAT_INIT_FLOAT ---- gcc/ada/initialize.c.orig -+++ gcc/ada/initialize.c -@@ -27,6 +27,7 @@ - * GNAT was originally developed by the GNAT team at New York University. * - * Extensive contributions were provided by Ada Core Technologies Inc. * - * * -+ * Copyright (C) 2010 John Marino <draco@marino.st> * - ****************************************************************************/ - - /* This unit provides default implementation for __gnat_initialize () -@@ -255,6 +256,7 @@ - /******************************************/ - - #elif defined (__Lynx__) || defined (__FreeBSD__) || defined(__NetBSD__) \ -+ || defined (__DragonFly__) \ - || defined (__OpenBSD__) - - extern void __gnat_init_float (void); ---- gcc/ada/link.c.orig -+++ gcc/ada/link.c -@@ -27,6 +27,7 @@ - * GNAT was originally developed by the GNAT team at New York University. * - * Extensive contributions were provided by Ada Core Technologies Inc. * - * * -+ * Copyright (C) 2010, 2011 John Marino <www.dragonlace.net> * - ****************************************************************************/ - - /* This file contains host-specific parameters describing the behavior */ -@@ -187,7 +188,10 @@ - const char *__gnat_default_libgcc_subdir = "lib"; - #endif - --#elif defined (__FreeBSD__) -+#elif defined (__FreeBSD__) \ -+ || defined (__OpenBSD__) \ -+ || defined (__NetBSD__) \ -+ || defined (__DragonFly__) - const char *__gnat_object_file_option = ""; - const char *__gnat_run_path_option = "-Wl,-rpath,"; - char __gnat_shared_libgnat_default = STATIC; ---- gcc/ada/make.adb.orig -+++ gcc/ada/make.adb -@@ -21,6 +21,7 @@ - -- GNAT was originally developed by the GNAT team at New York University. -- - -- Extensive contributions were provided by Ada Core Technologies Inc. -- - -- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- - ------------------------------------------------------------------------------ - - with ALI; use ALI; -@@ -652,7 +653,7 @@ - -- Compiler, Binder & Linker Data and Subprograms -- - ---------------------------------------------------- - -- Gcc : String_Access := Program_Name ("gcc", "gnatmake"); -+ Gcc : String_Access := Program_Name ("gnatgcc", "gnatmake"); - Gnatbind : String_Access := Program_Name ("gnatbind", "gnatmake"); - Gnatlink : String_Access := Program_Name ("gnatlink", "gnatmake"); - -- Default compiler, binder, linker programs ---- gcc/ada/mlib-prj.adb.orig -+++ gcc/ada/mlib-prj.adb -@@ -341,6 +341,11 @@ - - Foreign_Sources : Boolean; - -+ Rpath_Disabled : Boolean := False; -+ -- If -R is passed through the library options for the linker, it will -+ -- prevent the implemented libraries portion of the rpath switch from -+ -- being built, even if the linker is capable of supporting rpath. -+ - Rpath : String_Access := null; - -- Allocated only if Path Option is supported - -@@ -790,7 +795,7 @@ - Opts.Table (Opts.Last) := - new String'("-L" & Name_Buffer (1 .. Name_Len)); - -- if Path_Option /= null then -+ if not Rpath_Disabled and then Path_Option /= null then - Add_Rpath (Name_Buffer (1 .. Name_Len)); - end if; - -@@ -1285,6 +1290,9 @@ - Opts.Increment_Last; - Opts.Table (Opts.Last) := - new String'(Name_Buffer (1 .. Name_Len)); -+ if Name_Len = 2 and then Name_Buffer (1 .. 2) = "-R" then -+ Rpath_Disabled := True; -+ end if; - end if; - - Current := Element.Next; ---- gcc/ada/mlib-utl.adb.orig -+++ gcc/ada/mlib-utl.adb -@@ -21,6 +21,7 @@ - -- GNAT was originally developed by the GNAT team at New York University. -- - -- Extensive contributions were provided by Ada Core Technologies Inc. -- - -- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- - ------------------------------------------------------------------------------ - - with MLib.Fil; use MLib.Fil; -@@ -412,7 +413,7 @@ - if Driver_Name = No_Name then - if Gcc_Exec = null then - if Gcc_Name = null then -- Gcc_Name := Osint.Program_Name ("gcc", "gnatmake"); -+ Gcc_Name := Osint.Program_Name ("gnatgcc", "gnatmake"); - end if; - - Gcc_Exec := Locate_Exec_On_Path (Gcc_Name.all); ---- gcc/ada/prj-makr.adb.orig -+++ gcc/ada/prj-makr.adb -@@ -21,6 +21,7 @@ - -- GNAT was originally developed by the GNAT team at New York University. -- - -- Extensive contributions were provided by Ada Core Technologies Inc. -- - -- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- - ------------------------------------------------------------------------------ - - with Csets; -@@ -110,7 +111,7 @@ - - procedure Dup2 (Old_Fd, New_Fd : File_Descriptor); - -- Gcc : constant String := "gcc"; -+ Gcc : constant String := "gnatgcc"; - Gcc_Path : String_Access := null; - - Non_Empty_Node : constant Project_Node_Id := 1; ---- gcc/ada/s-fileio.adb.orig -+++ gcc/ada/s-fileio.adb -@@ -231,7 +231,7 @@ - Close_Status : int := 0; - Dup_Strm : Boolean := False; - File : AFCB_Ptr renames File_Ptr.all; -- Errno : Integer; -+ Errno : Integer := 0; - - begin - -- Take a task lock, to protect the global data value Open_Files ---- /dev/null -+++ gcc/ada/s-osinte-android.ads -@@ -0,0 +1,566 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS -- -+-- -- -+-- S Y S T E M . O S _ I N T E R F A C E -- -+-- -- -+-- S p e c -- -+-- -- -+-- Copyright (C) 1991-1994, Florida State University -- -+-- Copyright (C) 1995-2010, Free Software Foundation, Inc. -- -+-- -- -+-- GNARL is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 2, or (at your option) any later ver- -- -+-- sion. GNARL is distributed in the hope that it will be useful, but WITH- -- -+-- OUT 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 distributed with GNARL; see file COPYING. If not, write -- -+-- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, -- -+-- Boston, MA 02110-1301, USA. -- -+-- -- -+-- As a special exception, if other files instantiate generics from this -- -+-- unit, or you link this unit with other files to produce an executable, -- -+-- this unit does not by itself cause the resulting executable to be -- -+-- covered by the GNU General Public License. This exception does not -- -+-- however invalidate any other reasons why the executable file might be -- -+-- covered by the GNU Public License. -- -+-- -- -+-- GNARL was developed by the GNARL team at Florida State University. -- -+-- Extensive contributions were provided by Ada Core Technologies, Inc. -- -+-- -- -+------------------------------------------------------------------------------ -+ -+-- This is a GNU/Linux (GNU/LinuxThreads) version of this package -+ -+-- This package encapsulates all direct interfaces to OS services -+-- that are needed by the tasking run-time (libgnarl). -+ -+-- PLEASE DO NOT add any with-clauses to this package or remove the pragma -+-- Preelaborate. This package is designed to be a bottom-level (leaf) package. -+ -+with Ada.Unchecked_Conversion; -+with Interfaces.C; -+with System.Linux; -+ -+package System.OS_Interface is -+ pragma Preelaborate; -+ -+ subtype int is Interfaces.C.int; -+ subtype char is Interfaces.C.char; -+ subtype short is Interfaces.C.short; -+ subtype long is Interfaces.C.long; -+ subtype unsigned is Interfaces.C.unsigned; -+ subtype unsigned_short is Interfaces.C.unsigned_short; -+ subtype unsigned_long is Interfaces.C.unsigned_long; -+ subtype unsigned_char is Interfaces.C.unsigned_char; -+ subtype plain_char is Interfaces.C.plain_char; -+ subtype size_t is Interfaces.C.size_t; -+ -+ ----------- -+ -- Errno -- -+ ----------- -+ -+ function errno return int; -+ pragma Import (C, errno, "__get_errno"); -+ -+ EAGAIN : constant := System.Linux.EAGAIN; -+ EINTR : constant := System.Linux.EINTR; -+ EINVAL : constant := System.Linux.EINVAL; -+ ENOMEM : constant := System.Linux.ENOMEM; -+ EPERM : constant := System.Linux.EPERM; -+ ETIMEDOUT : constant := System.Linux.ETIMEDOUT; -+ -+ ------------- -+ -- Signals -- -+ ------------- -+ -+ Max_Interrupt : constant := 63; -+ type Signal is new int range 0 .. Max_Interrupt; -+ for Signal'Size use int'Size; -+ -+ SIGHUP : constant := System.Linux.SIGHUP; -+ SIGINT : constant := System.Linux.SIGINT; -+ SIGQUIT : constant := System.Linux.SIGQUIT; -+ SIGILL : constant := System.Linux.SIGILL; -+ SIGTRAP : constant := System.Linux.SIGTRAP; -+ SIGIOT : constant := System.Linux.SIGIOT; -+ SIGABRT : constant := System.Linux.SIGABRT; -+ SIGFPE : constant := System.Linux.SIGFPE; -+ SIGKILL : constant := System.Linux.SIGKILL; -+ SIGBUS : constant := System.Linux.SIGBUS; -+ SIGSEGV : constant := System.Linux.SIGSEGV; -+ SIGPIPE : constant := System.Linux.SIGPIPE; -+ SIGALRM : constant := System.Linux.SIGALRM; -+ SIGTERM : constant := System.Linux.SIGTERM; -+ SIGUSR1 : constant := System.Linux.SIGUSR1; -+ SIGUSR2 : constant := System.Linux.SIGUSR2; -+ SIGCLD : constant := System.Linux.SIGCLD; -+ SIGCHLD : constant := System.Linux.SIGCHLD; -+ SIGPWR : constant := System.Linux.SIGPWR; -+ SIGWINCH : constant := System.Linux.SIGWINCH; -+ SIGURG : constant := System.Linux.SIGURG; -+ SIGPOLL : constant := System.Linux.SIGPOLL; -+ SIGIO : constant := System.Linux.SIGIO; -+ SIGLOST : constant := System.Linux.SIGLOST; -+ SIGSTOP : constant := System.Linux.SIGSTOP; -+ SIGTSTP : constant := System.Linux.SIGTSTP; -+ SIGCONT : constant := System.Linux.SIGCONT; -+ SIGTTIN : constant := System.Linux.SIGTTIN; -+ SIGTTOU : constant := System.Linux.SIGTTOU; -+ SIGVTALRM : constant := System.Linux.SIGVTALRM; -+ SIGPROF : constant := System.Linux.SIGPROF; -+ SIGXCPU : constant := System.Linux.SIGXCPU; -+ SIGXFSZ : constant := System.Linux.SIGXFSZ; -+ SIGUNUSED : constant := System.Linux.SIGUNUSED; -+ SIGSTKFLT : constant := System.Linux.SIGSTKFLT; -+ SIGLTHRRES : constant := System.Linux.SIGLTHRRES; -+ SIGLTHRCAN : constant := System.Linux.SIGLTHRCAN; -+ SIGLTHRDBG : constant := System.Linux.SIGLTHRDBG; -+ -+ SIGADAABORT : constant := SIGABRT; -+ -- Change this if you want to use another signal for task abort. -+ -- SIGTERM might be a good one. -+ -+ type Signal_Set is array (Natural range <>) of Signal; -+ -+ Unmasked : constant Signal_Set := ( -+ SIGTRAP, -+ -- To enable debugging on multithreaded applications, mark SIGTRAP to -+ -- be kept unmasked. -+ -+ SIGBUS, -+ -+ SIGTTIN, SIGTTOU, SIGTSTP, -+ -- Keep these three signals unmasked so that background processes -+ -- and IO behaves as normal "C" applications -+ -+ SIGPROF, -+ -- To avoid confusing the profiler -+ -+ SIGKILL, SIGSTOP, -+ -- These two signals actually cannot be masked; -+ -- POSIX simply won't allow it. -+ -+ SIGLTHRRES, SIGLTHRCAN, SIGLTHRDBG); -+ -- These three signals are used by GNU/LinuxThreads starting from -+ -- glibc 2.1 (future 2.2). -+ -+ Reserved : constant Signal_Set := -+ -- I am not sure why the following two signals are reserved. -+ -- I guess they are not supported by this version of GNU/Linux. -+ (SIGVTALRM, SIGUNUSED); -+ -+ type sigset_t is private; -+ -+ function sigaddset (set : access sigset_t; sig : Signal) return int; -+ pragma Import (C, sigaddset, "sigaddset"); -+ -+ function sigdelset (set : access sigset_t; sig : Signal) return int; -+ pragma Import (C, sigdelset, "sigdelset"); -+ -+ function sigfillset (set : access sigset_t) return int; -+ pragma Import (C, sigfillset, "sigfillset"); -+ -+ function sigismember (set : access sigset_t; sig : Signal) return int; -+ pragma Import (C, sigismember, "sigismember"); -+ -+ function sigemptyset (set : access sigset_t) return int; -+ pragma Import (C, sigemptyset, "sigemptyset"); -+ -+ type union_type_3 is new String (1 .. 116); -+ type siginfo_t is record -+ si_signo : int; -+ si_code : int; -+ si_errno : int; -+ X_data : union_type_3; -+ end record; -+ pragma Convention (C, siginfo_t); -+ -+ type struct_sigaction is record -+ sa_handler : System.Address; -+ sa_mask : sigset_t; -+ sa_flags : Interfaces.C.unsigned_long; -+ sa_restorer : System.Address; -+ end record; -+ pragma Convention (C, struct_sigaction); -+ -+ type struct_sigaction_ptr is access all struct_sigaction; -+ -+ type Machine_State is record -+ eip : unsigned_long; -+ ebx : unsigned_long; -+ esp : unsigned_long; -+ ebp : unsigned_long; -+ esi : unsigned_long; -+ edi : unsigned_long; -+ end record; -+ type Machine_State_Ptr is access all Machine_State; -+ -+ SA_SIGINFO : constant := System.Linux.SA_SIGINFO; -+ SA_ONSTACK : constant := System.Linux.SA_ONSTACK; -+ -+ SIG_BLOCK : constant := 0; -+ SIG_UNBLOCK : constant := 1; -+ SIG_SETMASK : constant := 2; -+ -+ SIG_DFL : constant := 0; -+ SIG_IGN : constant := 1; -+ -+ function sigaction -+ (sig : Signal; -+ act : struct_sigaction_ptr; -+ oact : struct_sigaction_ptr) return int; -+ pragma Import (C, sigaction, "sigaction"); -+ -+ ---------- -+ -- Time -- -+ ---------- -+ -+ type timespec is private; -+ -+ function To_Duration (TS : timespec) return Duration; -+ pragma Inline (To_Duration); -+ -+ function To_Timespec (D : Duration) return timespec; -+ pragma Inline (To_Timespec); -+ -+ function sysconf (name : int) return long; -+ pragma Import (C, sysconf); -+ -+ SC_CLK_TCK : constant := 2; -+ SC_NPROCESSORS_ONLN : constant := 84; -+ -+ ------------------------- -+ -- Priority Scheduling -- -+ ------------------------- -+ -+ SCHED_OTHER : constant := 0; -+ SCHED_FIFO : constant := 1; -+ SCHED_RR : constant := 2; -+ -+ function To_Target_Priority -+ (Prio : System.Any_Priority) return Interfaces.C.int; -+ -- Maps System.Any_Priority to a POSIX priority -+ -+ ------------- -+ -- Process -- -+ ------------- -+ -+ type pid_t is private; -+ -+ function kill (pid : pid_t; sig : Signal) return int; -+ pragma Import (C, kill, "kill"); -+ -+ function getpid return pid_t; -+ pragma Import (C, getpid, "getpid"); -+ -+ ------------- -+ -- Threads -- -+ ------------- -+ -+ type Thread_Body is access -+ function (arg : System.Address) return System.Address; -+ pragma Convention (C, Thread_Body); -+ -+ function Thread_Body_Access is new -+ Ada.Unchecked_Conversion (System.Address, Thread_Body); -+ -+ type pthread_t is new unsigned_long; -+ subtype Thread_Id is pthread_t; -+ -+ function To_pthread_t is new Ada.Unchecked_Conversion -+ (unsigned_long, pthread_t); -+ -+ type pthread_mutex_t is limited private; -+ type pthread_cond_t is limited private; -+ type pthread_attr_t is limited private; -+ type pthread_mutexattr_t is limited private; -+ type pthread_condattr_t is limited private; -+ type pthread_key_t is private; -+ -+ PTHREAD_CREATE_DETACHED : constant := 1; -+ -+ ----------- -+ -- Stack -- -+ ----------- -+ -+ type stack_t is record -+ ss_sp : System.Address; -+ ss_flags : int; -+ ss_size : size_t; -+ end record; -+ pragma Convention (C, stack_t); -+ -+ function sigaltstack -+ (ss : not null access stack_t; -+ oss : access stack_t) return int; -+ pragma Import (C, sigaltstack, "sigaltstack"); -+ -+ Alternate_Stack : aliased System.Address; -+ pragma Import (C, Alternate_Stack, "__gnat_alternate_stack"); -+ -- The alternate signal stack for stack overflows -+ -+ Alternate_Stack_Size : constant := 16 * 1024; -+ -- This must be in keeping with init.c:__gnat_alternate_stack -+ -+ function Get_Stack_Base (thread : pthread_t) return Address; -+ pragma Inline (Get_Stack_Base); -+ -- This is a dummy procedure to share some GNULLI files -+ -+ --------------------------------------- -+ -- Nonstandard Thread Initialization -- -+ --------------------------------------- -+ -+ procedure pthread_init; -+ pragma Inline (pthread_init); -+ -- This is a dummy procedure to share some GNULLI files -+ -+ ------------------------- -+ -- POSIX.1c Section 3 -- -+ ------------------------- -+ -+ function sigwait (set : access sigset_t; sig : access Signal) return int; -+ pragma Import (C, sigwait, "sigwait"); -+ -+ function pthread_kill (thread : pthread_t; sig : Signal) return int; -+ pragma Import (C, pthread_kill, "pthread_kill"); -+ -+ function pthread_sigmask -+ (how : int; -+ set : access sigset_t; -+ oset : access sigset_t) return int; -+ pragma Import (C, pthread_sigmask, "pthread_sigmask"); -+ -+ -------------------------- -+ -- POSIX.1c Section 11 -- -+ -------------------------- -+ -+ function pthread_mutexattr_init -+ (attr : access pthread_mutexattr_t) return int; -+ pragma Import (C, pthread_mutexattr_init, "pthread_mutexattr_init"); -+ -+ function pthread_mutexattr_destroy -+ (attr : access pthread_mutexattr_t) return int; -+ pragma Import (C, pthread_mutexattr_destroy, "pthread_mutexattr_destroy"); -+ -+ function pthread_mutex_init -+ (mutex : access pthread_mutex_t; -+ attr : access pthread_mutexattr_t) return int; -+ pragma Import (C, pthread_mutex_init, "pthread_mutex_init"); -+ -+ function pthread_mutex_destroy (mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_mutex_destroy, "pthread_mutex_destroy"); -+ -+ function pthread_mutex_lock (mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_mutex_lock, "pthread_mutex_lock"); -+ -+ function pthread_mutex_unlock (mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_mutex_unlock, "pthread_mutex_unlock"); -+ -+ function pthread_condattr_init -+ (attr : access pthread_condattr_t) return int; -+ pragma Import (C, pthread_condattr_init, "pthread_condattr_init"); -+ -+ function pthread_condattr_destroy -+ (attr : access pthread_condattr_t) return int; -+ pragma Import (C, pthread_condattr_destroy, "pthread_condattr_destroy"); -+ -+ function pthread_cond_init -+ (cond : access pthread_cond_t; -+ attr : access pthread_condattr_t) return int; -+ pragma Import (C, pthread_cond_init, "pthread_cond_init"); -+ -+ function pthread_cond_destroy (cond : access pthread_cond_t) return int; -+ pragma Import (C, pthread_cond_destroy, "pthread_cond_destroy"); -+ -+ function pthread_cond_signal (cond : access pthread_cond_t) return int; -+ pragma Import (C, pthread_cond_signal, "pthread_cond_signal"); -+ -+ function pthread_cond_wait -+ (cond : access pthread_cond_t; -+ mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_cond_wait, "pthread_cond_wait"); -+ -+ function pthread_cond_timedwait -+ (cond : access pthread_cond_t; -+ mutex : access pthread_mutex_t; -+ abstime : access timespec) return int; -+ pragma Import (C, pthread_cond_timedwait, "pthread_cond_timedwait"); -+ -+ -------------------------- -+ -- POSIX.1c Section 13 -- -+ -------------------------- -+ -+ type struct_sched_param is record -+ sched_priority : int; -- scheduling priority -+ end record; -+ pragma Convention (C, struct_sched_param); -+ -+ function pthread_setschedparam -+ (thread : pthread_t; -+ policy : int; -+ param : access struct_sched_param) return int; -+ pragma Import (C, pthread_setschedparam, "pthread_setschedparam"); -+ -+ function pthread_attr_setschedpolicy -+ (attr : access pthread_attr_t; -+ policy : int) return int; -+ pragma Import -+ (C, pthread_attr_setschedpolicy, "pthread_attr_setschedpolicy"); -+ -+ function sched_yield return int; -+ pragma Import (C, sched_yield, "sched_yield"); -+ -+ --------------------------- -+ -- P1003.1c - Section 16 -- -+ --------------------------- -+ -+ function pthread_attr_init -+ (attributes : access pthread_attr_t) return int; -+ pragma Import (C, pthread_attr_init, "pthread_attr_init"); -+ -+ function pthread_attr_destroy -+ (attributes : access pthread_attr_t) return int; -+ pragma Import (C, pthread_attr_destroy, "pthread_attr_destroy"); -+ -+ function pthread_attr_setdetachstate -+ (attr : access pthread_attr_t; -+ detachstate : int) return int; -+ pragma Import -+ (C, pthread_attr_setdetachstate, "pthread_attr_setdetachstate"); -+ -+ function pthread_attr_setstacksize -+ (attr : access pthread_attr_t; -+ stacksize : size_t) return int; -+ pragma Import (C, pthread_attr_setstacksize, "pthread_attr_setstacksize"); -+ -+ function pthread_create -+ (thread : access pthread_t; -+ attributes : access pthread_attr_t; -+ start_routine : Thread_Body; -+ arg : System.Address) return int; -+ pragma Import (C, pthread_create, "pthread_create"); -+ -+ procedure pthread_exit (status : System.Address); -+ pragma Import (C, pthread_exit, "pthread_exit"); -+ -+ function pthread_self return pthread_t; -+ pragma Import (C, pthread_self, "pthread_self"); -+ -+ function lwp_self return System.Address; -+ pragma Import (C, lwp_self, "__gnat_lwp_self"); -+ -+ -------------------------- -+ -- POSIX.1c Section 17 -- -+ -------------------------- -+ -+ function pthread_setspecific -+ (key : pthread_key_t; -+ value : System.Address) return int; -+ pragma Import (C, pthread_setspecific, "pthread_setspecific"); -+ -+ function pthread_getspecific (key : pthread_key_t) return System.Address; -+ pragma Import (C, pthread_getspecific, "pthread_getspecific"); -+ -+ type destructor_pointer is access procedure (arg : System.Address); -+ pragma Convention (C, destructor_pointer); -+ -+ function pthread_key_create -+ (key : access pthread_key_t; -+ destructor : destructor_pointer) return int; -+ pragma Import (C, pthread_key_create, "pthread_key_create"); -+ -+ CPU_SETSIZE : constant := 1_024; -+ -+ type bit_field is array (1 .. CPU_SETSIZE) of Boolean; -+ for bit_field'Size use CPU_SETSIZE; -+ pragma Pack (bit_field); -+ pragma Convention (C, bit_field); -+ -+ type cpu_set_t is record -+ bits : bit_field; -+ end record; -+ pragma Convention (C, cpu_set_t); -+ -+ function pthread_setaffinity_np -+ (thread : pthread_t; -+ cpusetsize : size_t; -+ cpuset : access cpu_set_t) return int; -+ pragma Import (C, pthread_setaffinity_np, "pthread_setaffinity_np"); -+ pragma Weak_External (pthread_setaffinity_np); -+ -- Use a weak symbol because this function may be available or not, -+ -- depending on the version of the system. -+ -+ function pthread_attr_setaffinity_np -+ (attr : access pthread_attr_t; -+ cpusetsize : size_t; -+ cpuset : access cpu_set_t) return int; -+ pragma Import (C, pthread_attr_setaffinity_np, -+ "pthread_attr_setaffinity_np"); -+ pragma Weak_External (pthread_attr_setaffinity_np); -+ -- Use a weak symbol because this function may be available or not, -+ -- depending on the version of the system. -+ -+private -+ -+ type sigset_t is array (0 .. 127) of unsigned_char; -+ pragma Convention (C, sigset_t); -+ for sigset_t'Alignment use Interfaces.C.unsigned_long'Alignment; -+ -+ pragma Warnings (Off); -+ for struct_sigaction use record -+ sa_handler at Linux.sa_handler_pos range 0 .. Standard'Address_Size - 1; -+ sa_mask at Linux.sa_mask_pos range 0 .. 1023; -+ sa_flags at Linux.sa_flags_pos range 0 .. Standard'Address_Size - 1; -+ end record; -+ -- We intentionally leave sa_restorer unspecified and let the compiler -+ -- append it after the last field, so disable corresponding warning. -+ pragma Warnings (On); -+ -+ type pid_t is new int; -+ -+ type time_t is new long; -+ -+ type timespec is record -+ tv_sec : time_t; -+ tv_nsec : long; -+ end record; -+ pragma Convention (C, timespec); -+ -+ type pthread_attr_t is record -+ detachstate : int; -+ schedpolicy : int; -+ schedparam : struct_sched_param; -+ inheritsched : int; -+ scope : int; -+ guardsize : size_t; -+ stackaddr_set : int; -+ stackaddr : System.Address; -+ stacksize : size_t; -+ end record; -+ pragma Convention (C, pthread_attr_t); -+ -+ type pthread_condattr_t is record -+ dummy : int; -+ end record; -+ pragma Convention (C, pthread_condattr_t); -+ -+ type pthread_mutexattr_t is record -+ mutexkind : int; -+ end record; -+ pragma Convention (C, pthread_mutexattr_t); -+ -+ type pthread_mutex_t is new System.Linux.pthread_mutex_t; -+ -+ type unsigned_long_long_t is mod 2 ** 64; -+ -- Interfaces.C.Extensions isn't preelaborated so cannot be with-ed -+ -+ type pthread_cond_t is array (0 .. 47) of unsigned_char; -+ pragma Convention (C, pthread_cond_t); -+ for pthread_cond_t'Alignment use unsigned_long_long_t'Alignment; -+ -+ type pthread_key_t is new unsigned; -+ -+end System.OS_Interface; ---- /dev/null -+++ gcc/ada/s-osinte-dragonfly.adb -@@ -0,0 +1,117 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS -- -+-- -- -+-- S Y S T E M . O S _ I N T E R F A C E -- -+-- -- -+-- B o d y -- -+-- -- -+-- Copyright (C) 1991-2009, Free Software Foundation, Inc. -- -+-- -- -+-- GNARL is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 3, or (at your option) any later ver- -- -+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- -+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- -+-- or FITNESS FOR A PARTICULAR PURPOSE. -- -+-- -- -+-- As a special exception under Section 7 of GPL version 3, you are granted -- -+-- additional permissions described in the GCC Runtime Library Exception, -- -+-- version 3.1, as published by the Free Software Foundation. -- -+-- -- -+-- You should have received a copy of the GNU General Public License and -- -+-- a copy of the GCC Runtime Library Exception along with this program; -- -+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- -+-- <http://www.gnu.org/licenses/>. -- -+-- -- -+-- GNARL was developed by the GNARL team at Florida State University. It is -- -+-- now maintained by Ada Core Technologies Inc. in cooperation with Florida -- -+-- State University (http://www.gnat.com). -- -+-- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- -+------------------------------------------------------------------------------ -+ -+-- This is the DragonFly THREADS version of this package -+ -+with Interfaces.C; use Interfaces.C; -+ -+package body System.OS_Interface is -+ -+ ----------- -+ -- Errno -- -+ ----------- -+ -+ function Errno return int is -+ type int_ptr is access all int; -+ -+ function internal_errno return int_ptr; -+ pragma Import (C, internal_errno, "__get_errno"); -+ -+ begin -+ return (internal_errno.all); -+ end Errno; -+ -+ -------------------- -+ -- Get_Stack_Base -- -+ -------------------- -+ -+ function Get_Stack_Base (thread : pthread_t) return Address is -+ pragma Unreferenced (thread); -+ begin -+ return Null_Address; -+ end Get_Stack_Base; -+ -+ ------------------ -+ -- pthread_init -- -+ ------------------ -+ -+ procedure pthread_init is -+ begin -+ null; -+ end pthread_init; -+ -+ ----------------- -+ -- To_Duration -- -+ ----------------- -+ -+ function To_Duration (TS : timespec) return Duration is -+ begin -+ return Duration (TS.tv_sec) + Duration (TS.tv_nsec) / 10#1#E9; -+ end To_Duration; -+ -+ ------------------------ -+ -- To_Target_Priority -- -+ ------------------------ -+ -+ function To_Target_Priority -+ (Prio : System.Any_Priority) return Interfaces.C.int -+ is -+ begin -+ return Interfaces.C.int (Prio); -+ end To_Target_Priority; -+ -+ ----------------- -+ -- To_Timespec -- -+ ----------------- -+ -+ function To_Timespec (D : Duration) return timespec is -+ S : time_t; -+ F : Duration; -+ -+ begin -+ S := time_t (Long_Long_Integer (D)); -+ F := D - Duration (S); -+ -+ -- If F has negative value due to a round-up, adjust for positive F -+ -- value. -+ -+ if F < 0.0 then -+ S := S - 1; -+ F := F + 1.0; -+ end if; -+ -+ return timespec'(tv_sec => S, -+ tv_nsec => long (Long_Long_Integer (F * 10#1#E9))); -+ end To_Timespec; -+ -+end System.OS_Interface; ---- /dev/null -+++ gcc/ada/s-osinte-dragonfly.ads -@@ -0,0 +1,648 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS -- -+-- -- -+-- S Y S T E M . O S _ I N T E R F A C E -- -+-- -- -+-- S p e c -- -+-- -- -+-- Copyright (C) 1991-1994, Florida State University -- -+-- Copyright (C) 1995-2009, Free Software Foundation, Inc. -- -+-- -- -+-- GNARL is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 2, or (at your option) any later ver- -- -+-- sion. GNARL is distributed in the hope that it will be useful, but WITH- -- -+-- OUT 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 distributed with GNARL; see file COPYING. If not, write -- -+-- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, -- -+-- Boston, MA 02110-1301, USA. -- -+-- -- -+-- As a special exception, if other files instantiate generics from this -- -+-- unit, or you link this unit with other files to produce an executable, -- -+-- this unit does not by itself cause the resulting executable to be -- -+-- covered by the GNU General Public License. This exception does not -- -+-- however invalidate any other reasons why the executable file might be -- -+-- covered by the GNU Public License. -- -+-- -- -+-- GNARL was developed by the GNARL team at Florida State University. It is -- -+-- now maintained by Ada Core Technologies Inc. in cooperation with Florida -- -+-- State University (http://www.gnat.com). -- -+-- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- -+------------------------------------------------------------------------------ -+ -+-- This is the DragonFly BSD PTHREADS version of this package -+ -+-- This package encapsulates all direct interfaces to OS services -+-- that are needed by the tasking run-time (libgnarl). -+ -+-- PLEASE DO NOT add any with-clauses to this package or remove the pragma -+-- Preelaborate. This package is designed to be a bottom-level (leaf) package. -+ -+with Ada.Unchecked_Conversion; -+ -+with Interfaces.C; -+ -+package System.OS_Interface is -+ pragma Preelaborate; -+ -+ pragma Linker_Options ("-pthread"); -+ -+ subtype int is Interfaces.C.int; -+ subtype short is Interfaces.C.short; -+ subtype long is Interfaces.C.long; -+ subtype unsigned is Interfaces.C.unsigned; -+ subtype unsigned_short is Interfaces.C.unsigned_short; -+ subtype unsigned_long is Interfaces.C.unsigned_long; -+ subtype unsigned_char is Interfaces.C.unsigned_char; -+ subtype plain_char is Interfaces.C.plain_char; -+ subtype size_t is Interfaces.C.size_t; -+ -+ ----------- -+ -- Errno -- -+ ----------- -+ -+ function Errno return int; -+ pragma Inline (Errno); -+ -+ EAGAIN : constant := 35; -+ EINTR : constant := 4; -+ EINVAL : constant := 22; -+ ENOMEM : constant := 12; -+ ETIMEDOUT : constant := 60; -+ -+ ------------- -+ -- Signals -- -+ ------------- -+ -+ Max_Interrupt : constant := 31; -+ type Signal is new int range 0 .. Max_Interrupt; -+ for Signal'Size use int'Size; -+ -+ SIGHUP : constant := 1; -- hangup -+ SIGINT : constant := 2; -- interrupt (rubout) -+ SIGQUIT : constant := 3; -- quit (ASCD FS) -+ SIGILL : constant := 4; -- illegal instruction (not reset) -+ SIGTRAP : constant := 5; -- trace trap (not reset) -+ SIGIOT : constant := 6; -- IOT instruction -+ SIGABRT : constant := 6; -- used by abort, replace SIGIOT in the future -+ SIGEMT : constant := 7; -- EMT instruction -+ SIGFPE : constant := 8; -- floating point exception -+ SIGKILL : constant := 9; -- kill (cannot be caught or ignored) -+ SIGBUS : constant := 10; -- bus error -+ SIGSEGV : constant := 11; -- segmentation violation -+ SIGSYS : constant := 12; -- bad argument to system call -+ SIGPIPE : constant := 13; -- write on a pipe with no one to read it -+ SIGALRM : constant := 14; -- alarm clock -+ SIGTERM : constant := 15; -- software termination signal from kill -+ SIGURG : constant := 16; -- urgent condition on IO channel -+ SIGSTOP : constant := 17; -- stop (cannot be caught or ignored) -+ SIGTSTP : constant := 18; -- user stop requested from tty -+ SIGCONT : constant := 19; -- stopped process has been continued -+ SIGCLD : constant := 20; -- alias for SIGCHLD -+ SIGCHLD : constant := 20; -- child status change -+ SIGTTIN : constant := 21; -- background tty read attempted -+ SIGTTOU : constant := 22; -- background tty write attempted -+ SIGIO : constant := 23; -- I/O possible (Solaris SIGPOLL alias) -+ SIGXCPU : constant := 24; -- CPU time limit exceeded -+ SIGXFSZ : constant := 25; -- filesize limit exceeded -+ SIGVTALRM : constant := 26; -- virtual timer expired -+ SIGPROF : constant := 27; -- profiling timer expired -+ SIGWINCH : constant := 28; -- window size change -+ SIGINFO : constant := 29; -- information request (BSD) -+ SIGUSR1 : constant := 30; -- user defined signal 1 -+ SIGUSR2 : constant := 31; -- user defined signal 2 -+ -+ SIGADAABORT : constant := SIGABRT; -+ -- Change this if you want to use another signal for task abort. -+ -- SIGTERM might be a good one. -+ -+ type Signal_Set is array (Natural range <>) of Signal; -+ -+ -- Interrupts that must be unmasked at all times. DragonFlyBSD -+ -- pthreads will not allow an application to mask out any -+ -- interrupt needed by the threads library. -+ Unmasked : constant Signal_Set := -+ (SIGTRAP, SIGBUS, SIGTTIN, SIGTTOU, SIGTSTP); -+ -+ -- DragonFlyBSD will uses SIGPROF for timing. Do not allow a -+ -- handler to attach to this signal. -+ Reserved : constant Signal_Set := (0 .. 0 => SIGPROF); -+ -+ type sigset_t is private; -+ -+ function sigaddset -+ (set : access sigset_t; -+ sig : Signal) return int; -+ pragma Import (C, sigaddset, "sigaddset"); -+ -+ function sigdelset -+ (set : access sigset_t; -+ sig : Signal) return int; -+ pragma Import (C, sigdelset, "sigdelset"); -+ -+ function sigfillset (set : access sigset_t) return int; -+ pragma Import (C, sigfillset, "sigfillset"); -+ -+ function sigismember -+ (set : access sigset_t; -+ sig : Signal) return int; -+ pragma Import (C, sigismember, "sigismember"); -+ -+ function sigemptyset (set : access sigset_t) return int; -+ pragma Import (C, sigemptyset, "sigemptyset"); -+ -+ -- sigcontext is architecture dependent, so define it private -+ type struct_sigcontext is private; -+ -+ type old_struct_sigaction is record -+ sa_handler : System.Address; -+ sa_mask : sigset_t; -+ sa_flags : int; -+ end record; -+ pragma Convention (C, old_struct_sigaction); -+ -+ type new_struct_sigaction is record -+ sa_handler : System.Address; -+ sa_flags : int; -+ sa_mask : sigset_t; -+ end record; -+ pragma Convention (C, new_struct_sigaction); -+ -+ subtype struct_sigaction is new_struct_sigaction; -+ type struct_sigaction_ptr is access all struct_sigaction; -+ -+ SIG_BLOCK : constant := 1; -+ SIG_UNBLOCK : constant := 2; -+ SIG_SETMASK : constant := 3; -+ -+ SIG_DFL : constant := 0; -+ SIG_IGN : constant := 1; -+ -+ SA_SIGINFO : constant := 16#0040#; -+ SA_ONSTACK : constant := 16#0001#; -+ -+ function sigaction -+ (sig : Signal; -+ act : struct_sigaction_ptr; -+ oact : struct_sigaction_ptr) return int; -+ pragma Import (C, sigaction, "sigaction"); -+ -+ ---------- -+ -- Time -- -+ ---------- -+ -+ Time_Slice_Supported : constant Boolean := True; -+ -- Indicates whether time slicing is supported (i.e SCHED_RR is supported) -+ -+ type timespec is private; -+ -+ function nanosleep (rqtp, rmtp : access timespec) return int; -+ pragma Import (C, nanosleep, "nanosleep"); -+ -+ type clockid_t is private; -+ -+ CLOCK_REALTIME : constant clockid_t; -+ -+ function clock_gettime -+ (clock_id : clockid_t; -+ tp : access timespec) -+ return int; -+ pragma Import (C, clock_gettime, "clock_gettime"); -+ -+ function To_Duration (TS : timespec) return Duration; -+ pragma Inline (To_Duration); -+ -+ function To_Timespec (D : Duration) return timespec; -+ pragma Inline (To_Timespec); -+ -+ type struct_timezone is record -+ tz_minuteswest : int; -+ tz_dsttime : int; -+ end record; -+ pragma Convention (C, struct_timezone); -+ -+ procedure usleep (useconds : unsigned_long); -+ pragma Import (C, usleep, "usleep"); -+ -+ ------------------------- -+ -- Priority Scheduling -- -+ ------------------------- -+ -+ SCHED_FIFO : constant := 1; -+ SCHED_OTHER : constant := 2; -+ SCHED_RR : constant := 3; -+ -+ function To_Target_Priority -+ (Prio : System.Any_Priority) return Interfaces.C.int; -+ -- Maps System.Any_Priority to a POSIX priority -+ -+ ------------- -+ -- Process -- -+ ------------- -+ -+ type pid_t is private; -+ -+ function kill (pid : pid_t; sig : Signal) return int; -+ pragma Import (C, kill, "kill"); -+ -+ function getpid return pid_t; -+ pragma Import (C, getpid, "getpid"); -+ -+ --------- -+ -- LWP -- -+ --------- -+ -+ function lwp_self return System.Address; -+ -- lwp_self does not exist on this thread library, revert to pthread_self -+ -- which is the closest approximation (with getpid). This function is -+ -- needed to share 7staprop.adb across POSIX-like targets. -+ pragma Import (C, lwp_self, "pthread_self"); -+ -+ ------------- -+ -- Threads -- -+ ------------- -+ -+ type Thread_Body is access -+ function (arg : System.Address) return System.Address; -+ pragma Convention (C, Thread_Body); -+ -+ function Thread_Body_Access is new -+ Ada.Unchecked_Conversion (System.Address, Thread_Body); -+ -+ type pthread_t is private; -+ subtype Thread_Id is pthread_t; -+ -+ type pthread_mutex_t is limited private; -+ type pthread_cond_t is limited private; -+ type pthread_attr_t is limited private; -+ type pthread_mutexattr_t is limited private; -+ type pthread_condattr_t is limited private; -+ type pthread_key_t is private; -+ -+ PTHREAD_CREATE_DETACHED : constant := 1; -+ PTHREAD_CREATE_JOINABLE : constant := 0; -+ -+ PTHREAD_SCOPE_PROCESS : constant := 0; -+ PTHREAD_SCOPE_SYSTEM : constant := 2; -+ -+ ----------- -+ -- Stack -- -+ ----------- -+ -+ type stack_t is record -+ ss_sp : System.Address; -+ ss_size : size_t; -+ ss_flags : int; -+ end record; -+ pragma Convention (C, stack_t); -+ -+ function sigaltstack -+ (ss : not null access stack_t; -+ oss : access stack_t) return int; -+ pragma Import (C, sigaltstack, "sigaltstack"); -+ -+ Alternate_Stack : aliased System.Address; -+ -- This is a dummy definition, never used (Alternate_Stack_Size is null) -+ -+ Alternate_Stack_Size : constant := 0; -+ -- No alternate signal stack is used on this platform -+ -+ Stack_Base_Available : constant Boolean := False; -+ -- Indicates whether the stack base is available on this target. This -+ -- allows us to share s-osinte.adb between all the FSU run time. Note that -+ -- this value can only be true if pthread_t has a complete definition that -+ -- corresponds exactly to the C header files. -+ -+ function Get_Stack_Base (thread : pthread_t) return Address; -+ pragma Inline (Get_Stack_Base); -+ -- returns the stack base of the specified thread. Only call this function -+ -- when Stack_Base_Available is True. -+ -+ function Get_Page_Size return size_t; -+ function Get_Page_Size return Address; -+ pragma Import (C, Get_Page_Size, "getpagesize"); -+ -- Returns the size of a page -+ -+ PROT_NONE : constant := 0; -+ PROT_READ : constant := 1; -+ PROT_WRITE : constant := 2; -+ PROT_EXEC : constant := 4; -+ PROT_ALL : constant := PROT_READ + PROT_WRITE + PROT_EXEC; -+ PROT_ON : constant := PROT_NONE; -+ PROT_OFF : constant := PROT_ALL; -+ -+ function mprotect (addr : Address; len : size_t; prot : int) return int; -+ pragma Import (C, mprotect); -+ -+ --------------------------------------- -+ -- Nonstandard Thread Initialization -- -+ --------------------------------------- -+ -+ -- FSU_THREADS requires pthread_init, which is nonstandard and this should -+ -- be invoked during the elaboration of s-taprop.adb. -+ -+ -- DragonFlyBSD does not require this so we provide an empty Ada body -+ -+ procedure pthread_init; -+ -+ ------------------------- -+ -- POSIX.1c Section 3 -- -+ ------------------------- -+ -+ function sigwait -+ (set : access sigset_t; -+ sig : access Signal) return int; -+ pragma Import (C, sigwait, "sigwait"); -+ -+ function pthread_kill -+ (thread : pthread_t; -+ sig : Signal) return int; -+ pragma Import (C, pthread_kill, "pthread_kill"); -+ -+ function pthread_sigmask -+ (how : int; -+ set : access sigset_t; -+ oset : access sigset_t) return int; -+ pragma Import (C, pthread_sigmask, "pthread_sigmask"); -+ -+ -------------------------- -+ -- POSIX.1c Section 11 -- -+ -------------------------- -+ -+ function pthread_mutexattr_init -+ (attr : access pthread_mutexattr_t) return int; -+ pragma Import (C, pthread_mutexattr_init, "pthread_mutexattr_init"); -+ -+ function pthread_mutexattr_destroy -+ (attr : access pthread_mutexattr_t) return int; -+ pragma Import (C, pthread_mutexattr_destroy, "pthread_mutexattr_destroy"); -+ -+ function pthread_mutex_init -+ (mutex : access pthread_mutex_t; -+ attr : access pthread_mutexattr_t) return int; -+ pragma Import (C, pthread_mutex_init, "pthread_mutex_init"); -+ -+ function pthread_mutex_destroy (mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_mutex_destroy, "pthread_mutex_destroy"); -+ -+ function pthread_mutex_lock (mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_mutex_lock, "pthread_mutex_lock"); -+ -+ function pthread_mutex_unlock (mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_mutex_unlock, "pthread_mutex_unlock"); -+ -+ function pthread_condattr_init -+ (attr : access pthread_condattr_t) return int; -+ pragma Import (C, pthread_condattr_init, "pthread_condattr_init"); -+ -+ function pthread_condattr_destroy -+ (attr : access pthread_condattr_t) return int; -+ pragma Import (C, pthread_condattr_destroy, "pthread_condattr_destroy"); -+ -+ function pthread_cond_init -+ (cond : access pthread_cond_t; -+ attr : access pthread_condattr_t) return int; -+ pragma Import (C, pthread_cond_init, "pthread_cond_init"); -+ -+ function pthread_cond_destroy (cond : access pthread_cond_t) return int; -+ pragma Import (C, pthread_cond_destroy, "pthread_cond_destroy"); -+ -+ function pthread_cond_signal (cond : access pthread_cond_t) return int; -+ pragma Import (C, pthread_cond_signal, "pthread_cond_signal"); -+ -+ function pthread_cond_wait -+ (cond : access pthread_cond_t; -+ mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_cond_wait, "pthread_cond_wait"); -+ -+ function pthread_cond_timedwait -+ (cond : access pthread_cond_t; -+ mutex : access pthread_mutex_t; -+ abstime : access timespec) return int; -+ pragma Import (C, pthread_cond_timedwait, "pthread_cond_timedwait"); -+ -+ Relative_Timed_Wait : constant Boolean := False; -+ -- pthread_cond_timedwait requires an absolute delay time -+ -+ -------------------------- -+ -- POSIX.1c Section 13 -- -+ -------------------------- -+ -+ PTHREAD_PRIO_NONE : constant := 0; -+ PTHREAD_PRIO_PROTECT : constant := 2; -+ PTHREAD_PRIO_INHERIT : constant := 1; -+ -+ function pthread_mutexattr_setprotocol -+ (attr : access pthread_mutexattr_t; -+ protocol : int) return int; -+ pragma Import -+ (C, pthread_mutexattr_setprotocol, "pthread_mutexattr_setprotocol"); -+ -+ function pthread_mutexattr_getprotocol -+ (attr : access pthread_mutexattr_t; -+ protocol : access int) return int; -+ pragma Import -+ (C, pthread_mutexattr_getprotocol, "pthread_mutexattr_getprotocol"); -+ -+ function pthread_mutexattr_setprioceiling -+ (attr : access pthread_mutexattr_t; -+ prioceiling : int) return int; -+ pragma Import -+ (C, pthread_mutexattr_setprioceiling, -+ "pthread_mutexattr_setprioceiling"); -+ -+ function pthread_mutexattr_getprioceiling -+ (attr : access pthread_mutexattr_t; -+ prioceiling : access int) return int; -+ pragma Import -+ (C, pthread_mutexattr_getprioceiling, -+ "pthread_mutexattr_getprioceiling"); -+ -+ type struct_sched_param is record -+ sched_priority : int; -+ end record; -+ pragma Convention (C, struct_sched_param); -+ -+ function pthread_getschedparam -+ (thread : pthread_t; -+ policy : access int; -+ param : access struct_sched_param) return int; -+ pragma Import (C, pthread_getschedparam, "pthread_getschedparam"); -+ -+ function pthread_setschedparam -+ (thread : pthread_t; -+ policy : int; -+ param : access struct_sched_param) return int; -+ pragma Import (C, pthread_setschedparam, "pthread_setschedparam"); -+ -+ function pthread_attr_setscope -+ (attr : access pthread_attr_t; -+ contentionscope : int) return int; -+ pragma Import (C, pthread_attr_setscope, "pthread_attr_setscope"); -+ -+ function pthread_attr_getscope -+ (attr : access pthread_attr_t; -+ contentionscope : access int) return int; -+ pragma Import (C, pthread_attr_getscope, "pthread_attr_getscope"); -+ -+ function pthread_attr_setinheritsched -+ (attr : access pthread_attr_t; -+ inheritsched : int) return int; -+ pragma Import -+ (C, pthread_attr_setinheritsched, "pthread_attr_setinheritsched"); -+ -+ function pthread_attr_getinheritsched -+ (attr : access pthread_attr_t; -+ inheritsched : access int) return int; -+ pragma Import -+ (C, pthread_attr_getinheritsched, "pthread_attr_getinheritsched"); -+ -+ function pthread_attr_setschedpolicy -+ (attr : access pthread_attr_t; -+ policy : int) return int; -+ pragma Import (C, pthread_attr_setschedpolicy, -+ "pthread_attr_setschedpolicy"); -+ -+ function pthread_attr_getschedpolicy -+ (attr : access pthread_attr_t; -+ policy : access int) return int; -+ pragma Import (C, pthread_attr_getschedpolicy, -+ "pthread_attr_getschedpolicy"); -+ -+ function pthread_attr_setschedparam -+ (attr : access pthread_attr_t; -+ sched_param : int) return int; -+ pragma Import (C, pthread_attr_setschedparam, "pthread_attr_setschedparam"); -+ -+ function pthread_attr_getschedparam -+ (attr : access pthread_attr_t; -+ sched_param : access int) return int; -+ pragma Import (C, pthread_attr_getschedparam, "pthread_attr_getschedparam"); -+ -+ function sched_yield return int; -+ pragma Import (C, sched_yield, "pthread_yield"); -+ -+ -------------------------- -+ -- P1003.1c Section 16 -- -+ -------------------------- -+ -+ function pthread_attr_init (attributes : access pthread_attr_t) return int; -+ pragma Import (C, pthread_attr_init, "pthread_attr_init"); -+ -+ function pthread_attr_destroy -+ (attributes : access pthread_attr_t) return int; -+ pragma Import (C, pthread_attr_destroy, "pthread_attr_destroy"); -+ -+ function pthread_attr_setdetachstate -+ (attr : access pthread_attr_t; -+ detachstate : int) return int; -+ pragma Import -+ (C, pthread_attr_setdetachstate, "pthread_attr_setdetachstate"); -+ -+ function pthread_attr_getdetachstate -+ (attr : access pthread_attr_t; -+ detachstate : access int) return int; -+ pragma Import -+ (C, pthread_attr_getdetachstate, "pthread_attr_getdetachstate"); -+ -+ function pthread_attr_getstacksize -+ (attr : access pthread_attr_t; -+ stacksize : access size_t) return int; -+ pragma Import -+ (C, pthread_attr_getstacksize, "pthread_attr_getstacksize"); -+ -+ function pthread_attr_setstacksize -+ (attr : access pthread_attr_t; -+ stacksize : size_t) return int; -+ pragma Import -+ (C, pthread_attr_setstacksize, "pthread_attr_setstacksize"); -+ -+ function pthread_create -+ (thread : access pthread_t; -+ attributes : access pthread_attr_t; -+ start_routine : Thread_Body; -+ arg : System.Address) return int; -+ pragma Import (C, pthread_create, "pthread_create"); -+ -+ function pthread_detach (thread : pthread_t) return int; -+ pragma Import (C, pthread_detach, "pthread_detach"); -+ -+ procedure pthread_exit (status : System.Address); -+ pragma Import (C, pthread_exit, "pthread_exit"); -+ -+ function pthread_self return pthread_t; -+ pragma Import (C, pthread_self, "pthread_self"); -+ -+ -------------------------- -+ -- POSIX.1c Section 17 -- -+ -------------------------- -+ -+ function pthread_setspecific -+ (key : pthread_key_t; -+ value : System.Address) return int; -+ pragma Import (C, pthread_setspecific, "pthread_setspecific"); -+ -+ function pthread_getspecific (key : pthread_key_t) return System.Address; -+ pragma Import (C, pthread_getspecific, "pthread_getspecific"); -+ -+ type destructor_pointer is access procedure (arg : System.Address); -+ pragma Convention (C, destructor_pointer); -+ -+ function pthread_key_create -+ (key : access pthread_key_t; -+ destructor : destructor_pointer) return int; -+ pragma Import (C, pthread_key_create, "pthread_key_create"); -+ -+ ------------------------------------ -+ -- Non-portable Pthread Functions -- -+ ------------------------------------ -+ -+ function pthread_set_name_np -+ (thread : pthread_t; -+ name : System.Address) return int; -+ pragma Import (C, pthread_set_name_np, "pthread_set_name_np"); -+ -+private -+ -+ type sigset_t is array (1 .. 4) of unsigned; -+ -+ -- In DragonFlyBSD the component sa_handler turns out to -+ -- be one a union type, and the selector is a macro: -+ -- #define sa_handler __sigaction_u._handler -+ -- #define sa_sigaction __sigaction_u._sigaction -+ -+ -- Should we add a signal_context type here ??? -+ -- How could it be done independent of the CPU architecture ??? -+ -- sigcontext type is opaque, so it is architecturally neutral. -+ -- It is always passed as an access type, so define it as an empty record -+ -- since the contents are not used anywhere. -+ -+ type struct_sigcontext is null record; -+ pragma Convention (C, struct_sigcontext); -+ -+ type pid_t is new int; -+ -+ type time_t is new long; -+ -+ type timespec is record -+ tv_sec : time_t; -+ tv_nsec : long; -+ end record; -+ pragma Convention (C, timespec); -+ -+ type clockid_t is new int; -+ CLOCK_REALTIME : constant clockid_t := 0; -+ -+ type pthread_t is new System.Address; -+ type pthread_attr_t is new System.Address; -+ type pthread_mutex_t is new System.Address; -+ type pthread_mutexattr_t is new System.Address; -+ type pthread_cond_t is new System.Address; -+ type pthread_condattr_t is new System.Address; -+ type pthread_key_t is new int; -+ -+end System.OS_Interface; ---- gcc/ada/s-osinte-freebsd.adb.orig -+++ gcc/ada/s-osinte-freebsd.adb -@@ -28,6 +28,7 @@ - -- now maintained by Ada Core Technologies Inc. in cooperation with Florida -- - -- State University (http://www.gnat.com). -- - -- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- - ------------------------------------------------------------------------------ - - -- This is the FreeBSD THREADS version of this package -@@ -44,7 +45,7 @@ - type int_ptr is access all int; - - function internal_errno return int_ptr; -- pragma Import (C, internal_errno, "__error"); -+ pragma Import (C, internal_errno, "__get_errno"); - - begin - return (internal_errno.all); -@@ -57,7 +58,7 @@ - function Get_Stack_Base (thread : pthread_t) return Address is - pragma Unreferenced (thread); - begin -- return (0); -+ return Null_Address; - end Get_Stack_Base; - - ------------------ -@@ -75,7 +76,7 @@ - - function To_Duration (TS : timespec) return Duration is - begin -- return Duration (TS.ts_sec) + Duration (TS.ts_nsec) / 10#1#E9; -+ return Duration (TS.tv_sec) + Duration (TS.tv_nsec) / 10#1#E9; - end To_Duration; - - ------------------------ -@@ -108,8 +109,8 @@ - F := F + 1.0; - end if; - -- return timespec'(ts_sec => S, -- ts_nsec => long (Long_Long_Integer (F * 10#1#E9))); -+ return timespec'(tv_sec => S, -+ tv_nsec => long (Long_Long_Integer (F * 10#1#E9))); - end To_Timespec; - - end System.OS_Interface; ---- /dev/null -+++ gcc/ada/s-osinte-freebsd32.ads -@@ -0,0 +1,648 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS -- -+-- -- -+-- S Y S T E M . O S _ I N T E R F A C E -- -+-- -- -+-- S p e c -- -+-- -- -+-- Copyright (C) 1991-1994, Florida State University -- -+-- Copyright (C) 1995-2009, Free Software Foundation, Inc. -- -+-- -- -+-- GNARL is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 2, or (at your option) any later ver- -- -+-- sion. GNARL is distributed in the hope that it will be useful, but WITH- -- -+-- OUT 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 distributed with GNARL; see file COPYING. If not, write -- -+-- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, -- -+-- Boston, MA 02110-1301, USA. -- -+-- -- -+-- As a special exception, if other files instantiate generics from this -- -+-- unit, or you link this unit with other files to produce an executable, -- -+-- this unit does not by itself cause the resulting executable to be -- -+-- covered by the GNU General Public License. This exception does not -- -+-- however invalidate any other reasons why the executable file might be -- -+-- covered by the GNU Public License. -- -+-- -- -+-- GNARL was developed by the GNARL team at Florida State University. It is -- -+-- now maintained by Ada Core Technologies Inc. in cooperation with Florida -- -+-- State University (http://www.gnat.com). -- -+-- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- -+------------------------------------------------------------------------------ -+ -+-- This is the FreeBSD PTHREADS version of this package -+ -+-- This package encapsulates all direct interfaces to OS services -+-- that are needed by the tasking run-time (libgnarl). -+ -+-- PLEASE DO NOT add any with-clauses to this package or remove the pragma -+-- Preelaborate. This package is designed to be a bottom-level (leaf) package. -+ -+with Ada.Unchecked_Conversion; -+ -+with Interfaces.C; -+ -+package System.OS_Interface is -+ pragma Preelaborate; -+ -+ pragma Linker_Options ("-pthread"); -+ -+ subtype int is Interfaces.C.int; -+ subtype short is Interfaces.C.short; -+ subtype long is Interfaces.C.long; -+ subtype unsigned is Interfaces.C.unsigned; -+ subtype unsigned_short is Interfaces.C.unsigned_short; -+ subtype unsigned_long is Interfaces.C.unsigned_long; -+ subtype unsigned_char is Interfaces.C.unsigned_char; -+ subtype plain_char is Interfaces.C.plain_char; -+ subtype size_t is Interfaces.C.size_t; -+ -+ ----------- -+ -- Errno -- -+ ----------- -+ -+ function Errno return int; -+ pragma Inline (Errno); -+ -+ EAGAIN : constant := 35; -+ EINTR : constant := 4; -+ EINVAL : constant := 22; -+ ENOMEM : constant := 12; -+ ETIMEDOUT : constant := 60; -+ -+ ------------- -+ -- Signals -- -+ ------------- -+ -+ Max_Interrupt : constant := 31; -+ type Signal is new int range 0 .. Max_Interrupt; -+ for Signal'Size use int'Size; -+ -+ SIGHUP : constant := 1; -- hangup -+ SIGINT : constant := 2; -- interrupt (rubout) -+ SIGQUIT : constant := 3; -- quit (ASCD FS) -+ SIGILL : constant := 4; -- illegal instruction (not reset) -+ SIGTRAP : constant := 5; -- trace trap (not reset) -+ SIGIOT : constant := 6; -- IOT instruction -+ SIGABRT : constant := 6; -- used by abort, replace SIGIOT in the future -+ SIGEMT : constant := 7; -- EMT instruction -+ SIGFPE : constant := 8; -- floating point exception -+ SIGKILL : constant := 9; -- kill (cannot be caught or ignored) -+ SIGBUS : constant := 10; -- bus error -+ SIGSEGV : constant := 11; -- segmentation violation -+ SIGSYS : constant := 12; -- bad argument to system call -+ SIGPIPE : constant := 13; -- write on a pipe with no one to read it -+ SIGALRM : constant := 14; -- alarm clock -+ SIGTERM : constant := 15; -- software termination signal from kill -+ SIGURG : constant := 16; -- urgent condition on IO channel -+ SIGSTOP : constant := 17; -- stop (cannot be caught or ignored) -+ SIGTSTP : constant := 18; -- user stop requested from tty -+ SIGCONT : constant := 19; -- stopped process has been continued -+ SIGCLD : constant := 20; -- alias for SIGCHLD -+ SIGCHLD : constant := 20; -- child status change -+ SIGTTIN : constant := 21; -- background tty read attempted -+ SIGTTOU : constant := 22; -- background tty write attempted -+ SIGIO : constant := 23; -- I/O possible (Solaris SIGPOLL alias) -+ SIGXCPU : constant := 24; -- CPU time limit exceeded -+ SIGXFSZ : constant := 25; -- filesize limit exceeded -+ SIGVTALRM : constant := 26; -- virtual timer expired -+ SIGPROF : constant := 27; -- profiling timer expired -+ SIGWINCH : constant := 28; -- window size change -+ SIGINFO : constant := 29; -- information request (BSD) -+ SIGUSR1 : constant := 30; -- user defined signal 1 -+ SIGUSR2 : constant := 31; -- user defined signal 2 -+ -+ SIGADAABORT : constant := SIGABRT; -+ -- Change this if you want to use another signal for task abort. -+ -- SIGTERM might be a good one. -+ -+ type Signal_Set is array (Natural range <>) of Signal; -+ -+ -- Interrupts that must be unmasked at all times. FreeBSD -+ -- pthreads will not allow an application to mask out any -+ -- interrupt needed by the threads library. -+ Unmasked : constant Signal_Set := -+ (SIGTRAP, SIGBUS, SIGTTIN, SIGTTOU, SIGTSTP); -+ -+ -- FreeBSD will uses SIGPROF for timing. Do not allow a -+ -- handler to attach to this signal. -+ Reserved : constant Signal_Set := (0 .. 0 => SIGPROF); -+ -+ type sigset_t is private; -+ -+ function sigaddset -+ (set : access sigset_t; -+ sig : Signal) return int; -+ pragma Import (C, sigaddset, "sigaddset"); -+ -+ function sigdelset -+ (set : access sigset_t; -+ sig : Signal) return int; -+ pragma Import (C, sigdelset, "sigdelset"); -+ -+ function sigfillset (set : access sigset_t) return int; -+ pragma Import (C, sigfillset, "sigfillset"); -+ -+ function sigismember -+ (set : access sigset_t; -+ sig : Signal) return int; -+ pragma Import (C, sigismember, "sigismember"); -+ -+ function sigemptyset (set : access sigset_t) return int; -+ pragma Import (C, sigemptyset, "sigemptyset"); -+ -+ -- sigcontext is architecture dependent, so define it private -+ type struct_sigcontext is private; -+ -+ type old_struct_sigaction is record -+ sa_handler : System.Address; -+ sa_mask : sigset_t; -+ sa_flags : int; -+ end record; -+ pragma Convention (C, old_struct_sigaction); -+ -+ type new_struct_sigaction is record -+ sa_handler : System.Address; -+ sa_flags : int; -+ sa_mask : sigset_t; -+ end record; -+ pragma Convention (C, new_struct_sigaction); -+ -+ subtype struct_sigaction is new_struct_sigaction; -+ type struct_sigaction_ptr is access all struct_sigaction; -+ -+ SIG_BLOCK : constant := 1; -+ SIG_UNBLOCK : constant := 2; -+ SIG_SETMASK : constant := 3; -+ -+ SIG_DFL : constant := 0; -+ SIG_IGN : constant := 1; -+ -+ SA_SIGINFO : constant := 16#0040#; -+ SA_ONSTACK : constant := 16#0001#; -+ -+ function sigaction -+ (sig : Signal; -+ act : struct_sigaction_ptr; -+ oact : struct_sigaction_ptr) return int; -+ pragma Import (C, sigaction, "sigaction"); -+ -+ ---------- -+ -- Time -- -+ ---------- -+ -+ Time_Slice_Supported : constant Boolean := True; -+ -- Indicates whether time slicing is supported (i.e SCHED_RR is supported) -+ -+ type timespec is private; -+ -+ function nanosleep (rqtp, rmtp : access timespec) return int; -+ pragma Import (C, nanosleep, "nanosleep"); -+ -+ type clockid_t is private; -+ -+ CLOCK_REALTIME : constant clockid_t; -+ -+ function clock_gettime -+ (clock_id : clockid_t; -+ tp : access timespec) -+ return int; -+ pragma Import (C, clock_gettime, "clock_gettime"); -+ -+ function To_Duration (TS : timespec) return Duration; -+ pragma Inline (To_Duration); -+ -+ function To_Timespec (D : Duration) return timespec; -+ pragma Inline (To_Timespec); -+ -+ type struct_timezone is record -+ tz_minuteswest : int; -+ tz_dsttime : int; -+ end record; -+ pragma Convention (C, struct_timezone); -+ -+ procedure usleep (useconds : unsigned_long); -+ pragma Import (C, usleep, "usleep"); -+ -+ ------------------------- -+ -- Priority Scheduling -- -+ ------------------------- -+ -+ SCHED_FIFO : constant := 1; -+ SCHED_OTHER : constant := 2; -+ SCHED_RR : constant := 3; -+ -+ function To_Target_Priority -+ (Prio : System.Any_Priority) return Interfaces.C.int; -+ -- Maps System.Any_Priority to a POSIX priority -+ -+ ------------- -+ -- Process -- -+ ------------- -+ -+ type pid_t is private; -+ -+ function kill (pid : pid_t; sig : Signal) return int; -+ pragma Import (C, kill, "kill"); -+ -+ function getpid return pid_t; -+ pragma Import (C, getpid, "getpid"); -+ -+ --------- -+ -- LWP -- -+ --------- -+ -+ function lwp_self return System.Address; -+ -- lwp_self does not exist on this thread library, revert to pthread_self -+ -- which is the closest approximation (with getpid). This function is -+ -- needed to share 7staprop.adb across POSIX-like targets. -+ pragma Import (C, lwp_self, "pthread_self"); -+ -+ ------------- -+ -- Threads -- -+ ------------- -+ -+ type Thread_Body is access -+ function (arg : System.Address) return System.Address; -+ pragma Convention (C, Thread_Body); -+ -+ function Thread_Body_Access is new -+ Ada.Unchecked_Conversion (System.Address, Thread_Body); -+ -+ type pthread_t is private; -+ subtype Thread_Id is pthread_t; -+ -+ type pthread_mutex_t is limited private; -+ type pthread_cond_t is limited private; -+ type pthread_attr_t is limited private; -+ type pthread_mutexattr_t is limited private; -+ type pthread_condattr_t is limited private; -+ type pthread_key_t is private; -+ -+ PTHREAD_CREATE_DETACHED : constant := 1; -+ PTHREAD_CREATE_JOINABLE : constant := 0; -+ -+ PTHREAD_SCOPE_PROCESS : constant := 0; -+ PTHREAD_SCOPE_SYSTEM : constant := 2; -+ -+ ----------- -+ -- Stack -- -+ ----------- -+ -+ type stack_t is record -+ ss_sp : System.Address; -+ ss_size : size_t; -+ ss_flags : int; -+ end record; -+ pragma Convention (C, stack_t); -+ -+ function sigaltstack -+ (ss : not null access stack_t; -+ oss : access stack_t) return int; -+ pragma Import (C, sigaltstack, "sigaltstack"); -+ -+ Alternate_Stack : aliased System.Address; -+ -- This is a dummy definition, never used (Alternate_Stack_Size is null) -+ -+ Alternate_Stack_Size : constant := 0; -+ -- No alternate signal stack is used on this platform -+ -+ Stack_Base_Available : constant Boolean := False; -+ -- Indicates whether the stack base is available on this target. This -+ -- allows us to share s-osinte.adb between all the FSU run time. Note that -+ -- this value can only be true if pthread_t has a complete definition that -+ -- corresponds exactly to the C header files. -+ -+ function Get_Stack_Base (thread : pthread_t) return Address; -+ pragma Inline (Get_Stack_Base); -+ -- returns the stack base of the specified thread. Only call this function -+ -- when Stack_Base_Available is True. -+ -+ function Get_Page_Size return size_t; -+ function Get_Page_Size return Address; -+ pragma Import (C, Get_Page_Size, "getpagesize"); -+ -- Returns the size of a page -+ -+ PROT_NONE : constant := 0; -+ PROT_READ : constant := 1; -+ PROT_WRITE : constant := 2; -+ PROT_EXEC : constant := 4; -+ PROT_ALL : constant := PROT_READ + PROT_WRITE + PROT_EXEC; -+ PROT_ON : constant := PROT_NONE; -+ PROT_OFF : constant := PROT_ALL; -+ -+ function mprotect (addr : Address; len : size_t; prot : int) return int; -+ pragma Import (C, mprotect); -+ -+ --------------------------------------- -+ -- Nonstandard Thread Initialization -- -+ --------------------------------------- -+ -+ -- FSU_THREADS requires pthread_init, which is nonstandard and this should -+ -- be invoked during the elaboration of s-taprop.adb. -+ -+ -- FreeBSD does not require this so we provide an empty Ada body -+ -+ procedure pthread_init; -+ -+ ------------------------- -+ -- POSIX.1c Section 3 -- -+ ------------------------- -+ -+ function sigwait -+ (set : access sigset_t; -+ sig : access Signal) return int; -+ pragma Import (C, sigwait, "sigwait"); -+ -+ function pthread_kill -+ (thread : pthread_t; -+ sig : Signal) return int; -+ pragma Import (C, pthread_kill, "pthread_kill"); -+ -+ function pthread_sigmask -+ (how : int; -+ set : access sigset_t; -+ oset : access sigset_t) return int; -+ pragma Import (C, pthread_sigmask, "pthread_sigmask"); -+ -+ -------------------------- -+ -- POSIX.1c Section 11 -- -+ -------------------------- -+ -+ function pthread_mutexattr_init -+ (attr : access pthread_mutexattr_t) return int; -+ pragma Import (C, pthread_mutexattr_init, "pthread_mutexattr_init"); -+ -+ function pthread_mutexattr_destroy -+ (attr : access pthread_mutexattr_t) return int; -+ pragma Import (C, pthread_mutexattr_destroy, "pthread_mutexattr_destroy"); -+ -+ function pthread_mutex_init -+ (mutex : access pthread_mutex_t; -+ attr : access pthread_mutexattr_t) return int; -+ pragma Import (C, pthread_mutex_init, "pthread_mutex_init"); -+ -+ function pthread_mutex_destroy (mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_mutex_destroy, "pthread_mutex_destroy"); -+ -+ function pthread_mutex_lock (mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_mutex_lock, "pthread_mutex_lock"); -+ -+ function pthread_mutex_unlock (mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_mutex_unlock, "pthread_mutex_unlock"); -+ -+ function pthread_condattr_init -+ (attr : access pthread_condattr_t) return int; -+ pragma Import (C, pthread_condattr_init, "pthread_condattr_init"); -+ -+ function pthread_condattr_destroy -+ (attr : access pthread_condattr_t) return int; -+ pragma Import (C, pthread_condattr_destroy, "pthread_condattr_destroy"); -+ -+ function pthread_cond_init -+ (cond : access pthread_cond_t; -+ attr : access pthread_condattr_t) return int; -+ pragma Import (C, pthread_cond_init, "pthread_cond_init"); -+ -+ function pthread_cond_destroy (cond : access pthread_cond_t) return int; -+ pragma Import (C, pthread_cond_destroy, "pthread_cond_destroy"); -+ -+ function pthread_cond_signal (cond : access pthread_cond_t) return int; -+ pragma Import (C, pthread_cond_signal, "pthread_cond_signal"); -+ -+ function pthread_cond_wait -+ (cond : access pthread_cond_t; -+ mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_cond_wait, "pthread_cond_wait"); -+ -+ function pthread_cond_timedwait -+ (cond : access pthread_cond_t; -+ mutex : access pthread_mutex_t; -+ abstime : access timespec) return int; -+ pragma Import (C, pthread_cond_timedwait, "pthread_cond_timedwait"); -+ -+ Relative_Timed_Wait : constant Boolean := False; -+ -- pthread_cond_timedwait requires an absolute delay time -+ -+ -------------------------- -+ -- POSIX.1c Section 13 -- -+ -------------------------- -+ -+ PTHREAD_PRIO_NONE : constant := 0; -+ PTHREAD_PRIO_PROTECT : constant := 2; -+ PTHREAD_PRIO_INHERIT : constant := 1; -+ -+ function pthread_mutexattr_setprotocol -+ (attr : access pthread_mutexattr_t; -+ protocol : int) return int; -+ pragma Import -+ (C, pthread_mutexattr_setprotocol, "pthread_mutexattr_setprotocol"); -+ -+ function pthread_mutexattr_getprotocol -+ (attr : access pthread_mutexattr_t; -+ protocol : access int) return int; -+ pragma Import -+ (C, pthread_mutexattr_getprotocol, "pthread_mutexattr_getprotocol"); -+ -+ function pthread_mutexattr_setprioceiling -+ (attr : access pthread_mutexattr_t; -+ prioceiling : int) return int; -+ pragma Import -+ (C, pthread_mutexattr_setprioceiling, -+ "pthread_mutexattr_setprioceiling"); -+ -+ function pthread_mutexattr_getprioceiling -+ (attr : access pthread_mutexattr_t; -+ prioceiling : access int) return int; -+ pragma Import -+ (C, pthread_mutexattr_getprioceiling, -+ "pthread_mutexattr_getprioceiling"); -+ -+ type struct_sched_param is record -+ sched_priority : int; -+ end record; -+ pragma Convention (C, struct_sched_param); -+ -+ function pthread_getschedparam -+ (thread : pthread_t; -+ policy : access int; -+ param : access struct_sched_param) return int; -+ pragma Import (C, pthread_getschedparam, "pthread_getschedparam"); -+ -+ function pthread_setschedparam -+ (thread : pthread_t; -+ policy : int; -+ param : access struct_sched_param) return int; -+ pragma Import (C, pthread_setschedparam, "pthread_setschedparam"); -+ -+ function pthread_attr_setscope -+ (attr : access pthread_attr_t; -+ contentionscope : int) return int; -+ pragma Import (C, pthread_attr_setscope, "pthread_attr_setscope"); -+ -+ function pthread_attr_getscope -+ (attr : access pthread_attr_t; -+ contentionscope : access int) return int; -+ pragma Import (C, pthread_attr_getscope, "pthread_attr_getscope"); -+ -+ function pthread_attr_setinheritsched -+ (attr : access pthread_attr_t; -+ inheritsched : int) return int; -+ pragma Import -+ (C, pthread_attr_setinheritsched, "pthread_attr_setinheritsched"); -+ -+ function pthread_attr_getinheritsched -+ (attr : access pthread_attr_t; -+ inheritsched : access int) return int; -+ pragma Import -+ (C, pthread_attr_getinheritsched, "pthread_attr_getinheritsched"); -+ -+ function pthread_attr_setschedpolicy -+ (attr : access pthread_attr_t; -+ policy : int) return int; -+ pragma Import (C, pthread_attr_setschedpolicy, -+ "pthread_attr_setschedpolicy"); -+ -+ function pthread_attr_getschedpolicy -+ (attr : access pthread_attr_t; -+ policy : access int) return int; -+ pragma Import (C, pthread_attr_getschedpolicy, -+ "pthread_attr_getschedpolicy"); -+ -+ function pthread_attr_setschedparam -+ (attr : access pthread_attr_t; -+ sched_param : int) return int; -+ pragma Import (C, pthread_attr_setschedparam, "pthread_attr_setschedparam"); -+ -+ function pthread_attr_getschedparam -+ (attr : access pthread_attr_t; -+ sched_param : access int) return int; -+ pragma Import (C, pthread_attr_getschedparam, "pthread_attr_getschedparam"); -+ -+ function sched_yield return int; -+ pragma Import (C, sched_yield, "pthread_yield"); -+ -+ -------------------------- -+ -- P1003.1c Section 16 -- -+ -------------------------- -+ -+ function pthread_attr_init (attributes : access pthread_attr_t) return int; -+ pragma Import (C, pthread_attr_init, "pthread_attr_init"); -+ -+ function pthread_attr_destroy -+ (attributes : access pthread_attr_t) return int; -+ pragma Import (C, pthread_attr_destroy, "pthread_attr_destroy"); -+ -+ function pthread_attr_setdetachstate -+ (attr : access pthread_attr_t; -+ detachstate : int) return int; -+ pragma Import -+ (C, pthread_attr_setdetachstate, "pthread_attr_setdetachstate"); -+ -+ function pthread_attr_getdetachstate -+ (attr : access pthread_attr_t; -+ detachstate : access int) return int; -+ pragma Import -+ (C, pthread_attr_getdetachstate, "pthread_attr_getdetachstate"); -+ -+ function pthread_attr_getstacksize -+ (attr : access pthread_attr_t; -+ stacksize : access size_t) return int; -+ pragma Import -+ (C, pthread_attr_getstacksize, "pthread_attr_getstacksize"); -+ -+ function pthread_attr_setstacksize -+ (attr : access pthread_attr_t; -+ stacksize : size_t) return int; -+ pragma Import -+ (C, pthread_attr_setstacksize, "pthread_attr_setstacksize"); -+ -+ function pthread_create -+ (thread : access pthread_t; -+ attributes : access pthread_attr_t; -+ start_routine : Thread_Body; -+ arg : System.Address) return int; -+ pragma Import (C, pthread_create, "pthread_create"); -+ -+ function pthread_detach (thread : pthread_t) return int; -+ pragma Import (C, pthread_detach, "pthread_detach"); -+ -+ procedure pthread_exit (status : System.Address); -+ pragma Import (C, pthread_exit, "pthread_exit"); -+ -+ function pthread_self return pthread_t; -+ pragma Import (C, pthread_self, "pthread_self"); -+ -+ -------------------------- -+ -- POSIX.1c Section 17 -- -+ -------------------------- -+ -+ function pthread_setspecific -+ (key : pthread_key_t; -+ value : System.Address) return int; -+ pragma Import (C, pthread_setspecific, "pthread_setspecific"); -+ -+ function pthread_getspecific (key : pthread_key_t) return System.Address; -+ pragma Import (C, pthread_getspecific, "pthread_getspecific"); -+ -+ type destructor_pointer is access procedure (arg : System.Address); -+ pragma Convention (C, destructor_pointer); -+ -+ function pthread_key_create -+ (key : access pthread_key_t; -+ destructor : destructor_pointer) return int; -+ pragma Import (C, pthread_key_create, "pthread_key_create"); -+ -+ ------------------------------------ -+ -- Non-portable Pthread Functions -- -+ ------------------------------------ -+ -+ function pthread_set_name_np -+ (thread : pthread_t; -+ name : System.Address) return int; -+ pragma Import (C, pthread_set_name_np, "pthread_set_name_np"); -+ -+private -+ -+ type sigset_t is array (1 .. 4) of unsigned; -+ -+ -- In FreeBSD the component sa_handler turns out to -+ -- be one a union type, and the selector is a macro: -+ -- #define sa_handler __sigaction_u._handler -+ -- #define sa_sigaction __sigaction_u._sigaction -+ -+ -- Should we add a signal_context type here ??? -+ -- How could it be done independent of the CPU architecture ??? -+ -- sigcontext type is opaque, so it is architecturally neutral. -+ -- It is always passed as an access type, so define it as an empty record -+ -- since the contents are not used anywhere. -+ -+ type struct_sigcontext is null record; -+ pragma Convention (C, struct_sigcontext); -+ -+ type pid_t is new int; -+ -+ type time_t is new int; -+ -+ type timespec is record -+ tv_sec : time_t; -+ tv_nsec : long; -+ end record; -+ pragma Convention (C, timespec); -+ -+ type clockid_t is new int; -+ CLOCK_REALTIME : constant clockid_t := 0; -+ -+ type pthread_t is new System.Address; -+ type pthread_attr_t is new System.Address; -+ type pthread_mutex_t is new System.Address; -+ type pthread_mutexattr_t is new System.Address; -+ type pthread_cond_t is new System.Address; -+ type pthread_condattr_t is new System.Address; -+ type pthread_key_t is new int; -+ -+end System.OS_Interface; ---- /dev/null -+++ gcc/ada/s-osinte-freebsd64.ads -@@ -0,0 +1,649 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS -- -+-- -- -+-- S Y S T E M . O S _ I N T E R F A C E -- -+-- -- -+-- S p e c -- -+-- -- -+-- Copyright (C) 1991-1994, Florida State University -- -+-- Copyright (C) 1995-2009, Free Software Foundation, Inc. -- -+-- -- -+-- GNARL is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 2, or (at your option) any later ver- -- -+-- sion. GNARL is distributed in the hope that it will be useful, but WITH- -- -+-- OUT 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 distributed with GNARL; see file COPYING. If not, write -- -+-- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, -- -+-- Boston, MA 02110-1301, USA. -- -+-- -- -+-- As a special exception, if other files instantiate generics from this -- -+-- unit, or you link this unit with other files to produce an executable, -- -+-- this unit does not by itself cause the resulting executable to be -- -+-- covered by the GNU General Public License. This exception does not -- -+-- however invalidate any other reasons why the executable file might be -- -+-- covered by the GNU Public License. -- -+-- -- -+-- GNARL was developed by the GNARL team at Florida State University. It is -- -+-- now maintained by Ada Core Technologies Inc. in cooperation with Florida -- -+-- State University (http://www.gnat.com). -- -+-- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- -+------------------------------------------------------------------------------ -+ -+-- This is the FreeBSD PTHREADS version of this package -+ -+-- This package encapsulates all direct interfaces to OS services -+-- that are needed by the tasking run-time (libgnarl). -+ -+-- PLEASE DO NOT add any with-clauses to this package or remove the pragma -+-- Preelaborate. This package is designed to be a bottom-level (leaf) package. -+ -+with Ada.Unchecked_Conversion; -+ -+with Interfaces.C; -+ -+package System.OS_Interface is -+ pragma Preelaborate; -+ -+ pragma Linker_Options ("-pthread"); -+ -+ subtype int is Interfaces.C.int; -+ subtype short is Interfaces.C.short; -+ subtype long is Interfaces.C.long; -+ subtype unsigned is Interfaces.C.unsigned; -+ subtype unsigned_short is Interfaces.C.unsigned_short; -+ subtype unsigned_long is Interfaces.C.unsigned_long; -+ subtype unsigned_char is Interfaces.C.unsigned_char; -+ subtype plain_char is Interfaces.C.plain_char; -+ subtype size_t is Interfaces.C.size_t; -+ subtype int64_t is Interfaces.Integer_64; -+ -+ ----------- -+ -- Errno -- -+ ----------- -+ -+ function Errno return int; -+ pragma Inline (Errno); -+ -+ EAGAIN : constant := 35; -+ EINTR : constant := 4; -+ EINVAL : constant := 22; -+ ENOMEM : constant := 12; -+ ETIMEDOUT : constant := 60; -+ -+ ------------- -+ -- Signals -- -+ ------------- -+ -+ Max_Interrupt : constant := 31; -+ type Signal is new int range 0 .. Max_Interrupt; -+ for Signal'Size use int'Size; -+ -+ SIGHUP : constant := 1; -- hangup -+ SIGINT : constant := 2; -- interrupt (rubout) -+ SIGQUIT : constant := 3; -- quit (ASCD FS) -+ SIGILL : constant := 4; -- illegal instruction (not reset) -+ SIGTRAP : constant := 5; -- trace trap (not reset) -+ SIGIOT : constant := 6; -- IOT instruction -+ SIGABRT : constant := 6; -- used by abort, replace SIGIOT in the future -+ SIGEMT : constant := 7; -- EMT instruction -+ SIGFPE : constant := 8; -- floating point exception -+ SIGKILL : constant := 9; -- kill (cannot be caught or ignored) -+ SIGBUS : constant := 10; -- bus error -+ SIGSEGV : constant := 11; -- segmentation violation -+ SIGSYS : constant := 12; -- bad argument to system call -+ SIGPIPE : constant := 13; -- write on a pipe with no one to read it -+ SIGALRM : constant := 14; -- alarm clock -+ SIGTERM : constant := 15; -- software termination signal from kill -+ SIGURG : constant := 16; -- urgent condition on IO channel -+ SIGSTOP : constant := 17; -- stop (cannot be caught or ignored) -+ SIGTSTP : constant := 18; -- user stop requested from tty -+ SIGCONT : constant := 19; -- stopped process has been continued -+ SIGCLD : constant := 20; -- alias for SIGCHLD -+ SIGCHLD : constant := 20; -- child status change -+ SIGTTIN : constant := 21; -- background tty read attempted -+ SIGTTOU : constant := 22; -- background tty write attempted -+ SIGIO : constant := 23; -- I/O possible (Solaris SIGPOLL alias) -+ SIGXCPU : constant := 24; -- CPU time limit exceeded -+ SIGXFSZ : constant := 25; -- filesize limit exceeded -+ SIGVTALRM : constant := 26; -- virtual timer expired -+ SIGPROF : constant := 27; -- profiling timer expired -+ SIGWINCH : constant := 28; -- window size change -+ SIGINFO : constant := 29; -- information request (BSD) -+ SIGUSR1 : constant := 30; -- user defined signal 1 -+ SIGUSR2 : constant := 31; -- user defined signal 2 -+ -+ SIGADAABORT : constant := SIGABRT; -+ -- Change this if you want to use another signal for task abort. -+ -- SIGTERM might be a good one. -+ -+ type Signal_Set is array (Natural range <>) of Signal; -+ -+ -- Interrupts that must be unmasked at all times. FreeBSD -+ -- pthreads will not allow an application to mask out any -+ -- interrupt needed by the threads library. -+ Unmasked : constant Signal_Set := -+ (SIGTRAP, SIGBUS, SIGTTIN, SIGTTOU, SIGTSTP); -+ -+ -- FreeBSD will uses SIGPROF for timing. Do not allow a -+ -- handler to attach to this signal. -+ Reserved : constant Signal_Set := (0 .. 0 => SIGPROF); -+ -+ type sigset_t is private; -+ -+ function sigaddset -+ (set : access sigset_t; -+ sig : Signal) return int; -+ pragma Import (C, sigaddset, "sigaddset"); -+ -+ function sigdelset -+ (set : access sigset_t; -+ sig : Signal) return int; -+ pragma Import (C, sigdelset, "sigdelset"); -+ -+ function sigfillset (set : access sigset_t) return int; -+ pragma Import (C, sigfillset, "sigfillset"); -+ -+ function sigismember -+ (set : access sigset_t; -+ sig : Signal) return int; -+ pragma Import (C, sigismember, "sigismember"); -+ -+ function sigemptyset (set : access sigset_t) return int; -+ pragma Import (C, sigemptyset, "sigemptyset"); -+ -+ -- sigcontext is architecture dependent, so define it private -+ type struct_sigcontext is private; -+ -+ type old_struct_sigaction is record -+ sa_handler : System.Address; -+ sa_mask : sigset_t; -+ sa_flags : int; -+ end record; -+ pragma Convention (C, old_struct_sigaction); -+ -+ type new_struct_sigaction is record -+ sa_handler : System.Address; -+ sa_flags : int; -+ sa_mask : sigset_t; -+ end record; -+ pragma Convention (C, new_struct_sigaction); -+ -+ subtype struct_sigaction is new_struct_sigaction; -+ type struct_sigaction_ptr is access all struct_sigaction; -+ -+ SIG_BLOCK : constant := 1; -+ SIG_UNBLOCK : constant := 2; -+ SIG_SETMASK : constant := 3; -+ -+ SIG_DFL : constant := 0; -+ SIG_IGN : constant := 1; -+ -+ SA_SIGINFO : constant := 16#0040#; -+ SA_ONSTACK : constant := 16#0001#; -+ -+ function sigaction -+ (sig : Signal; -+ act : struct_sigaction_ptr; -+ oact : struct_sigaction_ptr) return int; -+ pragma Import (C, sigaction, "sigaction"); -+ -+ ---------- -+ -- Time -- -+ ---------- -+ -+ Time_Slice_Supported : constant Boolean := True; -+ -- Indicates whether time slicing is supported (i.e SCHED_RR is supported) -+ -+ type timespec is private; -+ -+ function nanosleep (rqtp, rmtp : access timespec) return int; -+ pragma Import (C, nanosleep, "nanosleep"); -+ -+ type clockid_t is private; -+ -+ CLOCK_REALTIME : constant clockid_t; -+ -+ function clock_gettime -+ (clock_id : clockid_t; -+ tp : access timespec) -+ return int; -+ pragma Import (C, clock_gettime, "clock_gettime"); -+ -+ function To_Duration (TS : timespec) return Duration; -+ pragma Inline (To_Duration); -+ -+ function To_Timespec (D : Duration) return timespec; -+ pragma Inline (To_Timespec); -+ -+ type struct_timezone is record -+ tz_minuteswest : int; -+ tz_dsttime : int; -+ end record; -+ pragma Convention (C, struct_timezone); -+ -+ procedure usleep (useconds : unsigned_long); -+ pragma Import (C, usleep, "usleep"); -+ -+ ------------------------- -+ -- Priority Scheduling -- -+ ------------------------- -+ -+ SCHED_FIFO : constant := 1; -+ SCHED_OTHER : constant := 2; -+ SCHED_RR : constant := 3; -+ -+ function To_Target_Priority -+ (Prio : System.Any_Priority) return Interfaces.C.int; -+ -- Maps System.Any_Priority to a POSIX priority -+ -+ ------------- -+ -- Process -- -+ ------------- -+ -+ type pid_t is private; -+ -+ function kill (pid : pid_t; sig : Signal) return int; -+ pragma Import (C, kill, "kill"); -+ -+ function getpid return pid_t; -+ pragma Import (C, getpid, "getpid"); -+ -+ --------- -+ -- LWP -- -+ --------- -+ -+ function lwp_self return System.Address; -+ -- lwp_self does not exist on this thread library, revert to pthread_self -+ -- which is the closest approximation (with getpid). This function is -+ -- needed to share 7staprop.adb across POSIX-like targets. -+ pragma Import (C, lwp_self, "pthread_self"); -+ -+ ------------- -+ -- Threads -- -+ ------------- -+ -+ type Thread_Body is access -+ function (arg : System.Address) return System.Address; -+ pragma Convention (C, Thread_Body); -+ -+ function Thread_Body_Access is new -+ Ada.Unchecked_Conversion (System.Address, Thread_Body); -+ -+ type pthread_t is private; -+ subtype Thread_Id is pthread_t; -+ -+ type pthread_mutex_t is limited private; -+ type pthread_cond_t is limited private; -+ type pthread_attr_t is limited private; -+ type pthread_mutexattr_t is limited private; -+ type pthread_condattr_t is limited private; -+ type pthread_key_t is private; -+ -+ PTHREAD_CREATE_DETACHED : constant := 1; -+ PTHREAD_CREATE_JOINABLE : constant := 0; -+ -+ PTHREAD_SCOPE_PROCESS : constant := 0; -+ PTHREAD_SCOPE_SYSTEM : constant := 2; -+ -+ ----------- -+ -- Stack -- -+ ----------- -+ -+ type stack_t is record -+ ss_sp : System.Address; -+ ss_size : size_t; -+ ss_flags : int; -+ end record; -+ pragma Convention (C, stack_t); -+ -+ function sigaltstack -+ (ss : not null access stack_t; -+ oss : access stack_t) return int; -+ pragma Import (C, sigaltstack, "sigaltstack"); -+ -+ Alternate_Stack : aliased System.Address; -+ -- This is a dummy definition, never used (Alternate_Stack_Size is null) -+ -+ Alternate_Stack_Size : constant := 0; -+ -- No alternate signal stack is used on this platform -+ -+ Stack_Base_Available : constant Boolean := False; -+ -- Indicates whether the stack base is available on this target. This -+ -- allows us to share s-osinte.adb between all the FSU run time. Note that -+ -- this value can only be true if pthread_t has a complete definition that -+ -- corresponds exactly to the C header files. -+ -+ function Get_Stack_Base (thread : pthread_t) return Address; -+ pragma Inline (Get_Stack_Base); -+ -- returns the stack base of the specified thread. Only call this function -+ -- when Stack_Base_Available is True. -+ -+ function Get_Page_Size return size_t; -+ function Get_Page_Size return Address; -+ pragma Import (C, Get_Page_Size, "getpagesize"); -+ -- Returns the size of a page -+ -+ PROT_NONE : constant := 0; -+ PROT_READ : constant := 1; -+ PROT_WRITE : constant := 2; -+ PROT_EXEC : constant := 4; -+ PROT_ALL : constant := PROT_READ + PROT_WRITE + PROT_EXEC; -+ PROT_ON : constant := PROT_NONE; -+ PROT_OFF : constant := PROT_ALL; -+ -+ function mprotect (addr : Address; len : size_t; prot : int) return int; -+ pragma Import (C, mprotect); -+ -+ --------------------------------------- -+ -- Nonstandard Thread Initialization -- -+ --------------------------------------- -+ -+ -- FSU_THREADS requires pthread_init, which is nonstandard and this should -+ -- be invoked during the elaboration of s-taprop.adb. -+ -+ -- FreeBSD does not require this so we provide an empty Ada body -+ -+ procedure pthread_init; -+ -+ ------------------------- -+ -- POSIX.1c Section 3 -- -+ ------------------------- -+ -+ function sigwait -+ (set : access sigset_t; -+ sig : access Signal) return int; -+ pragma Import (C, sigwait, "sigwait"); -+ -+ function pthread_kill -+ (thread : pthread_t; -+ sig : Signal) return int; -+ pragma Import (C, pthread_kill, "pthread_kill"); -+ -+ function pthread_sigmask -+ (how : int; -+ set : access sigset_t; -+ oset : access sigset_t) return int; -+ pragma Import (C, pthread_sigmask, "pthread_sigmask"); -+ -+ -------------------------- -+ -- POSIX.1c Section 11 -- -+ -------------------------- -+ -+ function pthread_mutexattr_init -+ (attr : access pthread_mutexattr_t) return int; -+ pragma Import (C, pthread_mutexattr_init, "pthread_mutexattr_init"); -+ -+ function pthread_mutexattr_destroy -+ (attr : access pthread_mutexattr_t) return int; -+ pragma Import (C, pthread_mutexattr_destroy, "pthread_mutexattr_destroy"); -+ -+ function pthread_mutex_init -+ (mutex : access pthread_mutex_t; -+ attr : access pthread_mutexattr_t) return int; -+ pragma Import (C, pthread_mutex_init, "pthread_mutex_init"); -+ -+ function pthread_mutex_destroy (mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_mutex_destroy, "pthread_mutex_destroy"); -+ -+ function pthread_mutex_lock (mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_mutex_lock, "pthread_mutex_lock"); -+ -+ function pthread_mutex_unlock (mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_mutex_unlock, "pthread_mutex_unlock"); -+ -+ function pthread_condattr_init -+ (attr : access pthread_condattr_t) return int; -+ pragma Import (C, pthread_condattr_init, "pthread_condattr_init"); -+ -+ function pthread_condattr_destroy -+ (attr : access pthread_condattr_t) return int; -+ pragma Import (C, pthread_condattr_destroy, "pthread_condattr_destroy"); -+ -+ function pthread_cond_init -+ (cond : access pthread_cond_t; -+ attr : access pthread_condattr_t) return int; -+ pragma Import (C, pthread_cond_init, "pthread_cond_init"); -+ -+ function pthread_cond_destroy (cond : access pthread_cond_t) return int; -+ pragma Import (C, pthread_cond_destroy, "pthread_cond_destroy"); -+ -+ function pthread_cond_signal (cond : access pthread_cond_t) return int; -+ pragma Import (C, pthread_cond_signal, "pthread_cond_signal"); -+ -+ function pthread_cond_wait -+ (cond : access pthread_cond_t; -+ mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_cond_wait, "pthread_cond_wait"); -+ -+ function pthread_cond_timedwait -+ (cond : access pthread_cond_t; -+ mutex : access pthread_mutex_t; -+ abstime : access timespec) return int; -+ pragma Import (C, pthread_cond_timedwait, "pthread_cond_timedwait"); -+ -+ Relative_Timed_Wait : constant Boolean := False; -+ -- pthread_cond_timedwait requires an absolute delay time -+ -+ -------------------------- -+ -- POSIX.1c Section 13 -- -+ -------------------------- -+ -+ PTHREAD_PRIO_NONE : constant := 0; -+ PTHREAD_PRIO_PROTECT : constant := 2; -+ PTHREAD_PRIO_INHERIT : constant := 1; -+ -+ function pthread_mutexattr_setprotocol -+ (attr : access pthread_mutexattr_t; -+ protocol : int) return int; -+ pragma Import -+ (C, pthread_mutexattr_setprotocol, "pthread_mutexattr_setprotocol"); -+ -+ function pthread_mutexattr_getprotocol -+ (attr : access pthread_mutexattr_t; -+ protocol : access int) return int; -+ pragma Import -+ (C, pthread_mutexattr_getprotocol, "pthread_mutexattr_getprotocol"); -+ -+ function pthread_mutexattr_setprioceiling -+ (attr : access pthread_mutexattr_t; -+ prioceiling : int) return int; -+ pragma Import -+ (C, pthread_mutexattr_setprioceiling, -+ "pthread_mutexattr_setprioceiling"); -+ -+ function pthread_mutexattr_getprioceiling -+ (attr : access pthread_mutexattr_t; -+ prioceiling : access int) return int; -+ pragma Import -+ (C, pthread_mutexattr_getprioceiling, -+ "pthread_mutexattr_getprioceiling"); -+ -+ type struct_sched_param is record -+ sched_priority : int; -+ end record; -+ pragma Convention (C, struct_sched_param); -+ -+ function pthread_getschedparam -+ (thread : pthread_t; -+ policy : access int; -+ param : access struct_sched_param) return int; -+ pragma Import (C, pthread_getschedparam, "pthread_getschedparam"); -+ -+ function pthread_setschedparam -+ (thread : pthread_t; -+ policy : int; -+ param : access struct_sched_param) return int; -+ pragma Import (C, pthread_setschedparam, "pthread_setschedparam"); -+ -+ function pthread_attr_setscope -+ (attr : access pthread_attr_t; -+ contentionscope : int) return int; -+ pragma Import (C, pthread_attr_setscope, "pthread_attr_setscope"); -+ -+ function pthread_attr_getscope -+ (attr : access pthread_attr_t; -+ contentionscope : access int) return int; -+ pragma Import (C, pthread_attr_getscope, "pthread_attr_getscope"); -+ -+ function pthread_attr_setinheritsched -+ (attr : access pthread_attr_t; -+ inheritsched : int) return int; -+ pragma Import -+ (C, pthread_attr_setinheritsched, "pthread_attr_setinheritsched"); -+ -+ function pthread_attr_getinheritsched -+ (attr : access pthread_attr_t; -+ inheritsched : access int) return int; -+ pragma Import -+ (C, pthread_attr_getinheritsched, "pthread_attr_getinheritsched"); -+ -+ function pthread_attr_setschedpolicy -+ (attr : access pthread_attr_t; -+ policy : int) return int; -+ pragma Import (C, pthread_attr_setschedpolicy, -+ "pthread_attr_setschedpolicy"); -+ -+ function pthread_attr_getschedpolicy -+ (attr : access pthread_attr_t; -+ policy : access int) return int; -+ pragma Import (C, pthread_attr_getschedpolicy, -+ "pthread_attr_getschedpolicy"); -+ -+ function pthread_attr_setschedparam -+ (attr : access pthread_attr_t; -+ sched_param : int) return int; -+ pragma Import (C, pthread_attr_setschedparam, "pthread_attr_setschedparam"); -+ -+ function pthread_attr_getschedparam -+ (attr : access pthread_attr_t; -+ sched_param : access int) return int; -+ pragma Import (C, pthread_attr_getschedparam, "pthread_attr_getschedparam"); -+ -+ function sched_yield return int; -+ pragma Import (C, sched_yield, "pthread_yield"); -+ -+ -------------------------- -+ -- P1003.1c Section 16 -- -+ -------------------------- -+ -+ function pthread_attr_init (attributes : access pthread_attr_t) return int; -+ pragma Import (C, pthread_attr_init, "pthread_attr_init"); -+ -+ function pthread_attr_destroy -+ (attributes : access pthread_attr_t) return int; -+ pragma Import (C, pthread_attr_destroy, "pthread_attr_destroy"); -+ -+ function pthread_attr_setdetachstate -+ (attr : access pthread_attr_t; -+ detachstate : int) return int; -+ pragma Import -+ (C, pthread_attr_setdetachstate, "pthread_attr_setdetachstate"); -+ -+ function pthread_attr_getdetachstate -+ (attr : access pthread_attr_t; -+ detachstate : access int) return int; -+ pragma Import -+ (C, pthread_attr_getdetachstate, "pthread_attr_getdetachstate"); -+ -+ function pthread_attr_getstacksize -+ (attr : access pthread_attr_t; -+ stacksize : access size_t) return int; -+ pragma Import -+ (C, pthread_attr_getstacksize, "pthread_attr_getstacksize"); -+ -+ function pthread_attr_setstacksize -+ (attr : access pthread_attr_t; -+ stacksize : size_t) return int; -+ pragma Import -+ (C, pthread_attr_setstacksize, "pthread_attr_setstacksize"); -+ -+ function pthread_create -+ (thread : access pthread_t; -+ attributes : access pthread_attr_t; -+ start_routine : Thread_Body; -+ arg : System.Address) return int; -+ pragma Import (C, pthread_create, "pthread_create"); -+ -+ function pthread_detach (thread : pthread_t) return int; -+ pragma Import (C, pthread_detach, "pthread_detach"); -+ -+ procedure pthread_exit (status : System.Address); -+ pragma Import (C, pthread_exit, "pthread_exit"); -+ -+ function pthread_self return pthread_t; -+ pragma Import (C, pthread_self, "pthread_self"); -+ -+ -------------------------- -+ -- POSIX.1c Section 17 -- -+ -------------------------- -+ -+ function pthread_setspecific -+ (key : pthread_key_t; -+ value : System.Address) return int; -+ pragma Import (C, pthread_setspecific, "pthread_setspecific"); -+ -+ function pthread_getspecific (key : pthread_key_t) return System.Address; -+ pragma Import (C, pthread_getspecific, "pthread_getspecific"); -+ -+ type destructor_pointer is access procedure (arg : System.Address); -+ pragma Convention (C, destructor_pointer); -+ -+ function pthread_key_create -+ (key : access pthread_key_t; -+ destructor : destructor_pointer) return int; -+ pragma Import (C, pthread_key_create, "pthread_key_create"); -+ -+ ------------------------------------ -+ -- Non-portable Pthread Functions -- -+ ------------------------------------ -+ -+ function pthread_set_name_np -+ (thread : pthread_t; -+ name : System.Address) return int; -+ pragma Import (C, pthread_set_name_np, "pthread_set_name_np"); -+ -+private -+ -+ type sigset_t is array (1 .. 4) of unsigned; -+ -+ -- In FreeBSD the component sa_handler turns out to -+ -- be one a union type, and the selector is a macro: -+ -- #define sa_handler __sigaction_u._handler -+ -- #define sa_sigaction __sigaction_u._sigaction -+ -+ -- Should we add a signal_context type here ??? -+ -- How could it be done independent of the CPU architecture ??? -+ -- sigcontext type is opaque, so it is architecturally neutral. -+ -- It is always passed as an access type, so define it as an empty record -+ -- since the contents are not used anywhere. -+ -+ type struct_sigcontext is null record; -+ pragma Convention (C, struct_sigcontext); -+ -+ type pid_t is new int; -+ -+ type time_t is new int64_t; -+ -+ type timespec is record -+ tv_sec : time_t; -+ tv_nsec : long; -+ end record; -+ pragma Convention (C, timespec); -+ -+ type clockid_t is new int; -+ CLOCK_REALTIME : constant clockid_t := 0; -+ -+ type pthread_t is new System.Address; -+ type pthread_attr_t is new System.Address; -+ type pthread_mutex_t is new System.Address; -+ type pthread_mutexattr_t is new System.Address; -+ type pthread_cond_t is new System.Address; -+ type pthread_condattr_t is new System.Address; -+ type pthread_key_t is new int; -+ -+end System.OS_Interface; ---- /dev/null -+++ gcc/ada/s-osinte-netbsd.adb -@@ -0,0 +1,141 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS -- -+-- -- -+-- S Y S T E M . O S _ I N T E R F A C E -- -+-- -- -+-- B o d y -- -+-- -- -+-- Copyright (C) 1991-2009, Free Software Foundation, Inc. -- -+-- -- -+-- GNARL is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 3, or (at your option) any later ver- -- -+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- -+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- -+-- or FITNESS FOR A PARTICULAR PURPOSE. -- -+-- -- -+-- As a special exception under Section 7 of GPL version 3, you are granted -- -+-- additional permissions described in the GCC Runtime Library Exception, -- -+-- version 3.1, as published by the Free Software Foundation. -- -+-- -- -+-- You should have received a copy of the GNU General Public License and -- -+-- a copy of the GCC Runtime Library Exception along with this program; -- -+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- -+-- <http://www.gnu.org/licenses/>. -- -+-- -- -+-- GNARL was developed by the GNARL team at Florida State University. It is -- -+-- now maintained by Ada Core Technologies Inc. in cooperation with Florida -- -+-- State University (http://www.gnat.com). -- -+-- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- -+------------------------------------------------------------------------------ -+ -+-- This is the NetBSD THREADS version of this package -+ -+with Interfaces.C; use Interfaces.C; -+ -+package body System.OS_Interface is -+ -+ ----------- -+ -- Errno -- -+ ----------- -+ -+ function Errno return int is -+ type int_ptr is access all int; -+ -+ function internal_errno return int_ptr; -+ pragma Import (C, internal_errno, "__errno"); -+ -+ begin -+ return (internal_errno.all); -+ end Errno; -+ -+ -------------------- -+ -- Get_Stack_Base -- -+ -------------------- -+ -+ function Get_Stack_Base (thread : pthread_t) return Address is -+ pragma Unreferenced (thread); -+ begin -+ return Null_Address; -+ end Get_Stack_Base; -+ -+ ------------------ -+ -- pthread_init -- -+ ------------------ -+ -+ procedure pthread_init is -+ begin -+ null; -+ end pthread_init; -+ -+ ----------------------------------- -+ -- pthread_mutexattr_setprotocol -- -+ ----------------------------------- -+ -+ function pthread_mutexattr_setprotocol -+ (attr : access pthread_mutexattr_t; -+ protocol : int) return int is -+ pragma Unreferenced (attr, protocol); -+ begin -+ return 0; -+ end pthread_mutexattr_setprotocol; -+ -+ -------------------------------------- -+ -- pthread_mutexattr_setprioceiling -- -+ -------------------------------------- -+ -+ function pthread_mutexattr_setprioceiling -+ (attr : access pthread_mutexattr_t; -+ prioceiling : int) return int is -+ pragma Unreferenced (attr, prioceiling); -+ begin -+ return 0; -+ end pthread_mutexattr_setprioceiling; -+ -+ ----------------- -+ -- To_Duration -- -+ ----------------- -+ -+ function To_Duration (TS : timespec) return Duration is -+ begin -+ return Duration (TS.tv_sec) + Duration (TS.tv_nsec) / 10#1#E9; -+ end To_Duration; -+ -+ ------------------------ -+ -- To_Target_Priority -- -+ ------------------------ -+ -+ function To_Target_Priority -+ (Prio : System.Any_Priority) return Interfaces.C.int -+ is -+ begin -+ return Interfaces.C.int (Prio); -+ end To_Target_Priority; -+ -+ ----------------- -+ -- To_Timespec -- -+ ----------------- -+ -+ function To_Timespec (D : Duration) return timespec is -+ S : time_t; -+ F : Duration; -+ -+ begin -+ S := time_t (Long_Long_Integer (D)); -+ F := D - Duration (S); -+ -+ -- If F has negative value due to a round-up, adjust for positive F -+ -- value. -+ -+ if F < 0.0 then -+ S := S - 1; -+ F := F + 1.0; -+ end if; -+ -+ return timespec'(tv_sec => S, -+ tv_nsec => long (Long_Long_Integer (F * 10#1#E9))); -+ end To_Timespec; -+ -+end System.OS_Interface; ---- /dev/null -+++ gcc/ada/s-osinte-netbsd.ads -@@ -0,0 +1,674 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS -- -+-- -- -+-- S Y S T E M . O S _ I N T E R F A C E -- -+-- -- -+-- S p e c -- -+-- -- -+-- Copyright (C) 1991-1994, Florida State University -- -+-- Copyright (C) 1995-2009, Free Software Foundation, Inc. -- -+-- -- -+-- GNARL is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 2, or (at your option) any later ver- -- -+-- sion. GNARL is distributed in the hope that it will be useful, but WITH- -- -+-- OUT 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 distributed with GNARL; see file COPYING. If not, write -- -+-- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, -- -+-- Boston, MA 02110-1301, USA. -- -+-- -- -+-- As a special exception, if other files instantiate generics from this -- -+-- unit, or you link this unit with other files to produce an executable, -- -+-- this unit does not by itself cause the resulting executable to be -- -+-- covered by the GNU General Public License. This exception does not -- -+-- however invalidate any other reasons why the executable file might be -- -+-- covered by the GNU Public License. -- -+-- -- -+-- GNARL was developed by the GNARL team at Florida State University. It is -- -+-- now maintained by Ada Core Technologies Inc. in cooperation with Florida -- -+-- State University (http://www.gnat.com). -- -+-- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- -+------------------------------------------------------------------------------ -+ -+-- This is the NetBSD PTHREADS version of this package. -+-- It is based off of the FreeBSD PTHREADS as of 4.2.3. -+ -+-- This package encapsulates all direct interfaces to OS services -+-- that are needed by the tasking run-time (libgnarl). -+ -+-- PLEASE DO NOT add any with-clauses to this package or remove the pragma -+-- Preelaborate. This package is designed to be a bottom-level (leaf) package. -+ -+with Ada.Unchecked_Conversion; -+ -+with Interfaces.C; -+ -+package System.OS_Interface is -+ pragma Preelaborate; -+ -+ pragma Linker_Options ("-pthread"); -+ -+ subtype int is Interfaces.C.int; -+ subtype short is Interfaces.C.short; -+ subtype long is Interfaces.C.long; -+ subtype unsigned is Interfaces.C.unsigned; -+ subtype unsigned_short is Interfaces.C.unsigned_short; -+ subtype unsigned_long is Interfaces.C.unsigned_long; -+ subtype unsigned_char is Interfaces.C.unsigned_char; -+ subtype plain_char is Interfaces.C.plain_char; -+ subtype size_t is Interfaces.C.size_t; -+ -+ ----------- -+ -- Errno -- -+ ----------- -+ -+ function Errno return int; -+ pragma Inline (Errno); -+ -+ EAGAIN : constant := 35; -+ EINTR : constant := 4; -+ EINVAL : constant := 22; -+ ENOMEM : constant := 12; -+ ETIMEDOUT : constant := 60; -+ -+ ------------- -+ -- Signals -- -+ ------------- -+ -+ Max_Interrupt : constant := 63; -+ type Signal is new int range 0 .. Max_Interrupt; -+ for Signal'Size use int'Size; -+ -+ SIGHUP : constant := 1; -- hangup -+ SIGINT : constant := 2; -- interrupt (rubout) -+ SIGQUIT : constant := 3; -- quit (ASCD FS) -+ SIGILL : constant := 4; -- illegal instruction (not reset) -+ SIGTRAP : constant := 5; -- trace trap (not reset) -+ SIGIOT : constant := 6; -- IOT instruction -+ SIGABRT : constant := 6; -- used by abort, replace SIGIOT in the future -+ SIGEMT : constant := 7; -- EMT instruction -+ SIGFPE : constant := 8; -- floating point exception -+ SIGKILL : constant := 9; -- kill (cannot be caught or ignored) -+ SIGBUS : constant := 10; -- bus error -+ SIGSEGV : constant := 11; -- segmentation violation -+ SIGSYS : constant := 12; -- bad argument to system call -+ SIGPIPE : constant := 13; -- write on a pipe with no one to read it -+ SIGALRM : constant := 14; -- alarm clock -+ SIGTERM : constant := 15; -- software termination signal from kill -+ SIGURG : constant := 16; -- urgent condition on IO channel -+ SIGSTOP : constant := 17; -- stop (cannot be caught or ignored) -+ SIGTSTP : constant := 18; -- user stop requested from tty -+ SIGCONT : constant := 19; -- stopped process has been continued -+ SIGCLD : constant := 20; -- alias for SIGCHLD -+ SIGCHLD : constant := 20; -- child status change -+ SIGTTIN : constant := 21; -- background tty read attempted -+ SIGTTOU : constant := 22; -- background tty write attempted -+ SIGIO : constant := 23; -- I/O possible (Solaris SIGPOLL alias) -+ SIGXCPU : constant := 24; -- CPU time limit exceeded -+ SIGXFSZ : constant := 25; -- filesize limit exceeded -+ SIGVTALRM : constant := 26; -- virtual timer expired -+ SIGPROF : constant := 27; -- profiling timer expired -+ SIGWINCH : constant := 28; -- window size change -+ SIGINFO : constant := 29; -- information request (BSD) -+ SIGUSR1 : constant := 30; -- user defined signal 1 -+ SIGUSR2 : constant := 31; -- user defined signal 2 -+ SIGPWR : constant := 32; -- power fail/restart (not reset when caught) -+ -+ SIGADAABORT : constant := SIGABRT; -+ -- Change this if you want to use another signal for task abort. -+ -- SIGTERM might be a good one. -+ -+ type Signal_Set is array (Natural range <>) of Signal; -+ -+ -- Interrupts that must be unmasked at all times. NetBSD -+ -- pthreads will not allow an application to mask out any -+ -- interrupt needed by the threads library. -+ Unmasked : constant Signal_Set := -+ (SIGTRAP, SIGBUS, SIGTTIN, SIGTTOU, SIGTSTP); -+ -+ -- NetBSD will uses SIGPROF for timing. Do not allow a -+ -- handler to attach to this signal. -+ Reserved : constant Signal_Set := (0 .. 0 => SIGPROF); -+ -+ type sigset_t is private; -+ -+ function sigaddset -+ (set : access sigset_t; -+ sig : Signal) return int; -+ pragma Import (C, sigaddset, "__sigaddset14"); -+ -+ function sigdelset -+ (set : access sigset_t; -+ sig : Signal) return int; -+ pragma Import (C, sigdelset, "__sigdelset14"); -+ -+ function sigfillset (set : access sigset_t) return int; -+ pragma Import (C, sigfillset, "__sigfillset14"); -+ -+ function sigismember -+ (set : access sigset_t; -+ sig : Signal) return int; -+ pragma Import (C, sigismember, "__sigismember14"); -+ -+ function sigemptyset (set : access sigset_t) return int; -+ pragma Import (C, sigemptyset, "__sigemptyset14"); -+ -+ -- sigcontext is architecture dependent, so define it private -+ type struct_sigcontext is private; -+ -+ type old_struct_sigaction is record -+ sa_handler : System.Address; -+ sa_mask : sigset_t; -+ sa_flags : int; -+ end record; -+ pragma Convention (C, old_struct_sigaction); -+ -+ type new_struct_sigaction is record -+ sa_handler : System.Address; -+ sa_flags : int; -+ sa_mask : sigset_t; -+ end record; -+ pragma Convention (C, new_struct_sigaction); -+ -+ subtype struct_sigaction is new_struct_sigaction; -+ type struct_sigaction_ptr is access all struct_sigaction; -+ -+ SIG_BLOCK : constant := 1; -+ SIG_UNBLOCK : constant := 2; -+ SIG_SETMASK : constant := 3; -+ -+ SIG_DFL : constant := 0; -+ SIG_IGN : constant := 1; -+ SIG_ERR : constant := -1; -+ SIG_HOLD : constant := 3; -+ -+ SA_SIGINFO : constant := 16#0040#; -+ SA_ONSTACK : constant := 16#0001#; -+ -+ function sigaction -+ (sig : Signal; -+ act : struct_sigaction_ptr; -+ oact : struct_sigaction_ptr) return int; -+ pragma Import (C, sigaction, "__sigaction14"); -+ -+ ---------- -+ -- Time -- -+ ---------- -+ -+ Time_Slice_Supported : constant Boolean := True; -+ -- Indicates whether time slicing is supported (i.e SCHED_RR is supported) -+ -+ type timespec is private; -+ -+ function nanosleep (rqtp, rmtp : access timespec) return int; -+ pragma Import (C, nanosleep, "nanosleep"); -+ -+ type clockid_t is private; -+ -+ CLOCK_REALTIME : constant clockid_t; -+ -+ function clock_gettime -+ (clock_id : clockid_t; -+ tp : access timespec) -+ return int; -+ pragma Import (C, clock_gettime, "clock_gettime"); -+ -+ function To_Duration (TS : timespec) return Duration; -+ pragma Inline (To_Duration); -+ -+ function To_Timespec (D : Duration) return timespec; -+ pragma Inline (To_Timespec); -+ -+ type struct_timezone is record -+ tz_minuteswest : int; -+ tz_dsttime : int; -+ end record; -+ pragma Convention (C, struct_timezone); -+ -+ ------------------------- -+ -- Priority Scheduling -- -+ ------------------------- -+ -+ SCHED_FIFO : constant := 1; -+ SCHED_OTHER : constant := 2; -+ SCHED_RR : constant := 3; -+ -+ function To_Target_Priority -+ (Prio : System.Any_Priority) return Interfaces.C.int; -+ -- Maps System.Any_Priority to a POSIX priority -+ -+ ------------- -+ -- Process -- -+ ------------- -+ -+ type pid_t is private; -+ -+ function kill (pid : pid_t; sig : Signal) return int; -+ pragma Import (C, kill, "kill"); -+ -+ function getpid return pid_t; -+ pragma Import (C, getpid, "getpid"); -+ -+ --------- -+ -- LWP -- -+ --------- -+ -+ function lwp_self return System.Address; -+ -- lwp_self does not exist on this thread library, revert to pthread_self -+ -- which is the closest approximation (with getpid). This function is -+ -- needed to share 7staprop.adb across POSIX-like targets. -+ pragma Import (C, lwp_self, "pthread_self"); -+ -+ ------------- -+ -- Threads -- -+ ------------- -+ -+ type Thread_Body is access -+ function (arg : System.Address) return System.Address; -+ pragma Convention (C, Thread_Body); -+ -+ function Thread_Body_Access is new -+ Ada.Unchecked_Conversion (System.Address, Thread_Body); -+ -+ type pthread_t is private; -+ subtype Thread_Id is pthread_t; -+ -+ type pthread_mutex_t is limited private; -+ type pthread_cond_t is limited private; -+ type pthread_attr_t is limited private; -+ type pthread_mutexattr_t is limited private; -+ type pthread_condattr_t is limited private; -+ type pthread_key_t is private; -+ -+ PTHREAD_CREATE_DETACHED : constant := 1; -+ PTHREAD_CREATE_JOINABLE : constant := 0; -+ -+ PTHREAD_SCOPE_PROCESS : constant := 0; -+ PTHREAD_SCOPE_SYSTEM : constant := 2; -+ -+ ----------- -+ -- Stack -- -+ ----------- -+ -+ type stack_t is record -+ ss_sp : System.Address; -+ ss_size : size_t; -+ ss_flags : int; -+ end record; -+ pragma Convention (C, stack_t); -+ -+ function sigaltstack -+ (ss : not null access stack_t; -+ oss : access stack_t) return int; -+ pragma Import (C, sigaltstack, "sigaltstack"); -+ -+ Alternate_Stack : aliased System.Address; -+ -- This is a dummy definition, never used (Alternate_Stack_Size is null) -+ -+ Alternate_Stack_Size : constant := 0; -+ -- No alternate signal stack is used on this platform -+ -+ Stack_Base_Available : constant Boolean := False; -+ -- Indicates whether the stack base is available on this target. This -+ -- allows us to share s-osinte.adb between all the FSU run time. Note that -+ -- this value can only be true if pthread_t has a complete definition that -+ -- corresponds exactly to the C header files. -+ -+ function Get_Stack_Base (thread : pthread_t) return Address; -+ pragma Inline (Get_Stack_Base); -+ -- returns the stack base of the specified thread. Only call this function -+ -- when Stack_Base_Available is True. -+ -+ function Get_Page_Size return size_t; -+ function Get_Page_Size return Address; -+ pragma Import (C, Get_Page_Size, "getpagesize"); -+ -- Returns the size of a page -+ -+ PROT_NONE : constant := 0; -+ PROT_READ : constant := 1; -+ PROT_WRITE : constant := 2; -+ PROT_EXEC : constant := 4; -+ PROT_ALL : constant := PROT_READ + PROT_WRITE + PROT_EXEC; -+ PROT_ON : constant := PROT_NONE; -+ PROT_OFF : constant := PROT_ALL; -+ -+ function mprotect (addr : Address; len : size_t; prot : int) return int; -+ pragma Import (C, mprotect); -+ -+ --------------------------------------- -+ -- Nonstandard Thread Initialization -- -+ --------------------------------------- -+ -+ -- FSU_THREADS requires pthread_init, which is nonstandard and this should -+ -- be invoked during the elaboration of s-taprop.adb. -+ -+ -- NetBSD does not require this so we provide an empty Ada body -+ -+ procedure pthread_init; -+ -+ ------------------------- -+ -- POSIX.1c Section 3 -- -+ ------------------------- -+ -+ function sigwait -+ (set : access sigset_t; -+ sig : access Signal) return int; -+ pragma Import (C, sigwait, "sigwait"); -+ -+ function pthread_kill -+ (thread : pthread_t; -+ sig : Signal) return int; -+ pragma Import (C, pthread_kill, "pthread_kill"); -+ -+ function pthread_sigmask -+ (how : int; -+ set : access sigset_t; -+ oset : access sigset_t) return int; -+ pragma Import (C, pthread_sigmask, "pthread_sigmask"); -+ -+ -------------------------- -+ -- POSIX.1c Section 11 -- -+ -------------------------- -+ -+ function pthread_mutexattr_init -+ (attr : access pthread_mutexattr_t) return int; -+ pragma Import (C, pthread_mutexattr_init, "pthread_mutexattr_init"); -+ -+ function pthread_mutexattr_destroy -+ (attr : access pthread_mutexattr_t) return int; -+ pragma Import (C, pthread_mutexattr_destroy, "pthread_mutexattr_destroy"); -+ -+ function pthread_mutex_init -+ (mutex : access pthread_mutex_t; -+ attr : access pthread_mutexattr_t) return int; -+ pragma Import (C, pthread_mutex_init, "pthread_mutex_init"); -+ -+ function pthread_mutex_destroy (mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_mutex_destroy, "pthread_mutex_destroy"); -+ -+ function pthread_mutex_lock (mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_mutex_lock, "pthread_mutex_lock"); -+ -+ function pthread_mutex_unlock (mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_mutex_unlock, "pthread_mutex_unlock"); -+ -+ function pthread_condattr_init -+ (attr : access pthread_condattr_t) return int; -+ pragma Import (C, pthread_condattr_init, "pthread_condattr_init"); -+ -+ function pthread_condattr_destroy -+ (attr : access pthread_condattr_t) return int; -+ pragma Import (C, pthread_condattr_destroy, "pthread_condattr_destroy"); -+ -+ function pthread_cond_init -+ (cond : access pthread_cond_t; -+ attr : access pthread_condattr_t) return int; -+ pragma Import (C, pthread_cond_init, "pthread_cond_init"); -+ -+ function pthread_cond_destroy (cond : access pthread_cond_t) return int; -+ pragma Import (C, pthread_cond_destroy, "pthread_cond_destroy"); -+ -+ function pthread_cond_signal (cond : access pthread_cond_t) return int; -+ pragma Import (C, pthread_cond_signal, "pthread_cond_signal"); -+ -+ function pthread_cond_wait -+ (cond : access pthread_cond_t; -+ mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_cond_wait, "pthread_cond_wait"); -+ -+ function pthread_cond_timedwait -+ (cond : access pthread_cond_t; -+ mutex : access pthread_mutex_t; -+ abstime : access timespec) return int; -+ pragma Import (C, pthread_cond_timedwait, "pthread_cond_timedwait"); -+ -+ Relative_Timed_Wait : constant Boolean := False; -+ -- pthread_cond_timedwait requires an absolute delay time -+ -+ -------------------------- -+ -- POSIX.1c Section 13 -- -+ -------------------------- -+ -+ PTHREAD_PRIO_NONE : constant := 0; -+ PTHREAD_PRIO_PROTECT : constant := 2; -+ PTHREAD_PRIO_INHERIT : constant := 1; -+ -+ function pthread_mutexattr_setprotocol -+ (attr : access pthread_mutexattr_t; -+ protocol : int) return int; -+ -+ function pthread_mutexattr_setprioceiling -+ (attr : access pthread_mutexattr_t; -+ prioceiling : int) return int; -+ -+ type struct_sched_param is record -+ sched_priority : int; -+ end record; -+ pragma Convention (C, struct_sched_param); -+ -+ function pthread_getschedparam -+ (thread : pthread_t; -+ policy : access int; -+ param : access struct_sched_param) return int; -+ pragma Import (C, pthread_getschedparam, "pthread_getschedparam"); -+ -+ function pthread_setschedparam -+ (thread : pthread_t; -+ policy : int; -+ param : access struct_sched_param) return int; -+ pragma Import (C, pthread_setschedparam, "pthread_setschedparam"); -+ -+ function pthread_attr_setscope -+ (attr : access pthread_attr_t; -+ contentionscope : int) return int; -+ pragma Import (C, pthread_attr_setscope, "pthread_attr_setscope"); -+ -+ function pthread_attr_getscope -+ (attr : access pthread_attr_t; -+ contentionscope : access int) return int; -+ pragma Import (C, pthread_attr_getscope, "pthread_attr_getscope"); -+ -+ function pthread_attr_setinheritsched -+ (attr : access pthread_attr_t; -+ inheritsched : int) return int; -+ pragma Import -+ (C, pthread_attr_setinheritsched, "pthread_attr_setinheritsched"); -+ -+ function pthread_attr_getinheritsched -+ (attr : access pthread_attr_t; -+ inheritsched : access int) return int; -+ pragma Import -+ (C, pthread_attr_getinheritsched, "pthread_attr_getinheritsched"); -+ -+ function pthread_attr_setschedpolicy -+ (attr : access pthread_attr_t; -+ policy : int) return int; -+ pragma Import (C, pthread_attr_setschedpolicy, -+ "pthread_attr_setschedpolicy"); -+ -+ function pthread_attr_getschedpolicy -+ (attr : access pthread_attr_t; -+ policy : access int) return int; -+ pragma Import (C, pthread_attr_getschedpolicy, -+ "pthread_attr_getschedpolicy"); -+ -+ function pthread_attr_setschedparam -+ (attr : access pthread_attr_t; -+ sched_param : int) return int; -+ pragma Import (C, pthread_attr_setschedparam, "pthread_attr_setschedparam"); -+ -+ function pthread_attr_getschedparam -+ (attr : access pthread_attr_t; -+ sched_param : access int) return int; -+ pragma Import (C, pthread_attr_getschedparam, "pthread_attr_getschedparam"); -+ -+ function sched_yield return int; -+ pragma Import (C, sched_yield, "sched_yield"); -+ -+ -------------------------- -+ -- P1003.1c Section 16 -- -+ -------------------------- -+ -+ function pthread_attr_init (attributes : access pthread_attr_t) return int; -+ pragma Import (C, pthread_attr_init, "pthread_attr_init"); -+ -+ function pthread_attr_destroy -+ (attributes : access pthread_attr_t) return int; -+ pragma Import (C, pthread_attr_destroy, "pthread_attr_destroy"); -+ -+ function pthread_attr_setdetachstate -+ (attr : access pthread_attr_t; -+ detachstate : int) return int; -+ pragma Import -+ (C, pthread_attr_setdetachstate, "pthread_attr_setdetachstate"); -+ -+ function pthread_attr_getdetachstate -+ (attr : access pthread_attr_t; -+ detachstate : access int) return int; -+ pragma Import -+ (C, pthread_attr_getdetachstate, "pthread_attr_getdetachstate"); -+ -+ function pthread_attr_getstacksize -+ (attr : access pthread_attr_t; -+ stacksize : access size_t) return int; -+ pragma Import -+ (C, pthread_attr_getstacksize, "pthread_attr_getstacksize"); -+ -+ function pthread_attr_setstacksize -+ (attr : access pthread_attr_t; -+ stacksize : size_t) return int; -+ pragma Import -+ (C, pthread_attr_setstacksize, "pthread_attr_setstacksize"); -+ -+ function pthread_create -+ (thread : access pthread_t; -+ attributes : access pthread_attr_t; -+ start_routine : Thread_Body; -+ arg : System.Address) return int; -+ pragma Import (C, pthread_create, "pthread_create"); -+ -+ function pthread_detach (thread : pthread_t) return int; -+ pragma Import (C, pthread_detach, "pthread_detach"); -+ -+ procedure pthread_exit (status : System.Address); -+ pragma Import (C, pthread_exit, "pthread_exit"); -+ -+ function pthread_self return pthread_t; -+ pragma Import (C, pthread_self, "pthread_self"); -+ -+ -------------------------- -+ -- POSIX.1c Section 17 -- -+ -------------------------- -+ -+ function pthread_setspecific -+ (key : pthread_key_t; -+ value : System.Address) return int; -+ pragma Import (C, pthread_setspecific, "pthread_setspecific"); -+ -+ function pthread_getspecific (key : pthread_key_t) return System.Address; -+ pragma Import (C, pthread_getspecific, "pthread_getspecific"); -+ -+ type destructor_pointer is access procedure (arg : System.Address); -+ pragma Convention (C, destructor_pointer); -+ -+ function pthread_key_create -+ (key : access pthread_key_t; -+ destructor : destructor_pointer) return int; -+ pragma Import (C, pthread_key_create, "pthread_key_create"); -+ -+ ------------------------------------ -+ -- Non-portable Pthread Functions -- -+ ------------------------------------ -+ -+ function pthread_set_name_np -+ (thread : pthread_t; -+ name : System.Address) return int; -+ pragma Import (C, pthread_set_name_np, "pthread_set_name_np"); -+ -+private -+ -+ type sigset_t is array (1 .. 4) of unsigned; -+ -+ -- In NetBSD the component sa_handler turns out to -+ -- be one a union type, and the selector is a macro: -+ -- #define sa_handler __sigaction_u._handler -+ -- #define sa_sigaction __sigaction_u._sigaction -+ -+ -- Should we add a signal_context type here ??? -+ -- How could it be done independent of the CPU architecture ??? -+ -- sigcontext type is opaque, so it is architecturally neutral. -+ -- It is always passed as an access type, so define it as an empty record -+ -- since the contents are not used anywhere. -+ -+ type struct_sigcontext is null record; -+ pragma Convention (C, struct_sigcontext); -+ -+ type pid_t is new int; -+ -+ type time_t is new int; -+ -+ type timespec is record -+ tv_sec : time_t; -+ tv_nsec : long; -+ end record; -+ pragma Convention (C, timespec); -+ -+ type clockid_t is new int; -+ CLOCK_REALTIME : constant clockid_t := 0; -+ -+ type pthread_t is new System.Address; -+ type pthread_attr_t is record -+ Pta_Magic : unsigned; -+ Pta_Flags : int; -+ Pta_Private : System.Address; -+ end record; -+ pragma Convention (C, pthread_attr_t); -+ -+ -- PORT NOTE: The size of pthread_spin_t is defined in -+ -- /src/sys/arch/*/include/types.h -+ type pthread_spin_t is new unsigned_char; -+ -+ type pthread_queue_t is record -+ Pthqh_First : pthread_t; -+ Pthqh_Last : System.Address; -+ end record; -+ pragma Convention (C, pthread_queue_t); -+ -+ type pthread_mutex_t is record -+ Ptm_Majic : unsigned; -+ Ptm_Lock : pthread_spin_t; -+ Ptm_Interlock : pthread_spin_t; -+ Ptm_Owner : pthread_t; -+ Ptm_Block : pthread_queue_t; -+ Ptm_Private : System.Address; -+ end record; -+ pragma Convention (C, pthread_mutex_t); -+ -+ type pthread_mutexattr_t is record -+ Ptma_Majic : unsigned; -+ Ptma_Private : System.Address; -+ end record; -+ pragma Convention (C, pthread_mutexattr_t); -+ -+ type pthread_cond_t is record -+ Ptc_Magic : unsigned; -+ Ptc_Lock : pthread_spin_t; -+ Ptc_Waiters : pthread_queue_t; -+ Ptc_Mutex : pthread_mutex_t; -+ Ptc_Private : System.Address; -+ end record; -+ pragma Convention (C, pthread_cond_t); -+ -+ type pthread_condattr_t is record -+ Ptca_Magic : unsigned; -+ Ptca_Private : System.Address; -+ end record; -+ pragma Convention (C, pthread_condattr_t); -+ -+ type pthread_key_t is new int; -+ -+end System.OS_Interface; ---- /dev/null -+++ gcc/ada/s-osinte-netbsd6.ads -@@ -0,0 +1,675 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS -- -+-- -- -+-- S Y S T E M . O S _ I N T E R F A C E -- -+-- -- -+-- S p e c -- -+-- -- -+-- Copyright (C) 1991-1994, Florida State University -- -+-- Copyright (C) 1995-2009, Free Software Foundation, Inc. -- -+-- -- -+-- GNARL is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 2, or (at your option) any later ver- -- -+-- sion. GNARL is distributed in the hope that it will be useful, but WITH- -- -+-- OUT 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 distributed with GNARL; see file COPYING. If not, write -- -+-- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, -- -+-- Boston, MA 02110-1301, USA. -- -+-- -- -+-- As a special exception, if other files instantiate generics from this -- -+-- unit, or you link this unit with other files to produce an executable, -- -+-- this unit does not by itself cause the resulting executable to be -- -+-- covered by the GNU General Public License. This exception does not -- -+-- however invalidate any other reasons why the executable file might be -- -+-- covered by the GNU Public License. -- -+-- -- -+-- GNARL was developed by the GNARL team at Florida State University. It is -- -+-- now maintained by Ada Core Technologies Inc. in cooperation with Florida -- -+-- State University (http://www.gnat.com). -- -+-- -- -+-- Copyright (C) 2010, 2011 John Marino <www.dragonlace.net> -- -+------------------------------------------------------------------------------ -+ -+-- This is the NetBSD 6+ PTHREADS version of this package. -+-- It is based off of the FreeBSD PTHREADS as of 4.2.3. -+ -+-- This package encapsulates all direct interfaces to OS services -+-- that are needed by the tasking run-time (libgnarl). -+ -+-- PLEASE DO NOT add any with-clauses to this package or remove the pragma -+-- Preelaborate. This package is designed to be a bottom-level (leaf) package. -+ -+with Ada.Unchecked_Conversion; -+ -+with Interfaces.C; -+ -+package System.OS_Interface is -+ pragma Preelaborate; -+ -+ pragma Linker_Options ("-pthread"); -+ -+ subtype int is Interfaces.C.int; -+ subtype short is Interfaces.C.short; -+ subtype long is Interfaces.C.long; -+ subtype unsigned is Interfaces.C.unsigned; -+ subtype unsigned_short is Interfaces.C.unsigned_short; -+ subtype unsigned_long is Interfaces.C.unsigned_long; -+ subtype unsigned_char is Interfaces.C.unsigned_char; -+ subtype plain_char is Interfaces.C.plain_char; -+ subtype size_t is Interfaces.C.size_t; -+ subtype int64_t is Interfaces.Integer_64; -+ -+ ----------- -+ -- Errno -- -+ ----------- -+ -+ function Errno return int; -+ pragma Inline (Errno); -+ -+ EAGAIN : constant := 35; -+ EINTR : constant := 4; -+ EINVAL : constant := 22; -+ ENOMEM : constant := 12; -+ ETIMEDOUT : constant := 60; -+ -+ ------------- -+ -- Signals -- -+ ------------- -+ -+ Max_Interrupt : constant := 63; -+ type Signal is new int range 0 .. Max_Interrupt; -+ for Signal'Size use int'Size; -+ -+ SIGHUP : constant := 1; -- hangup -+ SIGINT : constant := 2; -- interrupt (rubout) -+ SIGQUIT : constant := 3; -- quit (ASCD FS) -+ SIGILL : constant := 4; -- illegal instruction (not reset) -+ SIGTRAP : constant := 5; -- trace trap (not reset) -+ SIGIOT : constant := 6; -- IOT instruction -+ SIGABRT : constant := 6; -- used by abort, replace SIGIOT in the future -+ SIGEMT : constant := 7; -- EMT instruction -+ SIGFPE : constant := 8; -- floating point exception -+ SIGKILL : constant := 9; -- kill (cannot be caught or ignored) -+ SIGBUS : constant := 10; -- bus error -+ SIGSEGV : constant := 11; -- segmentation violation -+ SIGSYS : constant := 12; -- bad argument to system call -+ SIGPIPE : constant := 13; -- write on a pipe with no one to read it -+ SIGALRM : constant := 14; -- alarm clock -+ SIGTERM : constant := 15; -- software termination signal from kill -+ SIGURG : constant := 16; -- urgent condition on IO channel -+ SIGSTOP : constant := 17; -- stop (cannot be caught or ignored) -+ SIGTSTP : constant := 18; -- user stop requested from tty -+ SIGCONT : constant := 19; -- stopped process has been continued -+ SIGCLD : constant := 20; -- alias for SIGCHLD -+ SIGCHLD : constant := 20; -- child status change -+ SIGTTIN : constant := 21; -- background tty read attempted -+ SIGTTOU : constant := 22; -- background tty write attempted -+ SIGIO : constant := 23; -- I/O possible (Solaris SIGPOLL alias) -+ SIGXCPU : constant := 24; -- CPU time limit exceeded -+ SIGXFSZ : constant := 25; -- filesize limit exceeded -+ SIGVTALRM : constant := 26; -- virtual timer expired -+ SIGPROF : constant := 27; -- profiling timer expired -+ SIGWINCH : constant := 28; -- window size change -+ SIGINFO : constant := 29; -- information request (BSD) -+ SIGUSR1 : constant := 30; -- user defined signal 1 -+ SIGUSR2 : constant := 31; -- user defined signal 2 -+ SIGPWR : constant := 32; -- power fail/restart (not reset when caught) -+ -+ SIGADAABORT : constant := SIGABRT; -+ -- Change this if you want to use another signal for task abort. -+ -- SIGTERM might be a good one. -+ -+ type Signal_Set is array (Natural range <>) of Signal; -+ -+ -- Interrupts that must be unmasked at all times. NetBSD -+ -- pthreads will not allow an application to mask out any -+ -- interrupt needed by the threads library. -+ Unmasked : constant Signal_Set := -+ (SIGTRAP, SIGBUS, SIGTTIN, SIGTTOU, SIGTSTP); -+ -+ -- NetBSD will uses SIGPROF for timing. Do not allow a -+ -- handler to attach to this signal. -+ Reserved : constant Signal_Set := (0 .. 0 => SIGPROF); -+ -+ type sigset_t is private; -+ -+ function sigaddset -+ (set : access sigset_t; -+ sig : Signal) return int; -+ pragma Import (C, sigaddset, "__sigaddset14"); -+ -+ function sigdelset -+ (set : access sigset_t; -+ sig : Signal) return int; -+ pragma Import (C, sigdelset, "__sigdelset14"); -+ -+ function sigfillset (set : access sigset_t) return int; -+ pragma Import (C, sigfillset, "__sigfillset14"); -+ -+ function sigismember -+ (set : access sigset_t; -+ sig : Signal) return int; -+ pragma Import (C, sigismember, "__sigismember14"); -+ -+ function sigemptyset (set : access sigset_t) return int; -+ pragma Import (C, sigemptyset, "__sigemptyset14"); -+ -+ -- sigcontext is architecture dependent, so define it private -+ type struct_sigcontext is private; -+ -+ type old_struct_sigaction is record -+ sa_handler : System.Address; -+ sa_mask : sigset_t; -+ sa_flags : int; -+ end record; -+ pragma Convention (C, old_struct_sigaction); -+ -+ type new_struct_sigaction is record -+ sa_handler : System.Address; -+ sa_flags : int; -+ sa_mask : sigset_t; -+ end record; -+ pragma Convention (C, new_struct_sigaction); -+ -+ subtype struct_sigaction is new_struct_sigaction; -+ type struct_sigaction_ptr is access all struct_sigaction; -+ -+ SIG_BLOCK : constant := 1; -+ SIG_UNBLOCK : constant := 2; -+ SIG_SETMASK : constant := 3; -+ -+ SIG_DFL : constant := 0; -+ SIG_IGN : constant := 1; -+ SIG_ERR : constant := -1; -+ SIG_HOLD : constant := 3; -+ -+ SA_SIGINFO : constant := 16#0040#; -+ SA_ONSTACK : constant := 16#0001#; -+ -+ function sigaction -+ (sig : Signal; -+ act : struct_sigaction_ptr; -+ oact : struct_sigaction_ptr) return int; -+ pragma Import (C, sigaction, "__sigaction14"); -+ -+ ---------- -+ -- Time -- -+ ---------- -+ -+ Time_Slice_Supported : constant Boolean := True; -+ -- Indicates whether time slicing is supported (i.e SCHED_RR is supported) -+ -+ type timespec is private; -+ -+ function nanosleep (rqtp, rmtp : access timespec) return int; -+ pragma Import (C, nanosleep, "__nanosleep50"); -+ -+ type clockid_t is private; -+ -+ CLOCK_REALTIME : constant clockid_t; -+ -+ function clock_gettime -+ (clock_id : clockid_t; -+ tp : access timespec) -+ return int; -+ pragma Import (C, clock_gettime, "__clock_gettime50"); -+ -+ function To_Duration (TS : timespec) return Duration; -+ pragma Inline (To_Duration); -+ -+ function To_Timespec (D : Duration) return timespec; -+ pragma Inline (To_Timespec); -+ -+ type struct_timezone is record -+ tz_minuteswest : int; -+ tz_dsttime : int; -+ end record; -+ pragma Convention (C, struct_timezone); -+ -+ ------------------------- -+ -- Priority Scheduling -- -+ ------------------------- -+ -+ SCHED_FIFO : constant := 1; -+ SCHED_OTHER : constant := 2; -+ SCHED_RR : constant := 3; -+ -+ function To_Target_Priority -+ (Prio : System.Any_Priority) return Interfaces.C.int; -+ -- Maps System.Any_Priority to a POSIX priority -+ -+ ------------- -+ -- Process -- -+ ------------- -+ -+ type pid_t is private; -+ -+ function kill (pid : pid_t; sig : Signal) return int; -+ pragma Import (C, kill, "kill"); -+ -+ function getpid return pid_t; -+ pragma Import (C, getpid, "getpid"); -+ -+ --------- -+ -- LWP -- -+ --------- -+ -+ function lwp_self return System.Address; -+ -- lwp_self does not exist on this thread library, revert to pthread_self -+ -- which is the closest approximation (with getpid). This function is -+ -- needed to share 7staprop.adb across POSIX-like targets. -+ pragma Import (C, lwp_self, "pthread_self"); -+ -+ ------------- -+ -- Threads -- -+ ------------- -+ -+ type Thread_Body is access -+ function (arg : System.Address) return System.Address; -+ pragma Convention (C, Thread_Body); -+ -+ function Thread_Body_Access is new -+ Ada.Unchecked_Conversion (System.Address, Thread_Body); -+ -+ type pthread_t is private; -+ subtype Thread_Id is pthread_t; -+ -+ type pthread_mutex_t is limited private; -+ type pthread_cond_t is limited private; -+ type pthread_attr_t is limited private; -+ type pthread_mutexattr_t is limited private; -+ type pthread_condattr_t is limited private; -+ type pthread_key_t is private; -+ -+ PTHREAD_CREATE_DETACHED : constant := 1; -+ PTHREAD_CREATE_JOINABLE : constant := 0; -+ -+ PTHREAD_SCOPE_PROCESS : constant := 0; -+ PTHREAD_SCOPE_SYSTEM : constant := 2; -+ -+ ----------- -+ -- Stack -- -+ ----------- -+ -+ type stack_t is record -+ ss_sp : System.Address; -+ ss_size : size_t; -+ ss_flags : int; -+ end record; -+ pragma Convention (C, stack_t); -+ -+ function sigaltstack -+ (ss : not null access stack_t; -+ oss : access stack_t) return int; -+ pragma Import (C, sigaltstack, "sigaltstack"); -+ -+ Alternate_Stack : aliased System.Address; -+ -- This is a dummy definition, never used (Alternate_Stack_Size is null) -+ -+ Alternate_Stack_Size : constant := 0; -+ -- No alternate signal stack is used on this platform -+ -+ Stack_Base_Available : constant Boolean := False; -+ -- Indicates whether the stack base is available on this target. This -+ -- allows us to share s-osinte.adb between all the FSU run time. Note that -+ -- this value can only be true if pthread_t has a complete definition that -+ -- corresponds exactly to the C header files. -+ -+ function Get_Stack_Base (thread : pthread_t) return Address; -+ pragma Inline (Get_Stack_Base); -+ -- returns the stack base of the specified thread. Only call this function -+ -- when Stack_Base_Available is True. -+ -+ function Get_Page_Size return size_t; -+ function Get_Page_Size return Address; -+ pragma Import (C, Get_Page_Size, "getpagesize"); -+ -- Returns the size of a page -+ -+ PROT_NONE : constant := 0; -+ PROT_READ : constant := 1; -+ PROT_WRITE : constant := 2; -+ PROT_EXEC : constant := 4; -+ PROT_ALL : constant := PROT_READ + PROT_WRITE + PROT_EXEC; -+ PROT_ON : constant := PROT_NONE; -+ PROT_OFF : constant := PROT_ALL; -+ -+ function mprotect (addr : Address; len : size_t; prot : int) return int; -+ pragma Import (C, mprotect); -+ -+ --------------------------------------- -+ -- Nonstandard Thread Initialization -- -+ --------------------------------------- -+ -+ -- FSU_THREADS requires pthread_init, which is nonstandard and this should -+ -- be invoked during the elaboration of s-taprop.adb. -+ -+ -- NetBSD does not require this so we provide an empty Ada body -+ -+ procedure pthread_init; -+ -+ ------------------------- -+ -- POSIX.1c Section 3 -- -+ ------------------------- -+ -+ function sigwait -+ (set : access sigset_t; -+ sig : access Signal) return int; -+ pragma Import (C, sigwait, "sigwait"); -+ -+ function pthread_kill -+ (thread : pthread_t; -+ sig : Signal) return int; -+ pragma Import (C, pthread_kill, "pthread_kill"); -+ -+ function pthread_sigmask -+ (how : int; -+ set : access sigset_t; -+ oset : access sigset_t) return int; -+ pragma Import (C, pthread_sigmask, "pthread_sigmask"); -+ -+ -------------------------- -+ -- POSIX.1c Section 11 -- -+ -------------------------- -+ -+ function pthread_mutexattr_init -+ (attr : access pthread_mutexattr_t) return int; -+ pragma Import (C, pthread_mutexattr_init, "pthread_mutexattr_init"); -+ -+ function pthread_mutexattr_destroy -+ (attr : access pthread_mutexattr_t) return int; -+ pragma Import (C, pthread_mutexattr_destroy, "pthread_mutexattr_destroy"); -+ -+ function pthread_mutex_init -+ (mutex : access pthread_mutex_t; -+ attr : access pthread_mutexattr_t) return int; -+ pragma Import (C, pthread_mutex_init, "pthread_mutex_init"); -+ -+ function pthread_mutex_destroy (mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_mutex_destroy, "pthread_mutex_destroy"); -+ -+ function pthread_mutex_lock (mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_mutex_lock, "pthread_mutex_lock"); -+ -+ function pthread_mutex_unlock (mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_mutex_unlock, "pthread_mutex_unlock"); -+ -+ function pthread_condattr_init -+ (attr : access pthread_condattr_t) return int; -+ pragma Import (C, pthread_condattr_init, "pthread_condattr_init"); -+ -+ function pthread_condattr_destroy -+ (attr : access pthread_condattr_t) return int; -+ pragma Import (C, pthread_condattr_destroy, "pthread_condattr_destroy"); -+ -+ function pthread_cond_init -+ (cond : access pthread_cond_t; -+ attr : access pthread_condattr_t) return int; -+ pragma Import (C, pthread_cond_init, "pthread_cond_init"); -+ -+ function pthread_cond_destroy (cond : access pthread_cond_t) return int; -+ pragma Import (C, pthread_cond_destroy, "pthread_cond_destroy"); -+ -+ function pthread_cond_signal (cond : access pthread_cond_t) return int; -+ pragma Import (C, pthread_cond_signal, "pthread_cond_signal"); -+ -+ function pthread_cond_wait -+ (cond : access pthread_cond_t; -+ mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_cond_wait, "pthread_cond_wait"); -+ -+ function pthread_cond_timedwait -+ (cond : access pthread_cond_t; -+ mutex : access pthread_mutex_t; -+ abstime : access timespec) return int; -+ pragma Import (C, pthread_cond_timedwait, "pthread_cond_timedwait"); -+ -+ Relative_Timed_Wait : constant Boolean := False; -+ -- pthread_cond_timedwait requires an absolute delay time -+ -+ -------------------------- -+ -- POSIX.1c Section 13 -- -+ -------------------------- -+ -+ PTHREAD_PRIO_NONE : constant := 0; -+ PTHREAD_PRIO_PROTECT : constant := 2; -+ PTHREAD_PRIO_INHERIT : constant := 1; -+ -+ function pthread_mutexattr_setprotocol -+ (attr : access pthread_mutexattr_t; -+ protocol : int) return int; -+ -+ function pthread_mutexattr_setprioceiling -+ (attr : access pthread_mutexattr_t; -+ prioceiling : int) return int; -+ -+ type struct_sched_param is record -+ sched_priority : int; -+ end record; -+ pragma Convention (C, struct_sched_param); -+ -+ function pthread_getschedparam -+ (thread : pthread_t; -+ policy : access int; -+ param : access struct_sched_param) return int; -+ pragma Import (C, pthread_getschedparam, "pthread_getschedparam"); -+ -+ function pthread_setschedparam -+ (thread : pthread_t; -+ policy : int; -+ param : access struct_sched_param) return int; -+ pragma Import (C, pthread_setschedparam, "pthread_setschedparam"); -+ -+ function pthread_attr_setscope -+ (attr : access pthread_attr_t; -+ contentionscope : int) return int; -+ pragma Import (C, pthread_attr_setscope, "pthread_attr_setscope"); -+ -+ function pthread_attr_getscope -+ (attr : access pthread_attr_t; -+ contentionscope : access int) return int; -+ pragma Import (C, pthread_attr_getscope, "pthread_attr_getscope"); -+ -+ function pthread_attr_setinheritsched -+ (attr : access pthread_attr_t; -+ inheritsched : int) return int; -+ pragma Import -+ (C, pthread_attr_setinheritsched, "pthread_attr_setinheritsched"); -+ -+ function pthread_attr_getinheritsched -+ (attr : access pthread_attr_t; -+ inheritsched : access int) return int; -+ pragma Import -+ (C, pthread_attr_getinheritsched, "pthread_attr_getinheritsched"); -+ -+ function pthread_attr_setschedpolicy -+ (attr : access pthread_attr_t; -+ policy : int) return int; -+ pragma Import (C, pthread_attr_setschedpolicy, -+ "pthread_attr_setschedpolicy"); -+ -+ function pthread_attr_getschedpolicy -+ (attr : access pthread_attr_t; -+ policy : access int) return int; -+ pragma Import (C, pthread_attr_getschedpolicy, -+ "pthread_attr_getschedpolicy"); -+ -+ function pthread_attr_setschedparam -+ (attr : access pthread_attr_t; -+ sched_param : int) return int; -+ pragma Import (C, pthread_attr_setschedparam, "pthread_attr_setschedparam"); -+ -+ function pthread_attr_getschedparam -+ (attr : access pthread_attr_t; -+ sched_param : access int) return int; -+ pragma Import (C, pthread_attr_getschedparam, "pthread_attr_getschedparam"); -+ -+ function sched_yield return int; -+ pragma Import (C, sched_yield, "sched_yield"); -+ -+ -------------------------- -+ -- P1003.1c Section 16 -- -+ -------------------------- -+ -+ function pthread_attr_init (attributes : access pthread_attr_t) return int; -+ pragma Import (C, pthread_attr_init, "pthread_attr_init"); -+ -+ function pthread_attr_destroy -+ (attributes : access pthread_attr_t) return int; -+ pragma Import (C, pthread_attr_destroy, "pthread_attr_destroy"); -+ -+ function pthread_attr_setdetachstate -+ (attr : access pthread_attr_t; -+ detachstate : int) return int; -+ pragma Import -+ (C, pthread_attr_setdetachstate, "pthread_attr_setdetachstate"); -+ -+ function pthread_attr_getdetachstate -+ (attr : access pthread_attr_t; -+ detachstate : access int) return int; -+ pragma Import -+ (C, pthread_attr_getdetachstate, "pthread_attr_getdetachstate"); -+ -+ function pthread_attr_getstacksize -+ (attr : access pthread_attr_t; -+ stacksize : access size_t) return int; -+ pragma Import -+ (C, pthread_attr_getstacksize, "pthread_attr_getstacksize"); -+ -+ function pthread_attr_setstacksize -+ (attr : access pthread_attr_t; -+ stacksize : size_t) return int; -+ pragma Import -+ (C, pthread_attr_setstacksize, "pthread_attr_setstacksize"); -+ -+ function pthread_create -+ (thread : access pthread_t; -+ attributes : access pthread_attr_t; -+ start_routine : Thread_Body; -+ arg : System.Address) return int; -+ pragma Import (C, pthread_create, "pthread_create"); -+ -+ function pthread_detach (thread : pthread_t) return int; -+ pragma Import (C, pthread_detach, "pthread_detach"); -+ -+ procedure pthread_exit (status : System.Address); -+ pragma Import (C, pthread_exit, "pthread_exit"); -+ -+ function pthread_self return pthread_t; -+ pragma Import (C, pthread_self, "pthread_self"); -+ -+ -------------------------- -+ -- POSIX.1c Section 17 -- -+ -------------------------- -+ -+ function pthread_setspecific -+ (key : pthread_key_t; -+ value : System.Address) return int; -+ pragma Import (C, pthread_setspecific, "pthread_setspecific"); -+ -+ function pthread_getspecific (key : pthread_key_t) return System.Address; -+ pragma Import (C, pthread_getspecific, "pthread_getspecific"); -+ -+ type destructor_pointer is access procedure (arg : System.Address); -+ pragma Convention (C, destructor_pointer); -+ -+ function pthread_key_create -+ (key : access pthread_key_t; -+ destructor : destructor_pointer) return int; -+ pragma Import (C, pthread_key_create, "pthread_key_create"); -+ -+ ------------------------------------ -+ -- Non-portable Pthread Functions -- -+ ------------------------------------ -+ -+ function pthread_set_name_np -+ (thread : pthread_t; -+ name : System.Address) return int; -+ pragma Import (C, pthread_set_name_np, "pthread_set_name_np"); -+ -+private -+ -+ type sigset_t is array (1 .. 4) of unsigned; -+ -+ -- In NetBSD the component sa_handler turns out to -+ -- be one a union type, and the selector is a macro: -+ -- #define sa_handler __sigaction_u._handler -+ -- #define sa_sigaction __sigaction_u._sigaction -+ -+ -- Should we add a signal_context type here ??? -+ -- How could it be done independent of the CPU architecture ??? -+ -- sigcontext type is opaque, so it is architecturally neutral. -+ -- It is always passed as an access type, so define it as an empty record -+ -- since the contents are not used anywhere. -+ -+ type struct_sigcontext is null record; -+ pragma Convention (C, struct_sigcontext); -+ -+ type pid_t is new int; -+ -+ type time_t is new int64_t; -+ -+ type timespec is record -+ tv_sec : time_t; -+ tv_nsec : long; -+ end record; -+ pragma Convention (C, timespec); -+ -+ type clockid_t is new int; -+ CLOCK_REALTIME : constant clockid_t := 0; -+ -+ type pthread_t is new System.Address; -+ type pthread_attr_t is record -+ Pta_Magic : unsigned; -+ Pta_Flags : int; -+ Pta_Private : System.Address; -+ end record; -+ pragma Convention (C, pthread_attr_t); -+ -+ -- PORT NOTE: The size of pthread_spin_t is defined in -+ -- /src/sys/arch/*/include/types.h -+ type pthread_spin_t is new unsigned_char; -+ -+ type pthread_queue_t is record -+ Pthqh_First : pthread_t; -+ Pthqh_Last : System.Address; -+ end record; -+ pragma Convention (C, pthread_queue_t); -+ -+ type pthread_mutex_t is record -+ Ptm_Majic : unsigned; -+ Ptm_Lock : pthread_spin_t; -+ Ptm_Interlock : pthread_spin_t; -+ Ptm_Owner : pthread_t; -+ Ptm_Block : pthread_queue_t; -+ Ptm_Private : System.Address; -+ end record; -+ pragma Convention (C, pthread_mutex_t); -+ -+ type pthread_mutexattr_t is record -+ Ptma_Majic : unsigned; -+ Ptma_Private : System.Address; -+ end record; -+ pragma Convention (C, pthread_mutexattr_t); -+ -+ type pthread_cond_t is record -+ Ptc_Magic : unsigned; -+ Ptc_Lock : pthread_spin_t; -+ Ptc_Waiters : pthread_queue_t; -+ Ptc_Mutex : pthread_mutex_t; -+ Ptc_Private : System.Address; -+ end record; -+ pragma Convention (C, pthread_cond_t); -+ -+ type pthread_condattr_t is record -+ Ptca_Magic : unsigned; -+ Ptca_Private : System.Address; -+ end record; -+ pragma Convention (C, pthread_condattr_t); -+ -+ type pthread_key_t is new int; -+ -+end System.OS_Interface; ---- /dev/null -+++ gcc/ada/s-osinte-openbsd.adb -@@ -0,0 +1,117 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS -- -+-- -- -+-- S Y S T E M . O S _ I N T E R F A C E -- -+-- -- -+-- B o d y -- -+-- -- -+-- Copyright (C) 1991-2009, Free Software Foundation, Inc. -- -+-- -- -+-- GNARL is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 3, or (at your option) any later ver- -- -+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- -+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- -+-- or FITNESS FOR A PARTICULAR PURPOSE. -- -+-- -- -+-- As a special exception under Section 7 of GPL version 3, you are granted -- -+-- additional permissions described in the GCC Runtime Library Exception, -- -+-- version 3.1, as published by the Free Software Foundation. -- -+-- -- -+-- You should have received a copy of the GNU General Public License and -- -+-- a copy of the GCC Runtime Library Exception along with this program; -- -+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- -+-- <http://www.gnu.org/licenses/>. -- -+-- -- -+-- GNARL was developed by the GNARL team at Florida State University. It is -- -+-- now maintained by Ada Core Technologies Inc. in cooperation with Florida -- -+-- State University (http://www.gnat.com). -- -+-- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- -+------------------------------------------------------------------------------ -+ -+-- This is the OpenBSD THREADS version of this package -+ -+with Interfaces.C; use Interfaces.C; -+ -+package body System.OS_Interface is -+ -+ ----------- -+ -- Errno -- -+ ----------- -+ -+ function Errno return int is -+ type int_ptr is access all int; -+ -+ function internal_errno return int_ptr; -+ pragma Import (C, internal_errno, "__errno"); -+ -+ begin -+ return (internal_errno.all); -+ end Errno; -+ -+ -------------------- -+ -- Get_Stack_Base -- -+ -------------------- -+ -+ function Get_Stack_Base (thread : pthread_t) return Address is -+ pragma Unreferenced (thread); -+ begin -+ return Null_Address; -+ end Get_Stack_Base; -+ -+ ------------------ -+ -- pthread_init -- -+ ------------------ -+ -+ procedure pthread_init is -+ begin -+ null; -+ end pthread_init; -+ -+ ----------------- -+ -- To_Duration -- -+ ----------------- -+ -+ function To_Duration (TS : timespec) return Duration is -+ begin -+ return Duration (TS.tv_sec) + Duration (TS.tv_nsec) / 10#1#E9; -+ end To_Duration; -+ -+ ------------------------ -+ -- To_Target_Priority -- -+ ------------------------ -+ -+ function To_Target_Priority -+ (Prio : System.Any_Priority) return Interfaces.C.int -+ is -+ begin -+ return Interfaces.C.int (Prio); -+ end To_Target_Priority; -+ -+ ----------------- -+ -- To_Timespec -- -+ ----------------- -+ -+ function To_Timespec (D : Duration) return timespec is -+ S : time_t; -+ F : Duration; -+ -+ begin -+ S := time_t (Long_Long_Integer (D)); -+ F := D - Duration (S); -+ -+ -- If F has negative value due to a round-up, adjust for positive F -+ -- value. -+ -+ if F < 0.0 then -+ S := S - 1; -+ F := F + 1.0; -+ end if; -+ -+ return timespec'(tv_sec => S, -+ tv_nsec => long (Long_Long_Integer (F * 10#1#E9))); -+ end To_Timespec; -+ -+end System.OS_Interface; ---- /dev/null -+++ gcc/ada/s-osinte-openbsd.ads -@@ -0,0 +1,648 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS -- -+-- -- -+-- S Y S T E M . O S _ I N T E R F A C E -- -+-- -- -+-- S p e c -- -+-- -- -+-- Copyright (C) 1991-1994, Florida State University -- -+-- Copyright (C) 1995-2009, Free Software Foundation, Inc. -- -+-- -- -+-- GNARL is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 2, or (at your option) any later ver- -- -+-- sion. GNARL is distributed in the hope that it will be useful, but WITH- -- -+-- OUT 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 distributed with GNARL; see file COPYING. If not, write -- -+-- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, -- -+-- Boston, MA 02110-1301, USA. -- -+-- -- -+-- As a special exception, if other files instantiate generics from this -- -+-- unit, or you link this unit with other files to produce an executable, -- -+-- this unit does not by itself cause the resulting executable to be -- -+-- covered by the GNU General Public License. This exception does not -- -+-- however invalidate any other reasons why the executable file might be -- -+-- covered by the GNU Public License. -- -+-- -- -+-- GNARL was developed by the GNARL team at Florida State University. It is -- -+-- now maintained by Ada Core Technologies Inc. in cooperation with Florida -- -+-- State University (http://www.gnat.com). -- -+-- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- -+------------------------------------------------------------------------------ -+ -+-- This is the OpenBSD PTHREADS version of this package -+ -+-- This package encapsulates all direct interfaces to OS services -+-- that are needed by the tasking run-time (libgnarl). -+ -+-- PLEASE DO NOT add any with-clauses to this package or remove the pragma -+-- Preelaborate. This package is designed to be a bottom-level (leaf) package. -+ -+with Ada.Unchecked_Conversion; -+ -+with Interfaces.C; -+ -+package System.OS_Interface is -+ pragma Preelaborate; -+ -+ pragma Linker_Options ("-pthread"); -+ -+ subtype int is Interfaces.C.int; -+ subtype short is Interfaces.C.short; -+ subtype long is Interfaces.C.long; -+ subtype unsigned is Interfaces.C.unsigned; -+ subtype unsigned_short is Interfaces.C.unsigned_short; -+ subtype unsigned_long is Interfaces.C.unsigned_long; -+ subtype unsigned_char is Interfaces.C.unsigned_char; -+ subtype plain_char is Interfaces.C.plain_char; -+ subtype size_t is Interfaces.C.size_t; -+ -+ ----------- -+ -- Errno -- -+ ----------- -+ -+ function Errno return int; -+ pragma Inline (Errno); -+ -+ EAGAIN : constant := 35; -+ EINTR : constant := 4; -+ EINVAL : constant := 22; -+ ENOMEM : constant := 12; -+ ETIMEDOUT : constant := 60; -+ -+ ------------- -+ -- Signals -- -+ ------------- -+ -+ Max_Interrupt : constant := 31; -+ type Signal is new int range 0 .. Max_Interrupt; -+ for Signal'Size use int'Size; -+ -+ SIGHUP : constant := 1; -- hangup -+ SIGINT : constant := 2; -- interrupt (rubout) -+ SIGQUIT : constant := 3; -- quit (ASCD FS) -+ SIGILL : constant := 4; -- illegal instruction (not reset) -+ SIGTRAP : constant := 5; -- trace trap (not reset) -+ SIGIOT : constant := 6; -- IOT instruction -+ SIGABRT : constant := 6; -- used by abort, replace SIGIOT in the future -+ SIGEMT : constant := 7; -- EMT instruction -+ SIGFPE : constant := 8; -- floating point exception -+ SIGKILL : constant := 9; -- kill (cannot be caught or ignored) -+ SIGBUS : constant := 10; -- bus error -+ SIGSEGV : constant := 11; -- segmentation violation -+ SIGSYS : constant := 12; -- bad argument to system call -+ SIGPIPE : constant := 13; -- write on a pipe with no one to read it -+ SIGALRM : constant := 14; -- alarm clock -+ SIGTERM : constant := 15; -- software termination signal from kill -+ SIGURG : constant := 16; -- urgent condition on IO channel -+ SIGSTOP : constant := 17; -- stop (cannot be caught or ignored) -+ SIGTSTP : constant := 18; -- user stop requested from tty -+ SIGCONT : constant := 19; -- stopped process has been continued -+ SIGCLD : constant := 20; -- alias for SIGCHLD -+ SIGCHLD : constant := 20; -- child status change -+ SIGTTIN : constant := 21; -- background tty read attempted -+ SIGTTOU : constant := 22; -- background tty write attempted -+ SIGIO : constant := 23; -- I/O possible (Solaris SIGPOLL alias) -+ SIGXCPU : constant := 24; -- CPU time limit exceeded -+ SIGXFSZ : constant := 25; -- filesize limit exceeded -+ SIGVTALRM : constant := 26; -- virtual timer expired -+ SIGPROF : constant := 27; -- profiling timer expired -+ SIGWINCH : constant := 28; -- window size change -+ SIGINFO : constant := 29; -- information request (BSD) -+ SIGUSR1 : constant := 30; -- user defined signal 1 -+ SIGUSR2 : constant := 31; -- user defined signal 2 -+ -+ SIGADAABORT : constant := SIGABRT; -+ -- Change this if you want to use another signal for task abort. -+ -- SIGTERM might be a good one. -+ -+ type Signal_Set is array (Natural range <>) of Signal; -+ -+ -- Interrupts that must be unmasked at all times. OpenBSD -+ -- pthreads will not allow an application to mask out any -+ -- interrupt needed by the threads library. -+ Unmasked : constant Signal_Set := -+ (SIGTRAP, SIGBUS, SIGTTIN, SIGTTOU, SIGTSTP); -+ -+ -- OpenBSD will uses SIGPROF for timing. Do not allow a -+ -- handler to attach to this signal. -+ Reserved : constant Signal_Set := (0 .. 0 => SIGPROF); -+ -+ type sigset_t is private; -+ -+ function sigaddset -+ (set : access sigset_t; -+ sig : Signal) return int; -+ pragma Import (C, sigaddset, "sigaddset"); -+ -+ function sigdelset -+ (set : access sigset_t; -+ sig : Signal) return int; -+ pragma Import (C, sigdelset, "sigdelset"); -+ -+ function sigfillset (set : access sigset_t) return int; -+ pragma Import (C, sigfillset, "sigfillset"); -+ -+ function sigismember -+ (set : access sigset_t; -+ sig : Signal) return int; -+ pragma Import (C, sigismember, "sigismember"); -+ -+ function sigemptyset (set : access sigset_t) return int; -+ pragma Import (C, sigemptyset, "sigemptyset"); -+ -+ -- sigcontext is architecture dependent, so define it private -+ type struct_sigcontext is private; -+ -+ type old_struct_sigaction is record -+ sa_handler : System.Address; -+ sa_mask : sigset_t; -+ sa_flags : int; -+ end record; -+ pragma Convention (C, old_struct_sigaction); -+ -+ type new_struct_sigaction is record -+ sa_handler : System.Address; -+ sa_flags : int; -+ sa_mask : sigset_t; -+ end record; -+ pragma Convention (C, new_struct_sigaction); -+ -+ subtype struct_sigaction is new_struct_sigaction; -+ type struct_sigaction_ptr is access all struct_sigaction; -+ -+ SIG_BLOCK : constant := 1; -+ SIG_UNBLOCK : constant := 2; -+ SIG_SETMASK : constant := 3; -+ -+ SIG_DFL : constant := 0; -+ SIG_IGN : constant := 1; -+ -+ SA_SIGINFO : constant := 16#0040#; -+ SA_ONSTACK : constant := 16#0001#; -+ -+ function sigaction -+ (sig : Signal; -+ act : struct_sigaction_ptr; -+ oact : struct_sigaction_ptr) return int; -+ pragma Import (C, sigaction, "sigaction"); -+ -+ ---------- -+ -- Time -- -+ ---------- -+ -+ Time_Slice_Supported : constant Boolean := True; -+ -- Indicates whether time slicing is supported (i.e SCHED_RR is supported) -+ -+ type timespec is private; -+ -+ function nanosleep (rqtp, rmtp : access timespec) return int; -+ pragma Import (C, nanosleep, "nanosleep"); -+ -+ type clockid_t is private; -+ -+ CLOCK_REALTIME : constant clockid_t; -+ -+ function clock_gettime -+ (clock_id : clockid_t; -+ tp : access timespec) -+ return int; -+ pragma Import (C, clock_gettime, "clock_gettime"); -+ -+ function To_Duration (TS : timespec) return Duration; -+ pragma Inline (To_Duration); -+ -+ function To_Timespec (D : Duration) return timespec; -+ pragma Inline (To_Timespec); -+ -+ type struct_timezone is record -+ tz_minuteswest : int; -+ tz_dsttime : int; -+ end record; -+ pragma Convention (C, struct_timezone); -+ -+ procedure usleep (useconds : unsigned_long); -+ pragma Import (C, usleep, "usleep"); -+ -+ ------------------------- -+ -- Priority Scheduling -- -+ ------------------------- -+ -+ SCHED_FIFO : constant := 1; -+ SCHED_OTHER : constant := 2; -+ SCHED_RR : constant := 3; -+ -+ function To_Target_Priority -+ (Prio : System.Any_Priority) return Interfaces.C.int; -+ -- Maps System.Any_Priority to a POSIX priority -+ -+ ------------- -+ -- Process -- -+ ------------- -+ -+ type pid_t is private; -+ -+ function kill (pid : pid_t; sig : Signal) return int; -+ pragma Import (C, kill, "kill"); -+ -+ function getpid return pid_t; -+ pragma Import (C, getpid, "getpid"); -+ -+ --------- -+ -- LWP -- -+ --------- -+ -+ function lwp_self return System.Address; -+ -- lwp_self does not exist on this thread library, revert to pthread_self -+ -- which is the closest approximation (with getpid). This function is -+ -- needed to share 7staprop.adb across POSIX-like targets. -+ pragma Import (C, lwp_self, "pthread_self"); -+ -+ ------------- -+ -- Threads -- -+ ------------- -+ -+ type Thread_Body is access -+ function (arg : System.Address) return System.Address; -+ pragma Convention (C, Thread_Body); -+ -+ function Thread_Body_Access is new -+ Ada.Unchecked_Conversion (System.Address, Thread_Body); -+ -+ type pthread_t is private; -+ subtype Thread_Id is pthread_t; -+ -+ type pthread_mutex_t is limited private; -+ type pthread_cond_t is limited private; -+ type pthread_attr_t is limited private; -+ type pthread_mutexattr_t is limited private; -+ type pthread_condattr_t is limited private; -+ type pthread_key_t is private; -+ -+ PTHREAD_CREATE_DETACHED : constant := 1; -+ PTHREAD_CREATE_JOINABLE : constant := 0; -+ -+ PTHREAD_SCOPE_PROCESS : constant := 0; -+ PTHREAD_SCOPE_SYSTEM : constant := 2; -+ -+ ----------- -+ -- Stack -- -+ ----------- -+ -+ type stack_t is record -+ ss_sp : System.Address; -+ ss_size : size_t; -+ ss_flags : int; -+ end record; -+ pragma Convention (C, stack_t); -+ -+ function sigaltstack -+ (ss : not null access stack_t; -+ oss : access stack_t) return int; -+ pragma Import (C, sigaltstack, "sigaltstack"); -+ -+ Alternate_Stack : aliased System.Address; -+ -- This is a dummy definition, never used (Alternate_Stack_Size is null) -+ -+ Alternate_Stack_Size : constant := 0; -+ -- No alternate signal stack is used on this platform -+ -+ Stack_Base_Available : constant Boolean := False; -+ -- Indicates whether the stack base is available on this target. This -+ -- allows us to share s-osinte.adb between all the FSU run time. Note that -+ -- this value can only be true if pthread_t has a complete definition that -+ -- corresponds exactly to the C header files. -+ -+ function Get_Stack_Base (thread : pthread_t) return Address; -+ pragma Inline (Get_Stack_Base); -+ -- returns the stack base of the specified thread. Only call this function -+ -- when Stack_Base_Available is True. -+ -+ function Get_Page_Size return size_t; -+ function Get_Page_Size return Address; -+ pragma Import (C, Get_Page_Size, "getpagesize"); -+ -- Returns the size of a page -+ -+ PROT_NONE : constant := 0; -+ PROT_READ : constant := 1; -+ PROT_WRITE : constant := 2; -+ PROT_EXEC : constant := 4; -+ PROT_ALL : constant := PROT_READ + PROT_WRITE + PROT_EXEC; -+ PROT_ON : constant := PROT_NONE; -+ PROT_OFF : constant := PROT_ALL; -+ -+ function mprotect (addr : Address; len : size_t; prot : int) return int; -+ pragma Import (C, mprotect); -+ -+ --------------------------------------- -+ -- Nonstandard Thread Initialization -- -+ --------------------------------------- -+ -+ -- FSU_THREADS requires pthread_init, which is nonstandard and this should -+ -- be invoked during the elaboration of s-taprop.adb. -+ -+ -- OpenBSD does not require this so we provide an empty Ada body -+ -+ procedure pthread_init; -+ -+ ------------------------- -+ -- POSIX.1c Section 3 -- -+ ------------------------- -+ -+ function sigwait -+ (set : access sigset_t; -+ sig : access Signal) return int; -+ pragma Import (C, sigwait, "sigwait"); -+ -+ function pthread_kill -+ (thread : pthread_t; -+ sig : Signal) return int; -+ pragma Import (C, pthread_kill, "pthread_kill"); -+ -+ function pthread_sigmask -+ (how : int; -+ set : access sigset_t; -+ oset : access sigset_t) return int; -+ pragma Import (C, pthread_sigmask, "pthread_sigmask"); -+ -+ -------------------------- -+ -- POSIX.1c Section 11 -- -+ -------------------------- -+ -+ function pthread_mutexattr_init -+ (attr : access pthread_mutexattr_t) return int; -+ pragma Import (C, pthread_mutexattr_init, "pthread_mutexattr_init"); -+ -+ function pthread_mutexattr_destroy -+ (attr : access pthread_mutexattr_t) return int; -+ pragma Import (C, pthread_mutexattr_destroy, "pthread_mutexattr_destroy"); -+ -+ function pthread_mutex_init -+ (mutex : access pthread_mutex_t; -+ attr : access pthread_mutexattr_t) return int; -+ pragma Import (C, pthread_mutex_init, "pthread_mutex_init"); -+ -+ function pthread_mutex_destroy (mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_mutex_destroy, "pthread_mutex_destroy"); -+ -+ function pthread_mutex_lock (mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_mutex_lock, "pthread_mutex_lock"); -+ -+ function pthread_mutex_unlock (mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_mutex_unlock, "pthread_mutex_unlock"); -+ -+ function pthread_condattr_init -+ (attr : access pthread_condattr_t) return int; -+ pragma Import (C, pthread_condattr_init, "pthread_condattr_init"); -+ -+ function pthread_condattr_destroy -+ (attr : access pthread_condattr_t) return int; -+ pragma Import (C, pthread_condattr_destroy, "pthread_condattr_destroy"); -+ -+ function pthread_cond_init -+ (cond : access pthread_cond_t; -+ attr : access pthread_condattr_t) return int; -+ pragma Import (C, pthread_cond_init, "pthread_cond_init"); -+ -+ function pthread_cond_destroy (cond : access pthread_cond_t) return int; -+ pragma Import (C, pthread_cond_destroy, "pthread_cond_destroy"); -+ -+ function pthread_cond_signal (cond : access pthread_cond_t) return int; -+ pragma Import (C, pthread_cond_signal, "pthread_cond_signal"); -+ -+ function pthread_cond_wait -+ (cond : access pthread_cond_t; -+ mutex : access pthread_mutex_t) return int; -+ pragma Import (C, pthread_cond_wait, "pthread_cond_wait"); -+ -+ function pthread_cond_timedwait -+ (cond : access pthread_cond_t; -+ mutex : access pthread_mutex_t; -+ abstime : access timespec) return int; -+ pragma Import (C, pthread_cond_timedwait, "pthread_cond_timedwait"); -+ -+ Relative_Timed_Wait : constant Boolean := False; -+ -- pthread_cond_timedwait requires an absolute delay time -+ -+ -------------------------- -+ -- POSIX.1c Section 13 -- -+ -------------------------- -+ -+ PTHREAD_PRIO_NONE : constant := 0; -+ PTHREAD_PRIO_PROTECT : constant := 2; -+ PTHREAD_PRIO_INHERIT : constant := 1; -+ -+ function pthread_mutexattr_setprotocol -+ (attr : access pthread_mutexattr_t; -+ protocol : int) return int; -+ pragma Import -+ (C, pthread_mutexattr_setprotocol, "pthread_mutexattr_setprotocol"); -+ -+ function pthread_mutexattr_getprotocol -+ (attr : access pthread_mutexattr_t; -+ protocol : access int) return int; -+ pragma Import -+ (C, pthread_mutexattr_getprotocol, "pthread_mutexattr_getprotocol"); -+ -+ function pthread_mutexattr_setprioceiling -+ (attr : access pthread_mutexattr_t; -+ prioceiling : int) return int; -+ pragma Import -+ (C, pthread_mutexattr_setprioceiling, -+ "pthread_mutexattr_setprioceiling"); -+ -+ function pthread_mutexattr_getprioceiling -+ (attr : access pthread_mutexattr_t; -+ prioceiling : access int) return int; -+ pragma Import -+ (C, pthread_mutexattr_getprioceiling, -+ "pthread_mutexattr_getprioceiling"); -+ -+ type struct_sched_param is record -+ sched_priority : int; -+ end record; -+ pragma Convention (C, struct_sched_param); -+ -+ function pthread_getschedparam -+ (thread : pthread_t; -+ policy : access int; -+ param : access struct_sched_param) return int; -+ pragma Import (C, pthread_getschedparam, "pthread_getschedparam"); -+ -+ function pthread_setschedparam -+ (thread : pthread_t; -+ policy : int; -+ param : access struct_sched_param) return int; -+ pragma Import (C, pthread_setschedparam, "pthread_setschedparam"); -+ -+ function pthread_attr_setscope -+ (attr : access pthread_attr_t; -+ contentionscope : int) return int; -+ pragma Import (C, pthread_attr_setscope, "pthread_attr_setscope"); -+ -+ function pthread_attr_getscope -+ (attr : access pthread_attr_t; -+ contentionscope : access int) return int; -+ pragma Import (C, pthread_attr_getscope, "pthread_attr_getscope"); -+ -+ function pthread_attr_setinheritsched -+ (attr : access pthread_attr_t; -+ inheritsched : int) return int; -+ pragma Import -+ (C, pthread_attr_setinheritsched, "pthread_attr_setinheritsched"); -+ -+ function pthread_attr_getinheritsched -+ (attr : access pthread_attr_t; -+ inheritsched : access int) return int; -+ pragma Import -+ (C, pthread_attr_getinheritsched, "pthread_attr_getinheritsched"); -+ -+ function pthread_attr_setschedpolicy -+ (attr : access pthread_attr_t; -+ policy : int) return int; -+ pragma Import (C, pthread_attr_setschedpolicy, -+ "pthread_attr_setschedpolicy"); -+ -+ function pthread_attr_getschedpolicy -+ (attr : access pthread_attr_t; -+ policy : access int) return int; -+ pragma Import (C, pthread_attr_getschedpolicy, -+ "pthread_attr_getschedpolicy"); -+ -+ function pthread_attr_setschedparam -+ (attr : access pthread_attr_t; -+ sched_param : int) return int; -+ pragma Import (C, pthread_attr_setschedparam, "pthread_attr_setschedparam"); -+ -+ function pthread_attr_getschedparam -+ (attr : access pthread_attr_t; -+ sched_param : access int) return int; -+ pragma Import (C, pthread_attr_getschedparam, "pthread_attr_getschedparam"); -+ -+ function sched_yield return int; -+ pragma Import (C, sched_yield, "pthread_yield"); -+ -+ -------------------------- -+ -- P1003.1c Section 16 -- -+ -------------------------- -+ -+ function pthread_attr_init (attributes : access pthread_attr_t) return int; -+ pragma Import (C, pthread_attr_init, "pthread_attr_init"); -+ -+ function pthread_attr_destroy -+ (attributes : access pthread_attr_t) return int; -+ pragma Import (C, pthread_attr_destroy, "pthread_attr_destroy"); -+ -+ function pthread_attr_setdetachstate -+ (attr : access pthread_attr_t; -+ detachstate : int) return int; -+ pragma Import -+ (C, pthread_attr_setdetachstate, "pthread_attr_setdetachstate"); -+ -+ function pthread_attr_getdetachstate -+ (attr : access pthread_attr_t; -+ detachstate : access int) return int; -+ pragma Import -+ (C, pthread_attr_getdetachstate, "pthread_attr_getdetachstate"); -+ -+ function pthread_attr_getstacksize -+ (attr : access pthread_attr_t; -+ stacksize : access size_t) return int; -+ pragma Import -+ (C, pthread_attr_getstacksize, "pthread_attr_getstacksize"); -+ -+ function pthread_attr_setstacksize -+ (attr : access pthread_attr_t; -+ stacksize : size_t) return int; -+ pragma Import -+ (C, pthread_attr_setstacksize, "pthread_attr_setstacksize"); -+ -+ function pthread_create -+ (thread : access pthread_t; -+ attributes : access pthread_attr_t; -+ start_routine : Thread_Body; -+ arg : System.Address) return int; -+ pragma Import (C, pthread_create, "pthread_create"); -+ -+ function pthread_detach (thread : pthread_t) return int; -+ pragma Import (C, pthread_detach, "pthread_detach"); -+ -+ procedure pthread_exit (status : System.Address); -+ pragma Import (C, pthread_exit, "pthread_exit"); -+ -+ function pthread_self return pthread_t; -+ pragma Import (C, pthread_self, "pthread_self"); -+ -+ -------------------------- -+ -- POSIX.1c Section 17 -- -+ -------------------------- -+ -+ function pthread_setspecific -+ (key : pthread_key_t; -+ value : System.Address) return int; -+ pragma Import (C, pthread_setspecific, "pthread_setspecific"); -+ -+ function pthread_getspecific (key : pthread_key_t) return System.Address; -+ pragma Import (C, pthread_getspecific, "pthread_getspecific"); -+ -+ type destructor_pointer is access procedure (arg : System.Address); -+ pragma Convention (C, destructor_pointer); -+ -+ function pthread_key_create -+ (key : access pthread_key_t; -+ destructor : destructor_pointer) return int; -+ pragma Import (C, pthread_key_create, "pthread_key_create"); -+ -+ ------------------------------------ -+ -- Non-portable Pthread Functions -- -+ ------------------------------------ -+ -+ function pthread_set_name_np -+ (thread : pthread_t; -+ name : System.Address) return int; -+ pragma Import (C, pthread_set_name_np, "pthread_set_name_np"); -+ -+private -+ -+ type sigset_t is array (1 .. 4) of unsigned; -+ -+ -- In OpenBSD the component sa_handler turns out to -+ -- be one a union type, and the selector is a macro: -+ -- #define sa_handler __sigaction_u._handler -+ -- #define sa_sigaction __sigaction_u._sigaction -+ -+ -- Should we add a signal_context type here ??? -+ -- How could it be done independent of the CPU architecture ??? -+ -- sigcontext type is opaque, so it is architecturally neutral. -+ -- It is always passed as an access type, so define it as an empty record -+ -- since the contents are not used anywhere. -+ -+ type struct_sigcontext is null record; -+ pragma Convention (C, struct_sigcontext); -+ -+ type pid_t is new int; -+ -+ type time_t is new int; -+ -+ type timespec is record -+ tv_sec : time_t; -+ tv_nsec : long; -+ end record; -+ pragma Convention (C, timespec); -+ -+ type clockid_t is new int; -+ CLOCK_REALTIME : constant clockid_t := 0; -+ -+ type pthread_t is new System.Address; -+ type pthread_attr_t is new System.Address; -+ type pthread_mutex_t is new System.Address; -+ type pthread_mutexattr_t is new System.Address; -+ type pthread_cond_t is new System.Address; -+ type pthread_condattr_t is new System.Address; -+ type pthread_key_t is new int; -+ -+end System.OS_Interface; ---- /dev/null -+++ gcc/ada/s-osprim-bsd32.adb -@@ -0,0 +1,186 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS -- -+-- -- -+-- S Y S T E M . O S _ P R I M I T I V E S -- -+-- -- -+-- B o d y -- -+-- -- -+-- Copyright (C) 1998-2009, Free Software Foundation, Inc. -- -+-- -- -+-- GNARL is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 3, or (at your option) any later ver- -- -+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- -+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- -+-- or FITNESS FOR A PARTICULAR PURPOSE. -- -+-- -- -+-- As a special exception under Section 7 of GPL version 3, you are granted -- -+-- additional permissions described in the GCC Runtime Library Exception, -- -+-- version 3.1, as published by the Free Software Foundation. -- -+-- -- -+-- You should have received a copy of the GNU General Public License and -- -+-- a copy of the GCC Runtime Library Exception along with this program; -- -+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- -+-- <http://www.gnu.org/licenses/>. -- -+-- -- -+-- GNARL was developed by the GNARL team at Florida State University. -- -+-- Extensive contributions were provided by Ada Core Technologies, Inc. -- -+-- -- -+-- Copyright (C) 2010, 2011 John Marino <www.dragonlace.net> -- -+------------------------------------------------------------------------------ -+ -+-- This version is for BSD operating systems using 32-bit time types. -+ -+with Interfaces.C; -+ -+package body System.OS_Primitives is -+ -+ -- ??? These definitions are duplicated from System.OS_Interface -+ -- because we don't want to depend on any package. Consider removing -+ -- these declarations in System.OS_Interface and move these ones in -+ -- the spec. -+ -+ subtype int is Interfaces.C.int; -+ subtype long is Interfaces.C.long; -+ -+ type time_t is new int; -+ -+ type timespec is record -+ tv_sec : time_t; -+ tv_nsec : long; -+ end record; -+ pragma Convention (C, timespec); -+ -+ type timezone is record -+ tz_minuteswest : int; -+ tz_dsttime : int; -+ end record; -+ pragma Convention (C, timezone); -+ -+ function nanosleep (rqtp, rmtp : access timespec) return int; -+ pragma Import (C, nanosleep, "nanosleep"); -+ -+ ----------- -+ -- Clock -- -+ ----------- -+ -+ function Clock return Duration is -+ type timeval is array (1 .. 2) of Long_Integer; -+ tzresult : aliased timezone; -+ -+ procedure timeval_to_duration -+ (T : not null access timeval; -+ sec : not null access Long_Integer; -+ usec : not null access Long_Integer); -+ pragma Import (C, timeval_to_duration, "__gnat_timeval_to_duration"); -+ -+ Micro : constant := 10**6; -+ sec : aliased Long_Integer; -+ usec : aliased Long_Integer; -+ TV : aliased timeval; -+ Result : int; -+ -+ function gettimeofday -+ (Tv : access timeval; -+ Tz : access timezone) return int; -+ pragma Import (C, gettimeofday, "gettimeofday"); -+ -+ pragma Unreferenced (Result); -+ begin -+ -- The return codes for gettimeofday are as follows (from man pages): -+ -- EPERM settimeofday is called by someone other than the superuser -+ -- EINVAL Timezone (or something else) is invalid -+ -- EFAULT One of tv or tz pointed outside accessible address space -+ -+ -- None of these codes signal a potential clock skew, hence the return -+ -- value is never checked. -+ -+ Result := gettimeofday (TV'Access, tzresult'Access); -+ timeval_to_duration (TV'Access, sec'Access, usec'Access); -+ return Duration (sec) + Duration (usec) / Micro; -+ end Clock; -+ -+ --------------------- -+ -- Monotonic_Clock -- -+ --------------------- -+ -+ function Monotonic_Clock return Duration renames Clock; -+ -+ ----------------- -+ -- To_Timespec -- -+ ----------------- -+ -+ function To_Timespec (D : Duration) return timespec; -+ -+ function To_Timespec (D : Duration) return timespec is -+ S : time_t; -+ F : Duration; -+ -+ begin -+ S := time_t (Long_Long_Integer (D)); -+ F := D - Duration (S); -+ -+ -- If F has negative value due to a round-up, adjust for positive F -+ -- value. -+ -+ if F < 0.0 then -+ S := S - 1; -+ F := F + 1.0; -+ end if; -+ -+ return -+ timespec'(tv_sec => S, -+ tv_nsec => long (Long_Long_Integer (F * 10#1#E9))); -+ end To_Timespec; -+ -+ ----------------- -+ -- Timed_Delay -- -+ ----------------- -+ -+ procedure Timed_Delay -+ (Time : Duration; -+ Mode : Integer) -+ is -+ Request : aliased timespec; -+ Remaind : aliased timespec; -+ Rel_Time : Duration; -+ Abs_Time : Duration; -+ Base_Time : constant Duration := Clock; -+ Check_Time : Duration := Base_Time; -+ -+ Result : int; -+ pragma Unreferenced (Result); -+ -+ begin -+ if Mode = Relative then -+ Rel_Time := Time; -+ Abs_Time := Time + Check_Time; -+ else -+ Rel_Time := Time - Check_Time; -+ Abs_Time := Time; -+ end if; -+ -+ if Rel_Time > 0.0 then -+ loop -+ Request := To_Timespec (Rel_Time); -+ Result := nanosleep (Request'Access, Remaind'Access); -+ Check_Time := Clock; -+ -+ exit when Abs_Time <= Check_Time or else Check_Time < Base_Time; -+ -+ Rel_Time := Abs_Time - Check_Time; -+ end loop; -+ end if; -+ end Timed_Delay; -+ -+ ---------------- -+ -- Initialize -- -+ ---------------- -+ -+ procedure Initialize is -+ begin -+ null; -+ end Initialize; -+ -+end System.OS_Primitives; ---- /dev/null -+++ gcc/ada/s-osprim-bsd64.adb -@@ -0,0 +1,192 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS -- -+-- -- -+-- S Y S T E M . O S _ P R I M I T I V E S -- -+-- -- -+-- B o d y -- -+-- -- -+-- Copyright (C) 1998-2009, Free Software Foundation, Inc. -- -+-- -- -+-- GNARL is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 3, or (at your option) any later ver- -- -+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- -+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- -+-- or FITNESS FOR A PARTICULAR PURPOSE. -- -+-- -- -+-- As a special exception under Section 7 of GPL version 3, you are granted -- -+-- additional permissions described in the GCC Runtime Library Exception, -- -+-- version 3.1, as published by the Free Software Foundation. -- -+-- -- -+-- You should have received a copy of the GNU General Public License and -- -+-- a copy of the GCC Runtime Library Exception along with this program; -- -+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- -+-- <http://www.gnu.org/licenses/>. -- -+-- -- -+-- GNARL was developed by the GNARL team at Florida State University. -- -+-- Extensive contributions were provided by Ada Core Technologies, Inc. -- -+-- -- -+-- Copyright (C) 2010, 2011 John Marino <www.dragonlace.net> -- -+------------------------------------------------------------------------------ -+ -+-- This version is for BSD operating systems using 64-bit time types. -+ -+with Interfaces.C; -+ -+package body System.OS_Primitives is -+ -+ -- ??? These definitions are duplicated from System.OS_Interface -+ -- because we don't want to depend on any package. Consider removing -+ -- these declarations in System.OS_Interface and move these ones in -+ -- the spec. -+ -+ subtype int is Interfaces.C.int; -+ subtype long is Interfaces.C.long; -+ subtype int64_t is Interfaces.Integer_64; -+ -+ type time_t is new int64_t; -+ -+ type timespec is record -+ tv_sec : time_t; -+ tv_nsec : long; -+ end record; -+ pragma Convention (C, timespec); -+ -+ type timezone is record -+ tz_minuteswest : int; -+ tz_dsttime : int; -+ end record; -+ pragma Convention (C, timezone); -+ -+ type timeval is record -+ tv_sec : time_t; -+ tv_usec : long; -- Not for NetBSD! FreeBSD/DragonFly -+ end record; -+ pragma Convention (C, timeval); -+ -+ function nanosleep (rqtp, rmtp : access timespec) return int; -+ pragma Import (C, nanosleep, "nanosleep"); -+ -+ ----------- -+ -- Clock -- -+ ----------- -+ -+ function Clock return Duration is -+ -+ procedure timeval_to_duration -+ (T : not null access timeval; -+ sec : not null access Long_Integer; -+ usec : not null access Long_Integer); -+ pragma Import (C, timeval_to_duration, "__gnat_timeval_to_duration"); -+ -+ Micro : constant := 10**6; -+ sec : aliased Long_Integer; -+ usec : aliased Long_Integer; -+ TV : aliased timeval; -+ tzresult : aliased timezone; -+ Result : int; -+ -+ function gettimeofday -+ (Tv : access timeval; -+ Tz : access timezone) return int; -+ pragma Import (C, gettimeofday, "gettimeofday"); -+ -+ pragma Unreferenced (Result); -+ begin -+ -- The return codes for gettimeofday are as follows (from man pages): -+ -- EPERM settimeofday is called by someone other than the superuser -+ -- EINVAL Timezone (or something else) is invalid -+ -- EFAULT One of tv or tz pointed outside accessible address space -+ -+ -- None of these codes signal a potential clock skew, hence the return -+ -- value is never checked. -+ -+ Result := gettimeofday (TV'Access, tzresult'Access); -+ timeval_to_duration (TV'Access, sec'Access, usec'Access); -+ return Duration (sec) + Duration (usec) / Micro; -+ end Clock; -+ -+ --------------------- -+ -- Monotonic_Clock -- -+ --------------------- -+ -+ function Monotonic_Clock return Duration renames Clock; -+ -+ ----------------- -+ -- To_Timespec -- -+ ----------------- -+ -+ function To_Timespec (D : Duration) return timespec; -+ -+ function To_Timespec (D : Duration) return timespec is -+ S : time_t; -+ F : Duration; -+ -+ begin -+ S := time_t (Long_Long_Integer (D)); -+ F := D - Duration (S); -+ -+ -- If F has negative value due to a round-up, adjust for positive F -+ -- value. -+ -+ if F < 0.0 then -+ S := S - 1; -+ F := F + 1.0; -+ end if; -+ -+ return -+ timespec'(tv_sec => S, -+ tv_nsec => long (Long_Long_Integer (F * 10#1#E9))); -+ end To_Timespec; -+ -+ ----------------- -+ -- Timed_Delay -- -+ ----------------- -+ -+ procedure Timed_Delay -+ (Time : Duration; -+ Mode : Integer) -+ is -+ Request : aliased timespec; -+ Remaind : aliased timespec; -+ Rel_Time : Duration; -+ Abs_Time : Duration; -+ Base_Time : constant Duration := Clock; -+ Check_Time : Duration := Base_Time; -+ -+ Result : int; -+ pragma Unreferenced (Result); -+ -+ begin -+ if Mode = Relative then -+ Rel_Time := Time; -+ Abs_Time := Time + Check_Time; -+ else -+ Rel_Time := Time - Check_Time; -+ Abs_Time := Time; -+ end if; -+ -+ if Rel_Time > 0.0 then -+ loop -+ Request := To_Timespec (Rel_Time); -+ Result := nanosleep (Request'Access, Remaind'Access); -+ Check_Time := Clock; -+ -+ exit when Abs_Time <= Check_Time or else Check_Time < Base_Time; -+ -+ Rel_Time := Abs_Time - Check_Time; -+ end loop; -+ end if; -+ end Timed_Delay; -+ -+ ---------------- -+ -- Initialize -- -+ ---------------- -+ -+ procedure Initialize is -+ begin -+ null; -+ end Initialize; -+ -+end System.OS_Primitives; ---- /dev/null -+++ gcc/ada/s-osprim-bsdn6.adb -@@ -0,0 +1,193 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS -- -+-- -- -+-- S Y S T E M . O S _ P R I M I T I V E S -- -+-- -- -+-- B o d y -- -+-- -- -+-- Copyright (C) 1998-2009, Free Software Foundation, Inc. -- -+-- -- -+-- GNARL is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 3, or (at your option) any later ver- -- -+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- -+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- -+-- or FITNESS FOR A PARTICULAR PURPOSE. -- -+-- -- -+-- As a special exception under Section 7 of GPL version 3, you are granted -- -+-- additional permissions described in the GCC Runtime Library Exception, -- -+-- version 3.1, as published by the Free Software Foundation. -- -+-- -- -+-- You should have received a copy of the GNU General Public License and -- -+-- a copy of the GCC Runtime Library Exception along with this program; -- -+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- -+-- <http://www.gnu.org/licenses/>. -- -+-- -- -+-- GNARL was developed by the GNARL team at Florida State University. -- -+-- Extensive contributions were provided by Ada Core Technologies, Inc. -- -+-- -- -+-- Copyright (C) 2010, 2011 John Marino <www.dragonlace.net> -- -+------------------------------------------------------------------------------ -+ -+-- This version is for NetBSD 6.0+ -+-- It switches time type to 64 bits and uses compatibility functions -+ -+with Interfaces.C; -+ -+package body System.OS_Primitives is -+ -+ -- ??? These definitions are duplicated from System.OS_Interface -+ -- because we don't want to depend on any package. Consider removing -+ -- these declarations in System.OS_Interface and move these ones in -+ -- the spec. -+ -+ subtype int is Interfaces.C.int; -+ subtype long is Interfaces.C.long; -+ subtype int64_t is Interfaces.Integer_64; -+ -+ type time_t is new int64_t; -+ -+ type timespec is record -+ tv_sec : time_t; -+ tv_nsec : long; -+ end record; -+ pragma Convention (C, timespec); -+ -+ type timezone is record -+ tz_minuteswest : int; -+ tz_dsttime : int; -+ end record; -+ pragma Convention (C, timezone); -+ -+ type timeval is record -+ tv_sec : time_t; -+ tv_usec : int; -+ end record; -+ pragma Convention (C, timeval); -+ -+ function nanosleep (rqtp, rmtp : access timespec) return int; -+ pragma Import (C, nanosleep, "__nanosleep50"); -+ -+ ----------- -+ -- Clock -- -+ ----------- -+ -+ function Clock return Duration is -+ -+ procedure timeval_to_duration -+ (T : not null access timeval; -+ sec : not null access Long_Integer; -+ usec : not null access Long_Integer); -+ pragma Import (C, timeval_to_duration, "__gnat_timeval_to_duration"); -+ -+ Micro : constant := 10**6; -+ sec : aliased Long_Integer; -+ usec : aliased Long_Integer; -+ TV : aliased timeval; -+ tzresult : aliased timezone; -+ Result : int; -+ -+ function gettimeofday -+ (Tv : access timeval; -+ Tz : access timezone) return int; -+ pragma Import (C, gettimeofday, "__gettimeofday50"); -+ -+ pragma Unreferenced (Result); -+ begin -+ -- The return codes for gettimeofday are as follows (from man pages): -+ -- EPERM settimeofday is called by someone other than the superuser -+ -- EINVAL Timezone (or something else) is invalid -+ -- EFAULT One of tv or tz pointed outside accessible address space -+ -+ -- None of these codes signal a potential clock skew, hence the return -+ -- value is never checked. -+ -+ Result := gettimeofday (TV'Access, tzresult'Access); -+ timeval_to_duration (TV'Access, sec'Access, usec'Access); -+ return Duration (sec) + Duration (usec) / Micro; -+ end Clock; -+ -+ --------------------- -+ -- Monotonic_Clock -- -+ --------------------- -+ -+ function Monotonic_Clock return Duration renames Clock; -+ -+ ----------------- -+ -- To_Timespec -- -+ ----------------- -+ -+ function To_Timespec (D : Duration) return timespec; -+ -+ function To_Timespec (D : Duration) return timespec is -+ S : time_t; -+ F : Duration; -+ -+ begin -+ S := time_t (Long_Long_Integer (D)); -+ F := D - Duration (S); -+ -+ -- If F has negative value due to a round-up, adjust for positive F -+ -- value. -+ -+ if F < 0.0 then -+ S := S - 1; -+ F := F + 1.0; -+ end if; -+ -+ return -+ timespec'(tv_sec => S, -+ tv_nsec => long (Long_Long_Integer (F * 10#1#E9))); -+ end To_Timespec; -+ -+ ----------------- -+ -- Timed_Delay -- -+ ----------------- -+ -+ procedure Timed_Delay -+ (Time : Duration; -+ Mode : Integer) -+ is -+ Request : aliased timespec; -+ Remaind : aliased timespec; -+ Rel_Time : Duration; -+ Abs_Time : Duration; -+ Base_Time : constant Duration := Clock; -+ Check_Time : Duration := Base_Time; -+ -+ Result : int; -+ pragma Unreferenced (Result); -+ -+ begin -+ if Mode = Relative then -+ Rel_Time := Time; -+ Abs_Time := Time + Check_Time; -+ else -+ Rel_Time := Time - Check_Time; -+ Abs_Time := Time; -+ end if; -+ -+ if Rel_Time > 0.0 then -+ loop -+ Request := To_Timespec (Rel_Time); -+ Result := nanosleep (Request'Access, Remaind'Access); -+ Check_Time := Clock; -+ -+ exit when Abs_Time <= Check_Time or else Check_Time < Base_Time; -+ -+ Rel_Time := Abs_Time - Check_Time; -+ end loop; -+ end if; -+ end Timed_Delay; -+ -+ ---------------- -+ -- Initialize -- -+ ---------------- -+ -+ procedure Initialize is -+ begin -+ null; -+ end Initialize; -+ -+end System.OS_Primitives; ---- gcc/ada/s-rannum.adb.orig -+++ gcc/ada/s-rannum.adb -@@ -27,6 +27,7 @@ - -- GNAT was originally developed by the GNAT team at New York University. -- - -- Extensive contributions were provided by Ada Core Technologies Inc. -- - -- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- - ------------------------------------------------------------------------------ - - ------------------------------------------------------------------------------ -@@ -294,7 +295,7 @@ - X : Real; -- Scaled mantissa - R : Unsigned_32; -- Supply of random bits - R_Bits : Natural; -- Number of bits left in R -- K : Bit_Count; -- Next decrement to exponent -+ K : Bit_Count := 0; -- Next decrement to exponent - - begin - Mantissa := Random (Gen) / 2**Extra_Bits; ---- gcc/ada/s-stusta.adb.orig -+++ gcc/ada/s-stusta.adb -@@ -29,6 +29,7 @@ - -- GNARL was developed by the GNARL team at Florida State University. -- - -- Extensive contributions were provided by Ada Core Technologies, Inc. -- - -- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st -- - ------------------------------------------------------------------------------ - - with System.Stack_Usage; -@@ -235,7 +236,7 @@ - ------------ - - procedure Print (Obj : Stack_Usage_Result) is -- Pos : Positive; -+ Pos : Positive := 1; - begin - - -- Simply trim the string containing the task name ---- /dev/null -+++ gcc/ada/signal_android.c -@@ -0,0 +1,77 @@ -+/* -+ * Copyright (C) 2008 The Android Open Source Project -+ * 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. -+ * -+ * 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 OWNER 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 <limits.h> /* For LONG_BIT */ -+#include <string.h> /* For memset() */ -+ -+typedef unsigned long sigset_t; -+ -+ -+int -+sigismember(sigset_t *set, int signum) -+{ -+ unsigned long *local_set = (unsigned long *)set; -+ signum--; -+ return (int)((local_set[signum/LONG_BIT] >> (signum%LONG_BIT)) & 1); -+} -+ -+ -+int -+sigaddset(sigset_t *set, int signum) -+{ -+ unsigned long *local_set = (unsigned long *)set; -+ signum--; -+ local_set[signum/LONG_BIT] |= 1UL << (signum%LONG_BIT); -+ return 0; -+} -+ -+ -+int -+sigdelset(sigset_t *set, int signum) -+{ -+ unsigned long *local_set = (unsigned long *)set; -+ signum--; -+ local_set[signum/LONG_BIT] &= ~(1UL << (signum%LONG_BIT)); -+ return 0; -+} -+ -+ -+int -+sigemptyset(sigset_t *set) -+{ -+ memset(set, 0, sizeof *set); -+ return 0; -+} -+ -+ -+int -+sigfillset(sigset_t *set) -+{ -+ memset(set, ~0, sizeof *set); -+ return 0; -+} -+ ---- gcc/ada/sysdep.c.orig -+++ gcc/ada/sysdep.c -@@ -27,6 +27,7 @@ - * GNAT was originally developed by the GNAT team at New York University. * - * Extensive contributions were provided by Ada Core Technologies Inc. * - * * -+ * Copyright (C) 2010 John Marino <draco@marino.st> * - ****************************************************************************/ - - /* This file contains system dependent symbols that are referenced in the -@@ -368,6 +369,7 @@ - || defined (__MACHTEN__) || defined (__hpux__) || defined (_AIX) \ - || (defined (__svr4__) && defined (i386)) || defined (__Lynx__) \ - || defined (__CYGWIN__) || defined (__FreeBSD__) || defined (__OpenBSD__) \ -+ || defined (__DragonFly__) \ - || defined (__GLIBC__) || defined (__APPLE__) - - #ifdef __MINGW32__ -@@ -426,6 +428,7 @@ - || defined (__CYGWIN32__) || defined (__MACHTEN__) || defined (__hpux__) \ - || defined (_AIX) || (defined (__svr4__) && defined (i386)) \ - || defined (__Lynx__) || defined (__FreeBSD__) || defined (__OpenBSD__) \ -+ || defined (__DragonFly__) \ - || defined (__GLIBC__) || defined (__APPLE__) - char c; - int nread; -@@ -446,6 +449,7 @@ - || defined (__osf__) || defined (__MACHTEN__) || defined (__hpux__) \ - || defined (_AIX) || (defined (__svr4__) && defined (i386)) \ - || defined (__Lynx__) || defined (__FreeBSD__) || defined (__OpenBSD__) \ -+ || defined (__DragonFly__) \ - || defined (__GLIBC__) || defined (__APPLE__) - eof_ch = termios_rec.c_cc[VEOF]; - -@@ -937,6 +941,7 @@ - struct tm */ - - #elif defined (__APPLE__) || defined (__FreeBSD__) || defined (linux) ||\ -+ defined (__DragonFly__) ||\ - (defined (__alpha__) && defined (__osf__)) || defined (__GLIBC__) - { - localtime_r (timer, &tp); ---- /dev/null -+++ gcc/ada/system-dragonfly-x86_64.ads -@@ -0,0 +1,147 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME COMPONENTS -- -+-- -- -+-- S Y S T E M -- -+-- -- -+-- S p e c -- -+-- (DragonFly BSD/x86_64 Version) -- -+-- -- -+-- Copyright (C) 1992-2009, Free Software Foundation, Inc. -- -+-- -- -+-- This specification is derived from the Ada Reference Manual for use with -- -+-- GNAT. The copyright notice above, and the license provisions that follow -- -+-- apply solely to the contents of the part following the private keyword. -- -+-- -- -+-- GNAT is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 3, or (at your option) any later ver- -- -+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- -+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- -+-- or FITNESS FOR A PARTICULAR PURPOSE. -- -+-- -- -+-- As a special exception under Section 7 of GPL version 3, you are granted -- -+-- additional permissions described in the GCC Runtime Library Exception, -- -+-- version 3.1, as published by the Free Software Foundation. -- -+-- -- -+-- You should have received a copy of the GNU General Public License and -- -+-- a copy of the GCC Runtime Library Exception along with this program; -- -+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- -+-- <http://www.gnu.org/licenses/>. -- -+-- -- -+-- GNAT was originally developed by the GNAT team at New York University. -- -+-- Extensive contributions were provided by Ada Core Technologies Inc. -- -+-- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- -+------------------------------------------------------------------------------ -+ -+package System is -+ pragma Pure; -+ -- Note that we take advantage of the implementation permission to make -+ -- this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada -+ -- 2005, this is Pure in any case (AI-362). -+ -+ type Name is (SYSTEM_NAME_GNAT); -+ System_Name : constant Name := SYSTEM_NAME_GNAT; -+ -+ -- System-Dependent Named Numbers -+ -+ Min_Int : constant := Long_Long_Integer'First; -+ Max_Int : constant := Long_Long_Integer'Last; -+ -+ Max_Binary_Modulus : constant := 2 ** Long_Long_Integer'Size; -+ Max_Nonbinary_Modulus : constant := 2 ** Integer'Size - 1; -+ -+ Max_Base_Digits : constant := Long_Long_Float'Digits; -+ Max_Digits : constant := Long_Long_Float'Digits; -+ -+ Max_Mantissa : constant := 63; -+ Fine_Delta : constant := 2.0 ** (-Max_Mantissa); -+ -+ Tick : constant := 0.000_001; -+ -+ -- Storage-related Declarations -+ -+ type Address is private; -+ pragma Preelaborable_Initialization (Address); -+ Null_Address : constant Address; -+ -+ Storage_Unit : constant := 8; -+ Word_Size : constant := 64; -+ Memory_Size : constant := 2 ** 64; -+ -+ -- Address comparison -+ -+ function "<" (Left, Right : Address) return Boolean; -+ function "<=" (Left, Right : Address) return Boolean; -+ function ">" (Left, Right : Address) return Boolean; -+ function ">=" (Left, Right : Address) return Boolean; -+ function "=" (Left, Right : Address) return Boolean; -+ -+ pragma Import (Intrinsic, "<"); -+ pragma Import (Intrinsic, "<="); -+ pragma Import (Intrinsic, ">"); -+ pragma Import (Intrinsic, ">="); -+ pragma Import (Intrinsic, "="); -+ -+ -- Other System-Dependent Declarations -+ -+ type Bit_Order is (High_Order_First, Low_Order_First); -+ Default_Bit_Order : constant Bit_Order := Low_Order_First; -+ pragma Warnings (Off, Default_Bit_Order); -- kill constant condition warning -+ -+ -- Priority-related Declarations (RM D.1) -+ -+ Max_Priority : constant Positive := 30; -+ Max_Interrupt_Priority : constant Positive := 31; -+ -+ subtype Any_Priority is Integer range 0 .. 31; -+ subtype Priority is Any_Priority range 0 .. 30; -+ subtype Interrupt_Priority is Any_Priority range 31 .. 31; -+ -+ Default_Priority : constant Priority := 15; -+ -+private -+ -+ type Address is mod Memory_Size; -+ Null_Address : constant Address := 0; -+ -+ -------------------------------------- -+ -- System Implementation Parameters -- -+ -------------------------------------- -+ -+ -- These parameters provide information about the target that is used -+ -- by the compiler. They are in the private part of System, where they -+ -- can be accessed using the special circuitry in the Targparm unit -+ -- whose source should be consulted for more detailed descriptions -+ -- of the individual switch values. -+ -+ Backend_Divide_Checks : constant Boolean := False; -+ Backend_Overflow_Checks : constant Boolean := True; -+ Command_Line_Args : constant Boolean := True; -+ Configurable_Run_Time : constant Boolean := False; -+ Denorm : constant Boolean := True; -+ Duration_32_Bits : constant Boolean := False; -+ Exit_Status_Supported : constant Boolean := True; -+ Fractional_Fixed_Ops : constant Boolean := False; -+ Frontend_Layout : constant Boolean := False; -+ Machine_Overflows : constant Boolean := False; -+ Machine_Rounds : constant Boolean := True; -+ OpenVMS : constant Boolean := False; -+ Preallocated_Stacks : constant Boolean := False; -+ Signed_Zeros : constant Boolean := True; -+ Stack_Check_Default : constant Boolean := False; -+ Stack_Check_Probes : constant Boolean := True; -+ Stack_Check_Limits : constant Boolean := False; -+ Support_64_Bit_Divides : constant Boolean := True; -+ Support_Aggregates : constant Boolean := True; -+ Support_Composite_Assign : constant Boolean := True; -+ Support_Composite_Compare : constant Boolean := True; -+ Support_Long_Shifts : constant Boolean := True; -+ Always_Compatible_Rep : constant Boolean := False; -+ Suppress_Standard_Library : constant Boolean := False; -+ Use_Ada_Main_Program_Name : constant Boolean := False; -+ ZCX_By_Default : constant Boolean := True; -+ GCC_ZCX_Support : constant Boolean := True; -+ -+end System; ---- /dev/null -+++ gcc/ada/system-dragonfly-x86.ads -@@ -0,0 +1,147 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME COMPONENTS -- -+-- -- -+-- S Y S T E M -- -+-- -- -+-- S p e c -- -+-- (DragonFly BSD/x86 Version) -- -+-- -- -+-- Copyright (C) 1992-2009, Free Software Foundation, Inc. -- -+-- -- -+-- This specification is derived from the Ada Reference Manual for use with -- -+-- GNAT. The copyright notice above, and the license provisions that follow -- -+-- apply solely to the contents of the part following the private keyword. -- -+-- -- -+-- GNAT is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 3, or (at your option) any later ver- -- -+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- -+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- -+-- or FITNESS FOR A PARTICULAR PURPOSE. -- -+-- -- -+-- As a special exception under Section 7 of GPL version 3, you are granted -- -+-- additional permissions described in the GCC Runtime Library Exception, -- -+-- version 3.1, as published by the Free Software Foundation. -- -+-- -- -+-- You should have received a copy of the GNU General Public License and -- -+-- a copy of the GCC Runtime Library Exception along with this program; -- -+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- -+-- <http://www.gnu.org/licenses/>. -- -+-- -- -+-- GNAT was originally developed by the GNAT team at New York University. -- -+-- Extensive contributions were provided by Ada Core Technologies Inc. -- -+-- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- -+------------------------------------------------------------------------------ -+ -+package System is -+ pragma Pure; -+ -- Note that we take advantage of the implementation permission to make -+ -- this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada -+ -- 2005, this is Pure in any case (AI-362). -+ -+ type Name is (SYSTEM_NAME_GNAT); -+ System_Name : constant Name := SYSTEM_NAME_GNAT; -+ -+ -- System-Dependent Named Numbers -+ -+ Min_Int : constant := Long_Long_Integer'First; -+ Max_Int : constant := Long_Long_Integer'Last; -+ -+ Max_Binary_Modulus : constant := 2 ** Long_Long_Integer'Size; -+ Max_Nonbinary_Modulus : constant := 2 ** Integer'Size - 1; -+ -+ Max_Base_Digits : constant := Long_Long_Float'Digits; -+ Max_Digits : constant := Long_Long_Float'Digits; -+ -+ Max_Mantissa : constant := 63; -+ Fine_Delta : constant := 2.0 ** (-Max_Mantissa); -+ -+ Tick : constant := 0.000_001; -+ -+ -- Storage-related Declarations -+ -+ type Address is private; -+ pragma Preelaborable_Initialization (Address); -+ Null_Address : constant Address; -+ -+ Storage_Unit : constant := 8; -+ Word_Size : constant := 32; -+ Memory_Size : constant := 2 ** 32; -+ -+ -- Address comparison -+ -+ function "<" (Left, Right : Address) return Boolean; -+ function "<=" (Left, Right : Address) return Boolean; -+ function ">" (Left, Right : Address) return Boolean; -+ function ">=" (Left, Right : Address) return Boolean; -+ function "=" (Left, Right : Address) return Boolean; -+ -+ pragma Import (Intrinsic, "<"); -+ pragma Import (Intrinsic, "<="); -+ pragma Import (Intrinsic, ">"); -+ pragma Import (Intrinsic, ">="); -+ pragma Import (Intrinsic, "="); -+ -+ -- Other System-Dependent Declarations -+ -+ type Bit_Order is (High_Order_First, Low_Order_First); -+ Default_Bit_Order : constant Bit_Order := Low_Order_First; -+ pragma Warnings (Off, Default_Bit_Order); -- kill constant condition warning -+ -+ -- Priority-related Declarations (RM D.1) -+ -+ Max_Priority : constant Positive := 30; -+ Max_Interrupt_Priority : constant Positive := 31; -+ -+ subtype Any_Priority is Integer range 0 .. 31; -+ subtype Priority is Any_Priority range 0 .. 30; -+ subtype Interrupt_Priority is Any_Priority range 31 .. 31; -+ -+ Default_Priority : constant Priority := 15; -+ -+private -+ -+ type Address is mod Memory_Size; -+ Null_Address : constant Address := 0; -+ -+ -------------------------------------- -+ -- System Implementation Parameters -- -+ -------------------------------------- -+ -+ -- These parameters provide information about the target that is used -+ -- by the compiler. They are in the private part of System, where they -+ -- can be accessed using the special circuitry in the Targparm unit -+ -- whose source should be consulted for more detailed descriptions -+ -- of the individual switch values. -+ -+ Backend_Divide_Checks : constant Boolean := False; -+ Backend_Overflow_Checks : constant Boolean := True; -+ Command_Line_Args : constant Boolean := True; -+ Configurable_Run_Time : constant Boolean := False; -+ Denorm : constant Boolean := True; -+ Duration_32_Bits : constant Boolean := False; -+ Exit_Status_Supported : constant Boolean := True; -+ Fractional_Fixed_Ops : constant Boolean := False; -+ Frontend_Layout : constant Boolean := False; -+ Machine_Overflows : constant Boolean := False; -+ Machine_Rounds : constant Boolean := True; -+ OpenVMS : constant Boolean := False; -+ Preallocated_Stacks : constant Boolean := False; -+ Signed_Zeros : constant Boolean := True; -+ Stack_Check_Default : constant Boolean := False; -+ Stack_Check_Probes : constant Boolean := True; -+ Stack_Check_Limits : constant Boolean := False; -+ Support_64_Bit_Divides : constant Boolean := True; -+ Support_Aggregates : constant Boolean := True; -+ Support_Composite_Assign : constant Boolean := True; -+ Support_Composite_Compare : constant Boolean := True; -+ Support_Long_Shifts : constant Boolean := True; -+ Always_Compatible_Rep : constant Boolean := False; -+ Suppress_Standard_Library : constant Boolean := False; -+ Use_Ada_Main_Program_Name : constant Boolean := False; -+ ZCX_By_Default : constant Boolean := True; -+ GCC_ZCX_Support : constant Boolean := True; -+ -+end System; ---- gcc/ada/system-freebsd-x86_64.ads.orig -+++ gcc/ada/system-freebsd-x86_64.ads -@@ -32,6 +32,7 @@ - -- GNAT was originally developed by the GNAT team at New York University. -- - -- Extensive contributions were provided by Ada Core Technologies Inc. -- - -- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- - ------------------------------------------------------------------------------ - - package System is -@@ -90,6 +91,7 @@ - pragma Warnings (Off, Default_Bit_Order); -- kill constant condition warning - - -- Priority-related Declarations (RM D.1) -+ -- For FreeBSD 8.0, definitions found in <sys/priority.h> - - Max_Priority : constant Positive := 30; - Max_Interrupt_Priority : constant Positive := 31; -@@ -98,7 +100,7 @@ - subtype Priority is Any_Priority range 0 .. 30; - subtype Interrupt_Priority is Any_Priority range 31 .. 31; - -- Default_Priority : constant Priority := 15; -+ Default_Priority : constant Priority := Max_Priority / 2; - - private - -@@ -116,7 +118,7 @@ - -- of the individual switch values. - - Backend_Divide_Checks : constant Boolean := False; -- Backend_Overflow_Checks : constant Boolean := False; -+ Backend_Overflow_Checks : constant Boolean := True; - Command_Line_Args : constant Boolean := True; - Configurable_Run_Time : constant Boolean := False; - Denorm : constant Boolean := True; ---- gcc/ada/system-freebsd-x86.ads.orig -+++ gcc/ada/system-freebsd-x86.ads -@@ -32,6 +32,7 @@ - -- GNAT was originally developed by the GNAT team at New York University. -- - -- Extensive contributions were provided by Ada Core Technologies Inc. -- - -- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- - ------------------------------------------------------------------------------ - - package System is -@@ -90,6 +91,7 @@ - pragma Warnings (Off, Default_Bit_Order); -- kill constant condition warning - - -- Priority-related Declarations (RM D.1) -+ -- For FreeBSD 8.0, definitions found in <sys/priority.h> - - Max_Priority : constant Positive := 30; - Max_Interrupt_Priority : constant Positive := 31; -@@ -98,7 +100,7 @@ - subtype Priority is Any_Priority range 0 .. 30; - subtype Interrupt_Priority is Any_Priority range 31 .. 31; - -- Default_Priority : constant Priority := 15; -+ Default_Priority : constant Priority := Max_Priority / 2; - - private - ---- /dev/null -+++ gcc/ada/system-netbsd-x86_64.ads -@@ -0,0 +1,147 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME COMPONENTS -- -+-- -- -+-- S Y S T E M -- -+-- -- -+-- S p e c -- -+-- (NetBSD/x86_64 Version) -- -+-- -- -+-- Copyright (C) 1992-2009, Free Software Foundation, Inc. -- -+-- -- -+-- This specification is derived from the Ada Reference Manual for use with -- -+-- GNAT. The copyright notice above, and the license provisions that follow -- -+-- apply solely to the contents of the part following the private keyword. -- -+-- -- -+-- GNAT is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 3, or (at your option) any later ver- -- -+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- -+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- -+-- or FITNESS FOR A PARTICULAR PURPOSE. -- -+-- -- -+-- As a special exception under Section 7 of GPL version 3, you are granted -- -+-- additional permissions described in the GCC Runtime Library Exception, -- -+-- version 3.1, as published by the Free Software Foundation. -- -+-- -- -+-- You should have received a copy of the GNU General Public License and -- -+-- a copy of the GCC Runtime Library Exception along with this program; -- -+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- -+-- <http://www.gnu.org/licenses/>. -- -+-- -- -+-- GNAT was originally developed by the GNAT team at New York University. -- -+-- Extensive contributions were provided by Ada Core Technologies Inc. -- -+-- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- -+------------------------------------------------------------------------------ -+ -+package System is -+ pragma Pure; -+ -- Note that we take advantage of the implementation permission to make -+ -- this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada -+ -- 2005, this is Pure in any case (AI-362). -+ -+ type Name is (SYSTEM_NAME_GNAT); -+ System_Name : constant Name := SYSTEM_NAME_GNAT; -+ -+ -- System-Dependent Named Numbers -+ -+ Min_Int : constant := Long_Long_Integer'First; -+ Max_Int : constant := Long_Long_Integer'Last; -+ -+ Max_Binary_Modulus : constant := 2 ** Long_Long_Integer'Size; -+ Max_Nonbinary_Modulus : constant := 2 ** Integer'Size - 1; -+ -+ Max_Base_Digits : constant := Long_Long_Float'Digits; -+ Max_Digits : constant := Long_Long_Float'Digits; -+ -+ Max_Mantissa : constant := 63; -+ Fine_Delta : constant := 2.0 ** (-Max_Mantissa); -+ -+ Tick : constant := 0.000_001; -+ -+ -- Storage-related Declarations -+ -+ type Address is private; -+ pragma Preelaborable_Initialization (Address); -+ Null_Address : constant Address; -+ -+ Storage_Unit : constant := 8; -+ Word_Size : constant := 64; -+ Memory_Size : constant := 2 ** 64; -+ -+ -- Address comparison -+ -+ function "<" (Left, Right : Address) return Boolean; -+ function "<=" (Left, Right : Address) return Boolean; -+ function ">" (Left, Right : Address) return Boolean; -+ function ">=" (Left, Right : Address) return Boolean; -+ function "=" (Left, Right : Address) return Boolean; -+ -+ pragma Import (Intrinsic, "<"); -+ pragma Import (Intrinsic, "<="); -+ pragma Import (Intrinsic, ">"); -+ pragma Import (Intrinsic, ">="); -+ pragma Import (Intrinsic, "="); -+ -+ -- Other System-Dependent Declarations -+ -+ type Bit_Order is (High_Order_First, Low_Order_First); -+ Default_Bit_Order : constant Bit_Order := Low_Order_First; -+ pragma Warnings (Off, Default_Bit_Order); -- kill constant condition warning -+ -+ -- Priority-related Declarations (RM D.1) -+ -+ Max_Priority : constant Positive := 30; -+ Max_Interrupt_Priority : constant Positive := 31; -+ -+ subtype Any_Priority is Integer range 0 .. 31; -+ subtype Priority is Any_Priority range 0 .. 30; -+ subtype Interrupt_Priority is Any_Priority range 31 .. 31; -+ -+ Default_Priority : constant Priority := 15; -+ -+private -+ -+ type Address is mod Memory_Size; -+ Null_Address : constant Address := 0; -+ -+ -------------------------------------- -+ -- System Implementation Parameters -- -+ -------------------------------------- -+ -+ -- These parameters provide information about the target that is used -+ -- by the compiler. They are in the private part of System, where they -+ -- can be accessed using the special circuitry in the Targparm unit -+ -- whose source should be consulted for more detailed descriptions -+ -- of the individual switch values. -+ -+ Backend_Divide_Checks : constant Boolean := False; -+ Backend_Overflow_Checks : constant Boolean := True; -+ Command_Line_Args : constant Boolean := True; -+ Configurable_Run_Time : constant Boolean := False; -+ Denorm : constant Boolean := True; -+ Duration_32_Bits : constant Boolean := False; -+ Exit_Status_Supported : constant Boolean := True; -+ Fractional_Fixed_Ops : constant Boolean := False; -+ Frontend_Layout : constant Boolean := False; -+ Machine_Overflows : constant Boolean := False; -+ Machine_Rounds : constant Boolean := True; -+ OpenVMS : constant Boolean := False; -+ Preallocated_Stacks : constant Boolean := False; -+ Signed_Zeros : constant Boolean := True; -+ Stack_Check_Default : constant Boolean := False; -+ Stack_Check_Probes : constant Boolean := True; -+ Stack_Check_Limits : constant Boolean := False; -+ Support_64_Bit_Divides : constant Boolean := True; -+ Support_Aggregates : constant Boolean := True; -+ Support_Composite_Assign : constant Boolean := True; -+ Support_Composite_Compare : constant Boolean := True; -+ Support_Long_Shifts : constant Boolean := True; -+ Always_Compatible_Rep : constant Boolean := True; -+ Suppress_Standard_Library : constant Boolean := False; -+ Use_Ada_Main_Program_Name : constant Boolean := False; -+ ZCX_By_Default : constant Boolean := True; -+ GCC_ZCX_Support : constant Boolean := True; -+ -+end System; ---- /dev/null -+++ gcc/ada/system-netbsd-x86.ads -@@ -0,0 +1,147 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME COMPONENTS -- -+-- -- -+-- S Y S T E M -- -+-- -- -+-- S p e c -- -+-- (NetBSD/x86 Version) -- -+-- -- -+-- Copyright (C) 1992-2009, Free Software Foundation, Inc. -- -+-- -- -+-- This specification is derived from the Ada Reference Manual for use with -- -+-- GNAT. The copyright notice above, and the license provisions that follow -- -+-- apply solely to the contents of the part following the private keyword. -- -+-- -- -+-- GNAT is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 3, or (at your option) any later ver- -- -+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- -+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- -+-- or FITNESS FOR A PARTICULAR PURPOSE. -- -+-- -- -+-- As a special exception under Section 7 of GPL version 3, you are granted -- -+-- additional permissions described in the GCC Runtime Library Exception, -- -+-- version 3.1, as published by the Free Software Foundation. -- -+-- -- -+-- You should have received a copy of the GNU General Public License and -- -+-- a copy of the GCC Runtime Library Exception along with this program; -- -+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- -+-- <http://www.gnu.org/licenses/>. -- -+-- -- -+-- GNAT was originally developed by the GNAT team at New York University. -- -+-- Extensive contributions were provided by Ada Core Technologies Inc. -- -+-- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- -+------------------------------------------------------------------------------ -+ -+package System is -+ pragma Pure; -+ -- Note that we take advantage of the implementation permission to make -+ -- this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada -+ -- 2005, this is Pure in any case (AI-362). -+ -+ type Name is (SYSTEM_NAME_GNAT); -+ System_Name : constant Name := SYSTEM_NAME_GNAT; -+ -+ -- System-Dependent Named Numbers -+ -+ Min_Int : constant := Long_Long_Integer'First; -+ Max_Int : constant := Long_Long_Integer'Last; -+ -+ Max_Binary_Modulus : constant := 2 ** Long_Long_Integer'Size; -+ Max_Nonbinary_Modulus : constant := 2 ** Integer'Size - 1; -+ -+ Max_Base_Digits : constant := Long_Long_Float'Digits; -+ Max_Digits : constant := Long_Long_Float'Digits; -+ -+ Max_Mantissa : constant := 63; -+ Fine_Delta : constant := 2.0 ** (-Max_Mantissa); -+ -+ Tick : constant := 0.000_001; -+ -+ -- Storage-related Declarations -+ -+ type Address is private; -+ pragma Preelaborable_Initialization (Address); -+ Null_Address : constant Address; -+ -+ Storage_Unit : constant := 8; -+ Word_Size : constant := 32; -+ Memory_Size : constant := 2 ** 32; -+ -+ -- Address comparison -+ -+ function "<" (Left, Right : Address) return Boolean; -+ function "<=" (Left, Right : Address) return Boolean; -+ function ">" (Left, Right : Address) return Boolean; -+ function ">=" (Left, Right : Address) return Boolean; -+ function "=" (Left, Right : Address) return Boolean; -+ -+ pragma Import (Intrinsic, "<"); -+ pragma Import (Intrinsic, "<="); -+ pragma Import (Intrinsic, ">"); -+ pragma Import (Intrinsic, ">="); -+ pragma Import (Intrinsic, "="); -+ -+ -- Other System-Dependent Declarations -+ -+ type Bit_Order is (High_Order_First, Low_Order_First); -+ Default_Bit_Order : constant Bit_Order := Low_Order_First; -+ pragma Warnings (Off, Default_Bit_Order); -- kill constant condition warning -+ -+ -- Priority-related Declarations (RM D.1) -+ -+ Max_Priority : constant Positive := 30; -+ Max_Interrupt_Priority : constant Positive := 31; -+ -+ subtype Any_Priority is Integer range 0 .. 31; -+ subtype Priority is Any_Priority range 0 .. 30; -+ subtype Interrupt_Priority is Any_Priority range 31 .. 31; -+ -+ Default_Priority : constant Priority := 15; -+ -+private -+ -+ type Address is mod Memory_Size; -+ Null_Address : constant Address := 0; -+ -+ -------------------------------------- -+ -- System Implementation Parameters -- -+ -------------------------------------- -+ -+ -- These parameters provide information about the target that is used -+ -- by the compiler. They are in the private part of System, where they -+ -- can be accessed using the special circuitry in the Targparm unit -+ -- whose source should be consulted for more detailed descriptions -+ -- of the individual switch values. -+ -+ Backend_Divide_Checks : constant Boolean := False; -+ Backend_Overflow_Checks : constant Boolean := True; -+ Command_Line_Args : constant Boolean := True; -+ Configurable_Run_Time : constant Boolean := False; -+ Denorm : constant Boolean := True; -+ Duration_32_Bits : constant Boolean := False; -+ Exit_Status_Supported : constant Boolean := True; -+ Fractional_Fixed_Ops : constant Boolean := False; -+ Frontend_Layout : constant Boolean := False; -+ Machine_Overflows : constant Boolean := False; -+ Machine_Rounds : constant Boolean := True; -+ OpenVMS : constant Boolean := False; -+ Preallocated_Stacks : constant Boolean := False; -+ Signed_Zeros : constant Boolean := True; -+ Stack_Check_Default : constant Boolean := False; -+ Stack_Check_Probes : constant Boolean := True; -+ Stack_Check_Limits : constant Boolean := False; -+ Support_64_Bit_Divides : constant Boolean := True; -+ Support_Aggregates : constant Boolean := True; -+ Support_Composite_Assign : constant Boolean := True; -+ Support_Composite_Compare : constant Boolean := True; -+ Support_Long_Shifts : constant Boolean := True; -+ Always_Compatible_Rep : constant Boolean := False; -+ Suppress_Standard_Library : constant Boolean := False; -+ Use_Ada_Main_Program_Name : constant Boolean := False; -+ ZCX_By_Default : constant Boolean := True; -+ GCC_ZCX_Support : constant Boolean := True; -+ -+end System; ---- /dev/null -+++ gcc/ada/system-openbsd-x86_64.ads -@@ -0,0 +1,147 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME COMPONENTS -- -+-- -- -+-- S Y S T E M -- -+-- -- -+-- S p e c -- -+-- (DragonFly BSD/x86_64 Version) -- -+-- -- -+-- Copyright (C) 1992-2009, Free Software Foundation, Inc. -- -+-- -- -+-- This specification is derived from the Ada Reference Manual for use with -- -+-- GNAT. The copyright notice above, and the license provisions that follow -- -+-- apply solely to the contents of the part following the private keyword. -- -+-- -- -+-- GNAT is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 3, or (at your option) any later ver- -- -+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- -+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- -+-- or FITNESS FOR A PARTICULAR PURPOSE. -- -+-- -- -+-- As a special exception under Section 7 of GPL version 3, you are granted -- -+-- additional permissions described in the GCC Runtime Library Exception, -- -+-- version 3.1, as published by the Free Software Foundation. -- -+-- -- -+-- You should have received a copy of the GNU General Public License and -- -+-- a copy of the GCC Runtime Library Exception along with this program; -- -+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- -+-- <http://www.gnu.org/licenses/>. -- -+-- -- -+-- GNAT was originally developed by the GNAT team at New York University. -- -+-- Extensive contributions were provided by Ada Core Technologies Inc. -- -+-- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- -+------------------------------------------------------------------------------ -+ -+package System is -+ pragma Pure; -+ -- Note that we take advantage of the implementation permission to make -+ -- this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada -+ -- 2005, this is Pure in any case (AI-362). -+ -+ type Name is (SYSTEM_NAME_GNAT); -+ System_Name : constant Name := SYSTEM_NAME_GNAT; -+ -+ -- System-Dependent Named Numbers -+ -+ Min_Int : constant := Long_Long_Integer'First; -+ Max_Int : constant := Long_Long_Integer'Last; -+ -+ Max_Binary_Modulus : constant := 2 ** Long_Long_Integer'Size; -+ Max_Nonbinary_Modulus : constant := 2 ** Integer'Size - 1; -+ -+ Max_Base_Digits : constant := Long_Long_Float'Digits; -+ Max_Digits : constant := Long_Long_Float'Digits; -+ -+ Max_Mantissa : constant := 63; -+ Fine_Delta : constant := 2.0 ** (-Max_Mantissa); -+ -+ Tick : constant := 0.000_001; -+ -+ -- Storage-related Declarations -+ -+ type Address is private; -+ pragma Preelaborable_Initialization (Address); -+ Null_Address : constant Address; -+ -+ Storage_Unit : constant := 8; -+ Word_Size : constant := 64; -+ Memory_Size : constant := 2 ** 64; -+ -+ -- Address comparison -+ -+ function "<" (Left, Right : Address) return Boolean; -+ function "<=" (Left, Right : Address) return Boolean; -+ function ">" (Left, Right : Address) return Boolean; -+ function ">=" (Left, Right : Address) return Boolean; -+ function "=" (Left, Right : Address) return Boolean; -+ -+ pragma Import (Intrinsic, "<"); -+ pragma Import (Intrinsic, "<="); -+ pragma Import (Intrinsic, ">"); -+ pragma Import (Intrinsic, ">="); -+ pragma Import (Intrinsic, "="); -+ -+ -- Other System-Dependent Declarations -+ -+ type Bit_Order is (High_Order_First, Low_Order_First); -+ Default_Bit_Order : constant Bit_Order := Low_Order_First; -+ pragma Warnings (Off, Default_Bit_Order); -- kill constant condition warning -+ -+ -- Priority-related Declarations (RM D.1) -+ -+ Max_Priority : constant Positive := 30; -+ Max_Interrupt_Priority : constant Positive := 31; -+ -+ subtype Any_Priority is Integer range 0 .. 31; -+ subtype Priority is Any_Priority range 0 .. 30; -+ subtype Interrupt_Priority is Any_Priority range 31 .. 31; -+ -+ Default_Priority : constant Priority := 15; -+ -+private -+ -+ type Address is mod Memory_Size; -+ Null_Address : constant Address := 0; -+ -+ -------------------------------------- -+ -- System Implementation Parameters -- -+ -------------------------------------- -+ -+ -- These parameters provide information about the target that is used -+ -- by the compiler. They are in the private part of System, where they -+ -- can be accessed using the special circuitry in the Targparm unit -+ -- whose source should be consulted for more detailed descriptions -+ -- of the individual switch values. -+ -+ Backend_Divide_Checks : constant Boolean := False; -+ Backend_Overflow_Checks : constant Boolean := True; -+ Command_Line_Args : constant Boolean := True; -+ Configurable_Run_Time : constant Boolean := False; -+ Denorm : constant Boolean := True; -+ Duration_32_Bits : constant Boolean := False; -+ Exit_Status_Supported : constant Boolean := True; -+ Fractional_Fixed_Ops : constant Boolean := False; -+ Frontend_Layout : constant Boolean := False; -+ Machine_Overflows : constant Boolean := False; -+ Machine_Rounds : constant Boolean := True; -+ OpenVMS : constant Boolean := False; -+ Preallocated_Stacks : constant Boolean := False; -+ Signed_Zeros : constant Boolean := True; -+ Stack_Check_Default : constant Boolean := False; -+ Stack_Check_Probes : constant Boolean := True; -+ Stack_Check_Limits : constant Boolean := False; -+ Support_64_Bit_Divides : constant Boolean := True; -+ Support_Aggregates : constant Boolean := True; -+ Support_Composite_Assign : constant Boolean := True; -+ Support_Composite_Compare : constant Boolean := True; -+ Support_Long_Shifts : constant Boolean := True; -+ Always_Compatible_Rep : constant Boolean := True; -+ Suppress_Standard_Library : constant Boolean := False; -+ Use_Ada_Main_Program_Name : constant Boolean := False; -+ ZCX_By_Default : constant Boolean := False; -+ GCC_ZCX_Support : constant Boolean := False; -+ -+end System; ---- /dev/null -+++ gcc/ada/system-openbsd-x86.ads -@@ -0,0 +1,147 @@ -+------------------------------------------------------------------------------ -+-- -- -+-- GNAT RUN-TIME COMPONENTS -- -+-- -- -+-- S Y S T E M -- -+-- -- -+-- S p e c -- -+-- (DragonFly BSD/x86 Version) -- -+-- -- -+-- Copyright (C) 1992-2009, Free Software Foundation, Inc. -- -+-- -- -+-- This specification is derived from the Ada Reference Manual for use with -- -+-- GNAT. The copyright notice above, and the license provisions that follow -- -+-- apply solely to the contents of the part following the private keyword. -- -+-- -- -+-- GNAT is free software; you can redistribute it and/or modify it under -- -+-- terms of the GNU General Public License as published by the Free Soft- -- -+-- ware Foundation; either version 3, or (at your option) any later ver- -- -+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- -+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- -+-- or FITNESS FOR A PARTICULAR PURPOSE. -- -+-- -- -+-- As a special exception under Section 7 of GPL version 3, you are granted -- -+-- additional permissions described in the GCC Runtime Library Exception, -- -+-- version 3.1, as published by the Free Software Foundation. -- -+-- -- -+-- You should have received a copy of the GNU General Public License and -- -+-- a copy of the GCC Runtime Library Exception along with this program; -- -+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- -+-- <http://www.gnu.org/licenses/>. -- -+-- -- -+-- GNAT was originally developed by the GNAT team at New York University. -- -+-- Extensive contributions were provided by Ada Core Technologies Inc. -- -+-- -- -+-- Copyright (C) 2010 John Marino <draco@marino.st> -- -+------------------------------------------------------------------------------ -+ -+package System is -+ pragma Pure; -+ -- Note that we take advantage of the implementation permission to make -+ -- this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada -+ -- 2005, this is Pure in any case (AI-362). -+ -+ type Name is (SYSTEM_NAME_GNAT); -+ System_Name : constant Name := SYSTEM_NAME_GNAT; -+ -+ -- System-Dependent Named Numbers -+ -+ Min_Int : constant := Long_Long_Integer'First; -+ Max_Int : constant := Long_Long_Integer'Last; -+ -+ Max_Binary_Modulus : constant := 2 ** Long_Long_Integer'Size; -+ Max_Nonbinary_Modulus : constant := 2 ** Integer'Size - 1; -+ -+ Max_Base_Digits : constant := Long_Long_Float'Digits; -+ Max_Digits : constant := Long_Long_Float'Digits; -+ -+ Max_Mantissa : constant := 63; -+ Fine_Delta : constant := 2.0 ** (-Max_Mantissa); -+ -+ Tick : constant := 0.000_001; -+ -+ -- Storage-related Declarations -+ -+ type Address is private; -+ pragma Preelaborable_Initialization (Address); -+ Null_Address : constant Address; -+ -+ Storage_Unit : constant := 8; -+ Word_Size : constant := 32; -+ Memory_Size : constant := 2 ** 32; -+ -+ -- Address comparison -+ -+ function "<" (Left, Right : Address) return Boolean; -+ function "<=" (Left, Right : Address) return Boolean; -+ function ">" (Left, Right : Address) return Boolean; -+ function ">=" (Left, Right : Address) return Boolean; -+ function "=" (Left, Right : Address) return Boolean; -+ -+ pragma Import (Intrinsic, "<"); -+ pragma Import (Intrinsic, "<="); -+ pragma Import (Intrinsic, ">"); -+ pragma Import (Intrinsic, ">="); -+ pragma Import (Intrinsic, "="); -+ -+ -- Other System-Dependent Declarations -+ -+ type Bit_Order is (High_Order_First, Low_Order_First); -+ Default_Bit_Order : constant Bit_Order := Low_Order_First; -+ pragma Warnings (Off, Default_Bit_Order); -- kill constant condition warning -+ -+ -- Priority-related Declarations (RM D.1) -+ -+ Max_Priority : constant Positive := 30; -+ Max_Interrupt_Priority : constant Positive := 31; -+ -+ subtype Any_Priority is Integer range 0 .. 31; -+ subtype Priority is Any_Priority range 0 .. 30; -+ subtype Interrupt_Priority is Any_Priority range 31 .. 31; -+ -+ Default_Priority : constant Priority := 15; -+ -+private -+ -+ type Address is mod Memory_Size; -+ Null_Address : constant Address := 0; -+ -+ -------------------------------------- -+ -- System Implementation Parameters -- -+ -------------------------------------- -+ -+ -- These parameters provide information about the target that is used -+ -- by the compiler. They are in the private part of System, where they -+ -- can be accessed using the special circuitry in the Targparm unit -+ -- whose source should be consulted for more detailed descriptions -+ -- of the individual switch values. -+ -+ Backend_Divide_Checks : constant Boolean := False; -+ Backend_Overflow_Checks : constant Boolean := True; -+ Command_Line_Args : constant Boolean := True; -+ Configurable_Run_Time : constant Boolean := False; -+ Denorm : constant Boolean := True; -+ Duration_32_Bits : constant Boolean := False; -+ Exit_Status_Supported : constant Boolean := True; -+ Fractional_Fixed_Ops : constant Boolean := False; -+ Frontend_Layout : constant Boolean := False; -+ Machine_Overflows : constant Boolean := False; -+ Machine_Rounds : constant Boolean := True; -+ OpenVMS : constant Boolean := False; -+ Preallocated_Stacks : constant Boolean := False; -+ Signed_Zeros : constant Boolean := True; -+ Stack_Check_Default : constant Boolean := False; -+ Stack_Check_Probes : constant Boolean := True; -+ Stack_Check_Limits : constant Boolean := False; -+ Support_64_Bit_Divides : constant Boolean := True; -+ Support_Aggregates : constant Boolean := True; -+ Support_Composite_Assign : constant Boolean := True; -+ Support_Composite_Compare : constant Boolean := True; -+ Support_Long_Shifts : constant Boolean := True; -+ Always_Compatible_Rep : constant Boolean := True; -+ Suppress_Standard_Library : constant Boolean := False; -+ Use_Ada_Main_Program_Name : constant Boolean := False; -+ ZCX_By_Default : constant Boolean := False; -+ GCC_ZCX_Support : constant Boolean := False; -+ -+end System; ---- gcc/ada/tracebak.c.orig -+++ gcc/ada/tracebak.c -@@ -199,24 +199,10 @@ - - */ - --/*--------------------------- Darwin 8 or newer ----------------------------*/ --#if defined (__APPLE__) \ -- && defined (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) \ -- && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1040 -- --#define USE_GCC_UNWINDER -+/*--------------------------- PPC AIX/Darwin ----------------------------*/ - --#if defined (__i386__) || defined (__x86_64__) --#define PC_ADJUST -2 --#elif defined (__ppc__) || defined (__ppc64__) --#define PC_ADJUST -4 --#else --#error Unhandled darwin architecture. --#endif -- --/*------------------------ PPC AIX/Older Darwin -------------------------*/ --#elif ((defined (_POWER) && defined (_AIX)) \ -- || (defined (__APPLE__) && defined (__ppc__))) -+#if ((defined (_POWER) && defined (_AIX)) || \ -+(defined (__ppc__) && defined (__APPLE__))) - - #define USE_GENERIC_UNWINDER - -@@ -304,6 +290,24 @@ - window of frame N-1 (positive offset from fp), in which we retrieve the - saved return address. We then end up with our caller's return address. */ - -+/*---------------------------- x86 *BSD --------------------------------*/ -+ -+#elif defined (__i386__) && \ -+ ( defined (__NetBSD__) \ -+ || defined (__FreeBSD__) \ -+ || defined (__OpenBSD__) \ -+ || defined (__DragonFly__) ) -+ -+#define USE_GCC_UNWINDER -+/* The generic unwinder is not used for this target because the default -+ implementation doesn't unwind on the BSD platforms. AMD64 targets use the -+ gcc unwinder for all platforms, so let's keep i386 consistent with that. -+*/ -+ -+#define PC_ADJUST -2 -+/* The minimum size of call instructions on this architecture is 2 bytes */ -+ -+ - /*------------------------------- x86 ----------------------------------*/ - - #elif defined (i386) ---- gcc/ada/gcc-interface/Makefile.in.orig -+++ gcc/ada/gcc-interface/Makefile.in -@@ -1,5 +1,6 @@ - # Makefile for GNU Ada Compiler (GNAT). - # Copyright (C) 1994-2010 Free Software Foundation, Inc. -+# Copyright (C) 2010, 2011 John Marino <www.dragonlace.net> - - #This file is part of GCC. - -@@ -1010,6 +1011,7 @@ - a-numaux.adb<a-numaux-x86.adb \ - a-numaux.ads<a-numaux-x86.ads \ - a-intnam.ads<a-intnam-solaris.ads \ -+ g-trasym.adb<g-trasym-bsd.adb \ - s-inmaop.adb<s-inmaop-posix.adb \ - s-intman.adb<s-intman-solaris.adb \ - s-osinte.adb<s-osinte-solaris.adb \ -@@ -1171,17 +1173,24 @@ - LIBRARY_VERSION := $(LIB_VERSION) - endif - -+ -+# FREEBSD i386 -+# TOOL_TARGET_PAIRS probably does nothing, moved to gnattools/configure.ac - ifeq ($(strip $(filter-out %86 freebsd%,$(arch) $(osys))),) - LIBGNAT_TARGET_PAIRS = \ -+ a-exetim.adb<a-exetim-posix.adb \ -+ a-exetim.ads<a-exetim-default.ads \ - a-intnam.ads<a-intnam-freebsd.ads \ - a-numaux.adb<a-numaux-x86.adb \ - a-numaux.ads<a-numaux-x86.ads \ - g-bytswa.adb<g-bytswa-x86.adb \ -+ g-socthi.adb<g-socthi-bsd.adb \ -+ g-trasym.adb<g-trasym-bsd.adb \ - s-inmaop.adb<s-inmaop-posix.adb \ - s-intman.adb<s-intman-posix.adb \ - s-osinte.adb<s-osinte-freebsd.adb \ -- s-osinte.ads<s-osinte-freebsd.ads \ -- s-osprim.adb<s-osprim-posix.adb \ -+ s-osinte.ads<s-osinte-freebsd32.ads \ -+ s-osprim.adb<s-osprim-bsd32.adb \ - s-taprop.adb<s-taprop-posix.adb \ - s-taspri.ads<s-taspri-posix.ads \ - s-tpopsp.adb<s-tpopsp-posix.adb \ -@@ -1191,12 +1200,324 @@ - mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb - GNATLIB_SHARED = gnatlib-shared-dual - -+ EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o -+ EXTRA_GNATRTL_TASKING_OBJS=a-exetim.o -+ -+ EH_MECHANISM=-gcc -+ THREADSLIB= -lpthread -+ GMEM_LIB = gmemlib -+ LIBRARY_VERSION := $(LIB_VERSION) -+endif -+ -+ -+# FREEBSD AMD64 -+# TOOL_TARGET_PAIRS probably does nothing, moved to gnattools/configure.ac -+ifeq ($(strip $(filter-out x86_64 freebsd%,$(arch) $(osys))),) -+ LIBGNAT_TARGET_PAIRS = \ -+ a-exetim.adb<a-exetim-posix.adb \ -+ a-exetim.ads<a-exetim-default.ads \ -+ a-intnam.ads<a-intnam-freebsd.ads \ -+ a-numaux.adb<a-numaux-x86.adb \ -+ a-numaux.ads<a-numaux-x86.ads \ -+ g-bytswa.adb<g-bytswa-x86.adb \ -+ g-socthi.adb<g-socthi-bsd.adb \ -+ g-trasym.adb<g-trasym-bsd.adb \ -+ s-inmaop.adb<s-inmaop-posix.adb \ -+ s-intman.adb<s-intman-posix.adb \ -+ s-osinte.adb<s-osinte-freebsd.adb \ -+ s-osinte.ads<s-osinte-freebsd64.ads \ -+ s-osprim.adb<s-osprim-bsd64.adb \ -+ s-taprop.adb<s-taprop-posix.adb \ -+ s-taspri.ads<s-taspri-posix.ads \ -+ s-tpopsp.adb<s-tpopsp-posix.adb \ -+ system.ads<system-freebsd-x86_64.ads -+ -+ TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb -+ GNATLIB_SHARED = gnatlib-shared-dual -+ -+ EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o -+ EXTRA_GNATRTL_TASKING_OBJS=a-exetim.o -+ -+ EH_MECHANISM=-gcc -+ THREADSLIB= -lpthread -+ GMEM_LIB = gmemlib -+ LIBRARY_VERSION := $(LIB_VERSION) -+endif -+ -+ -+# DRAGONFLY i386 -+# TOOL_TARGET_PAIRS probably does nothing, moved to gnattools/configure.ac -+ifeq ($(strip $(filter-out %86 dragonfly%,$(arch) $(osys))),) -+ LIBGNAT_TARGET_PAIRS = \ -+ a-exetim.adb<a-exetim-posix.adb \ -+ a-exetim.ads<a-exetim-default.ads \ -+ a-intnam.ads<a-intnam-dragonfly.ads \ -+ a-numaux.adb<a-numaux-x86.adb \ -+ a-numaux.ads<a-numaux-x86.ads \ -+ g-bytswa.adb<g-bytswa-x86.adb \ -+ g-socthi.adb<g-socthi-bsd.adb \ -+ g-trasym.adb<g-trasym-bsd.adb \ -+ s-inmaop.adb<s-inmaop-posix.adb \ -+ s-intman.adb<s-intman-posix.adb \ -+ s-osinte.adb<s-osinte-dragonfly.adb \ -+ s-osinte.ads<s-osinte-dragonfly.ads \ -+ s-osprim.adb<s-osprim-posix.adb \ -+ s-taprop.adb<s-taprop-posix.adb \ -+ s-taspri.ads<s-taspri-posix.ads \ -+ s-tpopsp.adb<s-tpopsp-posix.adb \ -+ system.ads<system-dragonfly-x86.ads -+ -+ TOOLS_TARGET_PAIRS = \ -+ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb -+ GNATLIB_SHARED = gnatlib-shared-dual -+ -+ EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o -+ EXTRA_GNATRTL_TASKING_OBJS=a-exetim.o -+ -+ EH_MECHANISM=-gcc -+ THREADSLIB= -lpthread -+ GMEM_LIB = gmemlib -+ LIBRARY_VERSION := $(LIB_VERSION) -+endif -+ -+ -+# DRAGONFLY AMD64 -+# TOOL_TARGET_PAIRS probably does nothing, moved to gnattools/configure.ac -+ifeq ($(strip $(filter-out x86_64 dragonfly%,$(arch) $(osys))),) -+ LIBGNAT_TARGET_PAIRS = \ -+ a-exetim.adb<a-exetim-posix.adb \ -+ a-exetim.ads<a-exetim-default.ads \ -+ a-intnam.ads<a-intnam-dragonfly.ads \ -+ a-numaux.adb<a-numaux-x86.adb \ -+ a-numaux.ads<a-numaux-x86.ads \ -+ g-bytswa.adb<g-bytswa-x86.adb \ -+ g-socthi.adb<g-socthi-bsd.adb \ -+ g-trasym.adb<g-trasym-bsd.adb \ -+ s-inmaop.adb<s-inmaop-posix.adb \ -+ s-intman.adb<s-intman-posix.adb \ -+ s-osinte.adb<s-osinte-dragonfly.adb \ -+ s-osinte.ads<s-osinte-dragonfly.ads \ -+ s-osprim.adb<s-osprim-posix.adb \ -+ s-taprop.adb<s-taprop-posix.adb \ -+ s-taspri.ads<s-taspri-posix.ads \ -+ s-tpopsp.adb<s-tpopsp-posix.adb \ -+ system.ads<system-dragonfly-x86_64.ads -+ -+ TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb -+ GNATLIB_SHARED = gnatlib-shared-dual -+ -+ EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o -+ EXTRA_GNATRTL_TASKING_OBJS=a-exetim.o -+ -+ EH_MECHANISM=-gcc -+ THREADSLIB= -lpthread -+ GMEM_LIB = gmemlib -+ LIBRARY_VERSION := $(LIB_VERSION) -+endif -+ -+ -+# OPENBSD i386 -+# TOOL_TARGET_PAIRS probably does nothing, moved to gnattools/configure.ac -+ifeq ($(strip $(filter-out %86 openbsd%,$(arch) $(osys))),) -+ LIBGNAT_TARGET_PAIRS = \ -+ a-exetim.adb<a-exetim-posix.adb \ -+ a-exetim.ads<a-exetim-default.ads \ -+ a-intnam.ads<a-intnam-openbsd.ads \ -+ a-numaux.adb<a-numaux-x86.adb \ -+ a-numaux.ads<a-numaux-x86.ads \ -+ g-bytswa.adb<g-bytswa-x86.adb \ -+ g-socthi.adb<g-socthi-bsd.adb \ -+ g-trasym.adb<g-trasym-bsd.adb \ -+ s-inmaop.adb<s-inmaop-posix.adb \ -+ s-intman.adb<s-intman-posix.adb \ -+ s-osinte.adb<s-osinte-openbsd.adb \ -+ s-osinte.ads<s-osinte-openbsd.ads \ -+ s-osprim.adb<s-osprim-bsd32.adb \ -+ s-taprop.adb<s-taprop-posix.adb \ -+ s-taspri.ads<s-taspri-posix.ads \ -+ s-tpopsp.adb<s-tpopsp-posix.adb \ -+ system.ads<system-openbsd-x86.ads -+ -+ TOOLS_TARGET_PAIRS = \ -+ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb -+ GNATLIB_SHARED = gnatlib-shared-dual -+ -+ EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o -+ EXTRA_GNATRTL_TASKING_OBJS=a-exetim.o -+ -+ EH_MECHANISM= -+ THREADSLIB= -lpthread -+ GMEM_LIB = -+ LIBRARY_VERSION := $(LIB_VERSION) -+endif -+ -+ -+# OPENBSD AMD64 -+# TOOL_TARGET_PAIRS probably does nothing, moved to gnattools/configure.ac -+ifeq ($(strip $(filter-out x86_64 openbsd%,$(arch) $(osys))),) -+ LIBGNAT_TARGET_PAIRS = \ -+ a-exetim.adb<a-exetim-posix.adb \ -+ a-exetim.ads<a-exetim-default.ads \ -+ a-intnam.ads<a-intnam-openbsd.ads \ -+ a-numaux.adb<a-numaux-x86.adb \ -+ a-numaux.ads<a-numaux-x86.ads \ -+ g-bytswa.adb<g-bytswa-x86.adb \ -+ g-socthi.adb<g-socthi-bsd.adb \ -+ g-trasym.adb<g-trasym-bsd.adb \ -+ s-inmaop.adb<s-inmaop-posix.adb \ -+ s-intman.adb<s-intman-posix.adb \ -+ s-osinte.adb<s-osinte-openbsd.adb \ -+ s-osinte.ads<s-osinte-openbsd.ads \ -+ s-osprim.adb<s-osprim-bsd32.adb \ -+ s-taprop.adb<s-taprop-posix.adb \ -+ s-taspri.ads<s-taspri-posix.ads \ -+ s-tpopsp.adb<s-tpopsp-posix.adb \ -+ system.ads<system-openbsd-x86_64.ads -+ -+ TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb -+ GNATLIB_SHARED = gnatlib-shared-dual -+ -+ EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o -+ EXTRA_GNATRTL_TASKING_OBJS=a-exetim.o -+ -+ EH_MECHANISM= -+ THREADSLIB= -lpthread -+ GMEM_LIB = -+ LIBRARY_VERSION := $(LIB_VERSION) -+endif -+ -+ -+# NETBSD i386 (5+ only) -+# TOOL_TARGET_PAIRS probably does nothing, moved to gnattools/configure.ac -+ifeq ($(strip $(filter-out %86 netbsd%,$(arch) $(osys))),) -+ LIBGNAT_TARGET_PAIRS = \ -+ a-exetim.adb<a-exetim-posix.adb \ -+ a-exetim.ads<a-exetim-default.ads \ -+ a-intnam.ads<a-intnam-netbsd.ads \ -+ a-numaux.adb<a-numaux-x86.adb \ -+ a-numaux.ads<a-numaux-x86.ads \ -+ g-bytswa.adb<g-bytswa-x86.adb \ -+ g-socthi.adb<g-socthi-netbsd.adb \ -+ g-trasym.adb<g-trasym-bsd.adb \ -+ s-inmaop.adb<s-inmaop-posix.adb \ -+ s-intman.adb<s-intman-posix.adb \ -+ s-osinte.adb<s-osinte-netbsd.adb \ -+ s-taprop.adb<s-taprop-posix.adb \ -+ s-taspri.ads<s-taspri-posix.ads \ -+ s-tpopsp.adb<s-tpopsp-posix.adb \ -+ system.ads<system-netbsd-x86.ads -+ -+ ifeq ($(strip $(filter-out %86 netbsdelf5%,$(arch) $(osys))),) -+ LIBGNAT_TARGET_PAIRS+= \ -+ s-osinte.ads<s-osinte-netbsd.ads \ -+ s-osprim.adb<s-osprim-bsd32.adb -+ else -+ LIBGNAT_TARGET_PAIRS+= \ -+ g-socthi.ads<g-socthi-netbsd6.ads \ -+ s-osinte.ads<s-osinte-netbsd6.ads \ -+ s-osprim.adb<s-osprim-bsdn6.adb -+ endif -+ -+ TOOLS_TARGET_PAIRS = \ -+ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb -+ GNATLIB_SHARED = gnatlib-shared-dual -+ -+ EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o -+ EXTRA_GNATRTL_TASKING_OBJS=a-exetim.o -+ - EH_MECHANISM=-gcc - THREADSLIB= -lpthread - GMEM_LIB = gmemlib - LIBRARY_VERSION := $(LIB_VERSION) - endif - -+ -+# NETBSD AMD64 (5+ only) -+# TOOL_TARGET_PAIRS probably does nothing, moved to gnattools/configure.ac -+ifeq ($(strip $(filter-out x86_64 netbsd%,$(arch) $(osys))),) -+ LIBGNAT_TARGET_PAIRS = \ -+ a-exetim.adb<a-exetim-posix.adb \ -+ a-exetim.ads<a-exetim-default.ads \ -+ a-intnam.ads<a-intnam-netbsd.ads \ -+ a-numaux.adb<a-numaux-x86.adb \ -+ a-numaux.ads<a-numaux-x86.ads \ -+ g-bytswa.adb<g-bytswa-x86.adb \ -+ g-socthi.adb<g-socthi-netbsd.adb \ -+ g-trasym.adb<g-trasym-bsd.adb \ -+ s-inmaop.adb<s-inmaop-posix.adb \ -+ s-intman.adb<s-intman-posix.adb \ -+ s-osinte.adb<s-osinte-netbsd.adb \ -+ s-taprop.adb<s-taprop-posix.adb \ -+ s-taspri.ads<s-taspri-posix.ads \ -+ s-tpopsp.adb<s-tpopsp-posix.adb \ -+ system.ads<system-netbsd-x86_64.ads -+ -+ ifeq ($(strip $(filter-out x86_64 netbsd5%,$(arch) $(osys))),) -+ LIBGNAT_TARGET_PAIRS+= \ -+ s-osinte.ads<s-osinte-netbsd.ads \ -+ s-osprim.adb<s-osprim-bsd32.adb -+ else -+ LIBGNAT_TARGET_PAIRS+= \ -+ g-socthi.ads<g-socthi-netbsd6.ads \ -+ s-osinte.ads<s-osinte-netbsd6.ads \ -+ s-osprim.adb<s-osprim-bsdn6.adb -+ endif -+ -+ TOOLS_TARGET_PAIRS=mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb -+ GNATLIB_SHARED = gnatlib-shared-dual -+ -+ EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o -+ EXTRA_GNATRTL_TASKING_OBJS=a-exetim.o -+ -+ EH_MECHANISM=-gcc -+ THREADSLIB= -lpthread -+ GMEM_LIB = gmemlib -+ LIBRARY_VERSION := $(LIB_VERSION) -+endif -+ -+ -+# ANDROID (ARM) -+# TOOL_TARGET_PAIRS probably does nothing, moved to gnattools/configure.ac -+ifeq ($(strip $(filter-out arm% android eabi,$(targ))),) -+ LIBGNAT_TARGET_PAIRS = \ -+ a-intnam.ads<a-intnam-linux.ads \ -+ g-trasym.ads<g-trasym-unimplemented.ads \ -+ g-trasym.adb<g-trasym-unimplemented.adb \ -+ s-inmaop.adb<s-inmaop-posix.adb \ -+ s-intman.adb<s-intman-posix.adb \ -+ s-linux.ads<s-linux.ads \ -+ s-osinte.adb<s-osinte-posix.adb \ -+ s-osinte.ads<s-osinte-android.ads \ -+ s-osprim.adb<s-osprim-posix.adb \ -+ s-taprop.adb<s-taprop-linux.adb \ -+ s-tasinf.ads<s-tasinf-linux.ads \ -+ s-tasinf.adb<s-tasinf-linux.adb \ -+ s-taspri.ads<s-taspri-posix-noaltstack.ads \ -+ s-tpopsp.adb<s-tpopsp-posix-foreign.adb -+ -+ ifeq ($(strip $(filter-out arm%b,$(arch))),) -+ LIBGNAT_TARGET_PAIRS += \ -+ system.ads<system-linux-armeb.ads -+ else -+ LIBGNAT_TARGET_PAIRS += \ -+ system.ads<system-linux-armel.ads -+ endif -+ -+ TOOLS_TARGET_PAIRS = \ -+ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ -+ indepsw.adb<indepsw-gnu.adb -+ -+ EXTRA_LIBGNAT_SRCS+= signal_android.c -+ EXTRA_LIBGNAT_OBJS+= signal_android.o -+ EXTRA_GNATRTL_TASKING_OBJS= s-linux.o -+ EH_MECHANISM= -+ THREADSLIB= -+ GNATLIB_SHARED= gnatlib-shared-dual -+ GMEM_LIB= gmemlib -+ LIBRARY_VERSION:= $(LIB_VERSION) -+endif -+ -+ - ifeq ($(strip $(filter-out s390% linux%,$(arch) $(osys))),) - LIBGNAT_TARGET_PAIRS_COMMON = \ - a-intnam.ads<a-intnam-linux.ads \ ---- gnattools/configure.orig -+++ gnattools/configure -@@ -5,6 +5,7 @@ - # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, - # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software - # Foundation, Inc. -+# Copyright (C) 2010 John Marino <draco@marino.st> - # - # This configure script is free software; the Free Software Foundation - # gives unlimited permission to copy, distribute and modify it. -@@ -2058,7 +2059,27 @@ - s390*-*-linux*) - TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb" - ;; -- *86-*-freebsd*) -+ *86-*-freebsd* | x86_64-*-freebsd*) -+ TOOLS_TARGET_PAIRS="\ -+ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ -+ indepsw.adb<indepsw-gnu.adb" -+ ;; -+ *86-*-dragonfly* | x86_64-*-dragonfly*) -+ TOOLS_TARGET_PAIRS="\ -+ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ -+ indepsw.adb<indepsw-gnu.adb" -+ ;; -+ *86-*-openbsd* | x86_64-*-openbsd*) -+ TOOLS_TARGET_PAIRS="\ -+ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ -+ indepsw.adb<indepsw-gnu.adb" -+ ;; -+ *86-*-netbsdelf* | x86_64-*-netbsd*) -+ TOOLS_TARGET_PAIRS="\ -+ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ -+ indepsw.adb<indepsw-gnu.adb" -+ ;; -+ arm*-android-eabi) - TOOLS_TARGET_PAIRS="\ - mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ - indepsw.adb<indepsw-gnu.adb" ---- gnattools/configure.ac.orig -+++ gnattools/configure.ac -@@ -1,5 +1,6 @@ - # Configure script for libada. - # Copyright 2003, 2004, 2009 Free Software Foundation, Inc. -+# Copyright 2010 John Marino <draco@marino.st> - # - # 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 -@@ -98,7 +99,27 @@ - s390*-*-linux*) - TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb" - ;; -- *86-*-freebsd*) -+ *86-*-freebsd* | x86_64-*-freebsd*) -+ TOOLS_TARGET_PAIRS="\ -+ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ -+ indepsw.adb<indepsw-gnu.adb" -+ ;; -+ *86-*-dragonfly* | x86_64-*-dragonfly*) -+ TOOLS_TARGET_PAIRS="\ -+ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ -+ indepsw.adb<indepsw-gnu.adb" -+ ;; -+ *86-*-openbsd* | x86_64-*-openbsd*) -+ TOOLS_TARGET_PAIRS="\ -+ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ -+ indepsw.adb<indepsw-gnu.adb" -+ ;; -+ *86-*-netbsdelf* | x86_64-*-netbsd*) -+ TOOLS_TARGET_PAIRS="\ -+ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ -+ indepsw.adb<indepsw-gnu.adb" -+ ;; -+ arm*-android-eabi) - TOOLS_TARGET_PAIRS="\ - mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \ - indepsw.adb<indepsw-gnu.adb" diff --git a/lang/gnat-aux/files/diff-ada-testsuite b/lang/gnat-aux/files/diff-ada-testsuite deleted file mode 100644 index e6b3c87938c0..000000000000 --- a/lang/gnat-aux/files/diff-ada-testsuite +++ /dev/null @@ -1,190 +0,0 @@ ---- gcc/testsuite/ada/acats/run_acats.orig -+++ gcc/testsuite/ada/acats/run_acats -@@ -5,20 +5,6 @@ - exit 1 - fi - --# Provide which replacement. --# --# type -p is missing from Solaris 2 /bin/sh and /bin/ksh (ksh88), but both --# ksh93 and bash have it. --# type output format differs between ksh88 and ksh93, so avoid it if --# type -p is present. Unfortunately, HP-UX /bin/sh ignores -p with type. --# Fall back to whence which ksh88 and ksh93 provide, but bash does not. -- --which () { -- path=`type -p $* 2>/dev/null` && { echo $path | awk '{print $NF}'; return 0; } -- path=`type $* 2>/dev/null` && { echo $path | awk '{print $NF}'; return 0; } -- path=`whence $* 2>/dev/null` && { echo $path; return 0; } -- return 1 --} - - # Set up environment to use the Ada compiler from the object tree - ---- gcc/testsuite/ada/acats/run_all.sh.orig -+++ gcc/testsuite/ada/acats/run_all.sh -@@ -35,6 +35,14 @@ - echo "$@" >> $dir/acats.log - } - -+inform () { -+ printf "%04d %7s" $1 $2 -+} -+ -+disinform () { -+ printf "\r" -+} -+ - dir=`${PWDCMD-pwd}` - - if [ "$testdir" = "" ]; then -@@ -197,6 +205,18 @@ - glob_countn=0 - glob_countok=0 - glob_countu=0 -+countdown=0 -+ -+for chapter in $chapters; do -+ if [ -d $dir/tests/$chapter ]; then -+ cd $dir/tests/$chapter -+ ls *.a *.ada *.adt *.am *.dep 2> /dev/null | sed -e 's/\(.*\)\..*/\1/g' | \ -+ cut -c1-7 | sort | uniq | comm -23 - $dir/support/norun.lst \ -+ > $dir/tests/$chapter/${chapter}.lst -+ countn=`wc -l < $dir/tests/$chapter/${chapter}.lst` -+ countdown=`expr $countdown + $countn` -+ fi -+done - - for chapter in $chapters; do - display Running chapter $chapter ... -@@ -207,10 +227,6 @@ - continue - fi - -- cd $dir/tests/$chapter -- ls *.a *.ada *.adt *.am *.dep 2> /dev/null | sed -e 's/\(.*\)\..*/\1/g' | \ -- cut -c1-7 | sort | uniq | comm -23 - $dir/support/norun.lst \ -- > $dir/tests/$chapter/${chapter}.lst - countn=`wc -l < $dir/tests/$chapter/${chapter}.lst` - glob_countn=`expr $glob_countn + $countn` - counti=0 -@@ -233,10 +249,13 @@ - if [ $? -eq 0 ]; then - extraflags="$extraflags -gnat95" - fi -+ inform $countdown $i -+ countdown=`expr $countdown - 1` - test=$dir/tests/$chapter/$i - mkdir $test && cd $test >> $dir/acats.log 2>&1 - - if [ $? -ne 0 ]; then -+ disinform - display "FAIL: $i" - failed="${failed}${i} " - clean_dir -@@ -260,6 +279,7 @@ - cxh1001) extraflags="-a -f"; echo "pragma Normalize_Scalars;" > gnat.adc - esac - if [ "$main" = "" ]; then -+ disinform - display "FAIL: $i" - failed="${failed}${i} " - clean_dir -@@ -268,6 +288,7 @@ - - target_gnatmake $extraflags -I$dir/support $main >> $dir/acats.log 2>&1 - if [ $? -ne 0 ]; then -+ disinform - display "FAIL: $i" - failed="${failed}${i} " - clean_dir -@@ -282,6 +303,7 @@ - target_run $dir/tests/$chapter/$i/$binmain > $dir/tests/$chapter/$i/${i}.log 2>&1 - cd $dir/tests/$chapter/$i - cat ${i}.log >> $dir/acats.log -+ disinform - egrep -e '(==== |\+\+\+\+ |\!\!\!\! )' ${i}.log > /dev/null 2>&1 - if [ $? -ne 0 ]; then - grep 'tasking not implemented' ${i}.log > /dev/null 2>&1 ---- gcc/testsuite/gnat.dg/test_raise_from_pure.adb.orig -+++ gcc/testsuite/gnat.dg/test_raise_from_pure.adb -@@ -1,4 +1,4 @@ ---- { dg-do run { xfail arm*-*-* } } -+-- { dg-do run { xfail arm*-*-* *-*-openbsd* } } - -- { dg-options "-O2" } - - -- This is an optimization test and its failure is only a missed optimization. ---- /dev/null -+++ gcc/testsuite/gnat.dg/unchecked_convert5.txt -@@ -0,0 +1,9 @@ -+The test "unchecked_converted5.adb" was deleted because it only -+supportes the following targets: -+ -+ hppa* -+ sparc* -+ powerpc* -+ -+Currently I'm not working with any of those, so until that changes, the -+test will be absent to lower the "unsupported" test number. ---- /dev/null -+++ gcc/testsuite/gnat.dg/unchecked_convert6.txt -@@ -0,0 +1,9 @@ -+The test "unchecked_converted6.adb" was deleted because it only -+supportes the following targets: -+ -+ hppa* -+ sparc* -+ powerpc* -+ -+Currently I'm not working with any of those, so until that changes, the -+test will be absent to lower the "unsupported" test number. ---- gcc/testsuite/gnat.dg/unchecked_convert5.adb -+++ /dev/null -@@ -1,22 +0,0 @@ ---- { dg-do run { target hppa*-*-* sparc*-*-* powerpc*-*-* } } -- --with Unchecked_Conversion; -- --procedure Unchecked_Convert5 is -- -- subtype c_1 is string(1..1); -- -- function int2c1 is -- { dg-warning "different sizes" } -- new unchecked_conversion (source => integer, target => c_1); -- -- c1 : c_1; -- --begin -- -- c1 := int2c1(16#12#); -- -- if c1 (1) /= ASCII.Nul then -- raise Program_Error; -- end if; -- --end; ---- gcc/testsuite/gnat.dg/unchecked_convert6.adb -+++ /dev/null -@@ -1,22 +0,0 @@ ---- { dg-do run { target hppa*-*-* sparc*-*-* powerpc*-*-* } } -- --with Unchecked_Conversion; -- --procedure Unchecked_Convert6 is -- -- subtype c_5 is string(1..5); -- -- function int2c5 is -- { dg-warning "different sizes" } -- new unchecked_conversion (source => integer, target => c_5); -- -- c5 : c_5; -- --begin -- -- c5 := int2c5(16#12#); -- -- if c5 (4) /= ASCII.DC2 then -- raise Program_Error; -- end if; -- --end; diff --git a/lang/gnat-aux/files/diff-core b/lang/gnat-aux/files/diff-core deleted file mode 100644 index 28f2659d8fc1..000000000000 --- a/lang/gnat-aux/files/diff-core +++ /dev/null @@ -1,2069 +0,0 @@ ---- gcc/config.gcc.orig -+++ gcc/config.gcc -@@ -529,7 +529,7 @@ - extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" - fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'` - tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}" -- tmake_file="t-slibgcc-elf-ver t-freebsd" -+ tmake_file="t-slibgcc-elf-ver t-libc-ok t-libgcc-pic t-exceptions" - case ${enable_threads} in - no) - fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h" -@@ -545,6 +545,9 @@ - ;; - esac - ;; -+ gnat | single) -+ # Let these non-posix thread selections fall through if requested -+ ;; - *) - echo 'Unknown thread configuration for FreeBSD' - exit 1 -@@ -561,6 +564,39 @@ - # need_64bit_hwint=yes # system compiler has this for all arch! - use_gcc_stdint=wrap - ;; -+*-*-dragonfly*) -+ gas=yes -+ gnu_ld=yes -+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" -+ tmake_file="t-slibgcc-elf-ver t-libc-ok t-libgcc-pic t-exceptions" -+ case ${enable_threads} in -+ "" | yes | posix) -+ thread_file='posix' -+ ;; -+ no | gnat | single) -+ # Let these non-posix thread selections fall through if requested -+ ;; -+ *) -+ echo 'Unknown thread configuration for DragonFly BSD' -+ exit 1 -+ ;; -+ esac -+ extra_options="$extra_options rpath.opt dragonfly.opt" -+ default_use_cxa_atexit=yes -+ ;; -+*-android-eabi*) -+ extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o" -+ gas=yes -+ gnu_ld=yes -+ case ${enable_threads} in -+ "" | yes | posix) thread_file='posix' ;; -+ esac -+ tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC ANDROID_DEFAULT=1" -+ extra_options="$extra_options linux.opt linux-android.opt" -+ default_use_cxa_atexit=yes -+ use_gcc_tgmath=no -+ use_gcc_stdint=wrap -+ ;; - *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu) - extra_options="$extra_options gnu-user.opt" - extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o" -@@ -618,9 +654,11 @@ - esac - ;; - *-*-netbsd*) -- tmake_file="t-slibgcc-elf-ver t-libc-ok t-netbsd t-libgcc-pic" -+ tmake_file="t-slibgcc-elf-ver t-libc-ok t-libgcc-pic t-exceptions" - gas=yes - gnu_ld=yes -+ nbsd_major=`echo ${target} | sed -e 's/.*netbsd\(elf\)\{0,1\}//g' | sed -e 's/\..*//g'` -+ tm_defines="${tm_defines} NBSD_MAJOR=${nbsd_major}" - - # NetBSD 2.0 and later get POSIX threads enabled by default. - # Allow them to be explicitly enabled on any other version. -@@ -657,12 +695,22 @@ - esac - ;; - *-*-openbsd*) -+ gas=yes -+ gnu_ld=yes -+ # Do NOT add crt*.o extra parts! - tmake_file="t-libc-ok t-openbsd t-libgcc-pic" - case ${enable_threads} in -- yes) -+ "" | yes | posix) - thread_file='posix' - tmake_file="${tmake_file} t-openbsd-thread" - ;; -+ no | gnat | single) -+ # Let these non-posix thread selections fall through -+ ;; -+ *) -+ echo 'Unknown thread configuration for OpenBSD' -+ exit 1 -+ ;; - esac - case ${target} in - *-*-openbsd2.*|*-*-openbsd3.[012]) -@@ -793,6 +841,24 @@ - tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" - extra_parts="crtinit.o crtfini.o" - ;; -+arm*-android-eabi*) -+ case $target in -+ arm*b-*) -+ tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" -+ ;; -+ esac -+ tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h" -+ tm_file="$tm_file arm/elf.h arm/linux-gas.h arm/linux-elf.h arm/bpabi.h arm/linux-eabi.h" -+ tm_file="$tm_file ../../libgcc/config/arm/bpabi-lib.h arm/aout.h arm/arm.h" -+ -+ tmake_file="t-slibgcc-elf-ver t-linux arm/t-arm" -+ tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc" -+ tmake_file="$tmake_file arm/t-linux-androideabi arm/t-arm-softfp soft-fp/t-softfp" -+ -+ # The BPABI long long divmod functions return a 128-bit value in registers r0-r3. -+ # Correctly modeling that requires the use of TImode. -+ need_64bit_hwint=yes -+ ;; - arm-wrs-vxworks) - tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h" - extra_options="${extra_options} arm/vxworks.opt" -@@ -1219,9 +1285,18 @@ - tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h" - tmake_file="${tmake_file} i386/t-crtstuff" - ;; -+i[34567]86-*-dragonfly*) -+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h" -+ tmake_file="${tmake_file} i386/t-crtstuff" -+ ;; -+x86_64-*-dragonfly*) -+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/x86-64.h i386/dragonfly.h i386/dragonfly64.h" -+ tmake_file="${tmake_file} i386/t-crtstuff" -+ ;; - i[34567]86-*-netbsdelf*) -- tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h" -+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h netbsd-stdint.h" - extra_options="${extra_options} netbsd.opt netbsd-elf.opt" -+ tmake_file="${tmake_file} i386/t-crtstuff" - ;; - i[34567]86-*-netbsd*) - tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h netbsd.h netbsd-aout.h i386/netbsd.h" -@@ -1231,7 +1306,7 @@ - use_collect2=yes - ;; - x86_64-*-netbsd*) -- tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h" -+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h netbsd-stdint.h" - extra_options="${extra_options} netbsd.opt netbsd-elf.opt" - tmake_file="${tmake_file} i386/t-crtstuff" - ;; -@@ -1247,8 +1322,12 @@ - tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h" - tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h" - extra_options="${extra_options} openbsd.opt" -- gas=yes -- gnu_ld=yes -+ ;; -+x86_64-*-openbsd*) -+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h" -+ tm_file="${tm_file} openbsd.h openbsd-libpthread.h i386/x86-64.h i386/openbsd64.h exec-stack.h" -+ extra_options="${extra_options} openbsd.opt" -+ tmake_file="${tmake_file} i386/t-crtstuff" - ;; - i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu) - # Intel 80386's running GNU/* -@@ -3673,6 +3752,11 @@ - i[34567]86-*-freebsd* | x86_64-*-freebsd*) - tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp" - ;; -+ i[34567]86-*-dragonfly* | x86_64-*-dragonfly*) -+ tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp" -+ ;; -+ i[34567]86-*-openbsd* | x86_64-*-openbsd*) -+ ;; - ia64*-*-linux*) - tmake_file="${tmake_file} ia64/t-fprules-softfp soft-fp/t-softfp" - ;; ---- gcc/crtstuff.c.orig -+++ gcc/crtstuff.c -@@ -79,11 +79,19 @@ - } - #endif - -+#if defined(TARGET_DL_ITERATE_PHDR) && \ -+ ( defined(__FreeBSD__) \ -+ || defined(__OpenBSD__) \ -+ || defined(__NetBSD__) \ -+ || defined(__DragonFly__)) -+#define BSD_DL_ITERATE_PHDR_AVAILABLE -+#endif -+ - #if defined(OBJECT_FORMAT_ELF) \ - && !defined(OBJECT_FORMAT_FLAT) \ - && defined(HAVE_LD_EH_FRAME_HDR) \ - && !defined(inhibit_libc) && !defined(CRTSTUFFT_O) \ -- && defined(__FreeBSD__) && __FreeBSD__ >= 7 -+ && defined(BSD_DL_ITERATE_PHDR_AVAILABLE) - #include <link.h> - # define USE_PT_GNU_EH_FRAME - #endif ---- gcc/DEV-PHASE.orig -+++ gcc/DEV-PHASE -@@ -0,0 +1 @@ -+release ---- gcc/unwind-dw2-fde-glibc.c.orig -+++ gcc/unwind-dw2-fde-glibc.c -@@ -53,13 +53,21 @@ - #endif - - #if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ -- && defined(__FreeBSD__) && __FreeBSD__ >= 7 -+ && defined(TARGET_DL_ITERATE_PHDR) \ -+ && (defined(__FreeBSD__) || defined(__DragonFly__)) - # define ElfW __ElfN - # define USE_PT_GNU_EH_FRAME - #endif - - #if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ - && defined(TARGET_DL_ITERATE_PHDR) \ -+ && (defined(__OpenBSD__) || defined(__NetBSD__)) -+# define ElfW(n) Elf_##n -+# define USE_PT_GNU_EH_FRAME -+#endif -+ -+#if !defined(inhibit_libc) && defined(HAVE_LD_EH_FRAME_HDR) \ -+ && defined(TARGET_DL_ITERATE_PHDR) \ - && defined(__sun__) && defined(__svr4__) - # define USE_PT_GNU_EH_FRAME - #endif ---- /dev/null -+++ gcc/config/dragonfly-stdint.h -@@ -0,0 +1,56 @@ -+/* Definitions for <stdint.h> types for DragonFly systems. -+ Copyright (C) 2009 Free Software Foundation, Inc. -+ Contributed by Gerald Pfeifer <gerald@pfeifer.com>. -+ -+This file is part of GCC. -+ -+GCC 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, or (at your option) -+any later version. -+ -+GCC 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. -+ -+Under Section 7 of GPL version 3, you are granted additional -+permissions described in the GCC Runtime Library Exception, version -+3.1, as published by the Free Software Foundation. -+ -+You should have received a copy of the GNU General Public License and -+a copy of the GCC Runtime Library Exception along with this program; -+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+<http://www.gnu.org/licenses/>. */ -+ -+#define SIG_ATOMIC_TYPE "int" -+ -+#define INT8_TYPE "signed char" -+#define INT16_TYPE "short int" -+#define INT32_TYPE "int" -+#define INT64_TYPE (LONG_TYPE_SIZE == 64 ? "long int" : "long long int") -+#define UINT8_TYPE "unsigned char" -+#define UINT16_TYPE "short unsigned int" -+#define UINT32_TYPE "unsigned int" -+#define UINT64_TYPE (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "long long unsigned int") -+ -+#define INT_LEAST8_TYPE INT8_TYPE -+#define INT_LEAST16_TYPE INT16_TYPE -+#define INT_LEAST32_TYPE INT32_TYPE -+#define INT_LEAST64_TYPE INT64_TYPE -+#define UINT_LEAST8_TYPE UINT8_TYPE -+#define UINT_LEAST16_TYPE UINT16_TYPE -+#define UINT_LEAST32_TYPE UINT32_TYPE -+#define UINT_LEAST64_TYPE UINT64_TYPE -+ -+#define INT_FAST8_TYPE INT32_TYPE -+#define INT_FAST16_TYPE INT32_TYPE -+#define INT_FAST32_TYPE INT32_TYPE -+#define INT_FAST64_TYPE INT64_TYPE -+#define UINT_FAST8_TYPE UINT32_TYPE -+#define UINT_FAST16_TYPE UINT32_TYPE -+#define UINT_FAST32_TYPE UINT32_TYPE -+#define UINT_FAST64_TYPE UINT64_TYPE -+ -+#define INTPTR_TYPE (LONG_TYPE_SIZE == 64 ? INT64_TYPE : INT32_TYPE) -+#define UINTPTR_TYPE (LONG_TYPE_SIZE == 64 ? UINT64_TYPE : UINT32_TYPE) ---- /dev/null -+++ gcc/config/dragonfly.h -@@ -0,0 +1,141 @@ -+/* Base configuration file for all DragonFly targets. -+ Copyright (C) 1999, 2000, 2001, 2007, 2008 Free Software Foundation, Inc. -+ Copyright (C) 2010-2012 John R. Marino <www.dragonlace.net> -+ -+This file is part of GCC. -+ -+GCC 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, or (at your option) -+any later version. -+ -+GCC 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 GCC; see the file COPYING3. If not see -+<http://www.gnu.org/licenses/>. */ -+ -+/* Common DragonFly configuration. -+ All DragonFly architectures should include this file, which will specify -+ their commonalities. -+ -+ Adapted from gcc/config/freebsd.h by -+ Joerg Sonnenberger <joerg@bec.de> -+ -+ Adapted from gcc/config/i386/freebsd-elf.h by -+ David O'Brien <obrien@FreeBSD.org>. -+ Further work by David O'Brien <obrien@FreeBSD.org> and -+ Loren J. Rittle <ljrittle@acm.org>. */ -+ -+/* JRM: 15 Nov 2010 -+ SWITCH_TAKES_ARG & WORD_SWITCH_TAKES_ARG removed due to poisoning. -+ http://gcc.gnu.org/ml/gcc-patches/2010-10/msg02102.html -+ http://gcc.gnu.org/ml/gcc-patches/2010-10/msg02373.html */ -+ -+#undef TARGET_OS_CPP_BUILTINS -+#define TARGET_OS_CPP_BUILTINS() \ -+ do \ -+ { \ -+ builtin_define_std ("unix"); \ -+ builtin_define ("__DragonFly__"); \ -+ builtin_assert ("system=unix"); \ -+ builtin_assert ("system=bsd"); \ -+ builtin_assert ("system=DragonFly"); \ -+ } \ -+ while (0) -+ -+#undef CPP_SPEC -+#define CPP_SPEC \ -+ "%(cpp_cpu) %(cpp_arch) %{posix:-D_POSIX_SOURCE}" -+ -+#undef STARTFILE_SPEC -+#define STARTFILE_SPEC \ -+ "%{!shared: \ -+ %{pg:gcrt1.o%s} \ -+ %{!pg: \ -+ %{p:gcrt1.o%s} \ -+ %{!p: \ -+ %{profile: gcrt1.o%s} \ -+ %{!profile: \ -+ %{pie: Scrt1.o%s;:crt1.o%s}}}}} \ -+ crti.o%s \ -+ %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}" -+ -+#undef ENDFILE_SPEC -+#define ENDFILE_SPEC \ -+ "%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s" -+ -+#undef LIB_SPEC -+#define LIB_SPEC \ -+ "%{pthread:-lpthread} -lc" -+ -+/* Provide a LINK_SPEC appropriate for DragonFly. Here we provide support -+ for the special GCC options -static and -shared, which allow us to -+ link things in one of these three modes by applying the appropriate -+ combinations of options at link-time. -+ -+ When the -shared link option is used a final link is not being -+ done. */ -+ -+#define DFBSD_LINK_SPEC \ -+ "%{p:%nconsider using '-pg' instead of '-p' with gprof(1)} \ -+ %{v:-V} \ -+ %{assert*} %{R*} %{rpath*} %{defsym*} \ -+ %{shared:-Bshareable %{h*} %{soname*}} \ -+ %{!shared: \ -+ %{!static: \ -+ %{rdynamic:-export-dynamic} \ -+ -dynamic-linker %(dfbsd_dynamic_linker) \ -+ } \ -+ %{static:-Bstatic}} \ -+ %{!static:--hash-style=both} \ -+ %{symbolic:-Bsymbolic}" -+ -+#undef LINK_SPEC -+#define LINK_SPEC DFBSD_LINK_SPEC -+ -+#define DFBSD_DYNAMIC_LINKER "/usr/libexec/ld-elf.so.2" -+ -+#if defined(HAVE_LD_EH_FRAME_HDR) -+#define LINK_EH_SPEC "--eh-frame-hdr" -+#endif -+ -+/* Use --as-needed -lgcc_s for eh support. */ -+#ifdef HAVE_LD_AS_NEEDED -+#define USE_LD_AS_NEEDED 1 -+#endif -+ -+/************************[ Target stuff ]***********************************/ -+ -+/* All DragonFly Architectures support the ELF object file format. */ -+#undef OBJECT_FORMAT_ELF -+#define OBJECT_FORMAT_ELF -+ -+/* Don't assume anything about the header files. */ -+#undef NO_IMPLICIT_EXTERN_C -+#define NO_IMPLICIT_EXTERN_C 1 -+ -+/* Follow DragonFly's standard headers (<machine/stdint.h>, etc...). */ -+ -+#undef WCHAR_TYPE -+#define WCHAR_TYPE "int" -+ -+#undef WINT_TYPE -+#define WINT_TYPE "int" -+ -+#define MATH_LIBRARY_PROFILE "m_p" -+ -+/* Code generation parameters. */ -+ -+/* Use periods rather than dollar signs in special g++ assembler names. -+ This ensures the configuration knows our system correctly so we can link -+ with libraries compiled with the native cc. */ -+#undef NO_DOLLAR_IN_LABEL -+ -+/* Used by libgcc2.c. We support file locking with fcntl / F_SETLKW. -+ This enables the test coverage code to use file locking when exiting a -+ program, which avoids race conditions if the program has forked. */ -+#define TARGET_POSIX_IO ---- /dev/null -+++ gcc/config/dragonfly.h.orig -@@ -0,0 +1,139 @@ -+/* Base configuration file for all DragonFly targets. -+ Copyright (C) 1999, 2000, 2001, 2007, 2008 Free Software Foundation, Inc. -+ Copyright (C) 2010-2012 John R. Marino <www.dragonlace.net> -+ -+This file is part of GCC. -+ -+GCC 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, or (at your option) -+any later version. -+ -+GCC 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 GCC; see the file COPYING3. If not see -+<http://www.gnu.org/licenses/>. */ -+ -+/* Common DragonFly configuration. -+ All DragonFly architectures should include this file, which will specify -+ their commonalities. -+ -+ Adapted from gcc/config/freebsd.h by -+ Joerg Sonnenberger <joerg@bec.de> -+ -+ Adapted from gcc/config/i386/freebsd-elf.h by -+ David O'Brien <obrien@FreeBSD.org>. -+ Further work by David O'Brien <obrien@FreeBSD.org> and -+ Loren J. Rittle <ljrittle@acm.org>. */ -+ -+/* JRM: 15 Nov 2010 -+ SWITCH_TAKES_ARG & WORD_SWITCH_TAKES_ARG removed due to poisoning. -+ http://gcc.gnu.org/ml/gcc-patches/2010-10/msg02102.html -+ http://gcc.gnu.org/ml/gcc-patches/2010-10/msg02373.html */ -+ -+#undef TARGET_OS_CPP_BUILTINS -+#define TARGET_OS_CPP_BUILTINS() \ -+ do \ -+ { \ -+ builtin_define_std ("unix"); \ -+ builtin_define ("__DragonFly__"); \ -+ builtin_assert ("system=unix"); \ -+ builtin_assert ("system=bsd"); \ -+ builtin_assert ("system=DragonFly"); \ -+ } \ -+ while (0) -+ -+#undef CPP_SPEC -+#define CPP_SPEC \ -+ "%(cpp_cpu) %(cpp_arch) %{posix:-D_POSIX_SOURCE}" -+ -+#undef STARTFILE_SPEC -+#define STARTFILE_SPEC \ -+ "%{!shared: \ -+ %{pg:gcrt1.o%s} \ -+ %{!pg: \ -+ %{p:gcrt1.o%s} \ -+ %{!p: \ -+ %{profile: gcrt1.o%s} \ -+ %{!profile: \ -+ %{pie: Scrt1.o%s;:crt1.o%s}}}}} \ -+ crti.o%s \ -+ %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}" -+ -+#undef ENDFILE_SPEC -+#define ENDFILE_SPEC \ -+ "%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s" -+ -+#undef LIB_SPEC -+#define LIB_SPEC \ -+ "%{pthread:-lpthread} -lc" -+ -+/* Provide a LINK_SPEC appropriate for DragonFly. Here we provide support -+ for the special GCC options -static and -shared, which allow us to -+ link things in one of these three modes by applying the appropriate -+ combinations of options at link-time. -+ -+ When the -shared link option is used a final link is not being -+ done. */ -+ -+#define DFBSD_LINK_SPEC \ -+ "%{p:%nconsider using '-pg' instead of '-p' with gprof(1)} \ -+ %{v:-V} \ -+ %{assert*} %{R*} %{rpath*} %{defsym*} \ -+ %{shared:-Bshareable %{h*} %{soname*}} \ -+ %{!shared: \ -+ %{!static: \ -+ %{rdynamic:-export-dynamic} \ -+ -dynamic-linker %(dfbsd_dynamic_linker) } \ -+ %{static:-Bstatic}} \ -+ %{symbolic:-Bsymbolic}" -+ -+#undef LINK_SPEC -+#define LINK_SPEC DFBSD_LINK_SPEC -+ -+#define DFBSD_DYNAMIC_LINKER "/usr/libexec/ld-elf.so.2" -+ -+#if defined(HAVE_LD_EH_FRAME_HDR) -+#define LINK_EH_SPEC "--eh-frame-hdr" -+#endif -+ -+/* Use --as-needed -lgcc_s for eh support. */ -+#ifdef HAVE_LD_AS_NEEDED -+#define USE_LD_AS_NEEDED 1 -+#endif -+ -+/************************[ Target stuff ]***********************************/ -+ -+/* All DragonFly Architectures support the ELF object file format. */ -+#undef OBJECT_FORMAT_ELF -+#define OBJECT_FORMAT_ELF -+ -+/* Don't assume anything about the header files. */ -+#undef NO_IMPLICIT_EXTERN_C -+#define NO_IMPLICIT_EXTERN_C 1 -+ -+/* Follow DragonFly's standard headers (<machine/stdint.h>, etc...). */ -+ -+#undef WCHAR_TYPE -+#define WCHAR_TYPE "int" -+ -+#undef WINT_TYPE -+#define WINT_TYPE "int" -+ -+#define MATH_LIBRARY_PROFILE "m_p" -+ -+/* Code generation parameters. */ -+ -+/* Use periods rather than dollar signs in special g++ assembler names. -+ This ensures the configuration knows our system correctly so we can link -+ with libraries compiled with the native cc. */ -+#undef NO_DOLLAR_IN_LABEL -+ -+/* Used by libgcc2.c. We support file locking with fcntl / F_SETLKW. -+ This enables the test coverage code to use file locking when exiting a -+ program, which avoids race conditions if the program has forked. */ -+#define TARGET_POSIX_IO ---- /dev/null -+++ gcc/config/dragonfly.opt -@@ -0,0 +1,59 @@ -+; DragonFlyBSD options. -+ -+; Copyright (C) 2010 -+; Free Software Foundation, Inc. -+; -+; This file is part of GCC. -+; -+; GCC 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, or (at your option) any later -+; version. -+; -+; GCC 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 GCC; see the file COPYING3. If not see -+; <http://www.gnu.org/licenses/>. -+ -+; See the GCC internals manual (options.texi) for a description of this file's format. -+ -+; Please try to keep this file in ASCII collating order. -+ -+assert -+Driver Separate -+ -+assert= -+Driver JoinedOrMissing -+ -+defsym -+Driver Separate -+ -+defsym= -+Driver JoinedOrMissing -+ -+profile -+Driver -+ -+pthread -+Driver -+ -+rpath-link -+Driver Separate -+ -+rpath-link= -+Driver JoinedOrMissing -+ -+rpath= -+Driver JoinedOrMissing -+ -+soname -+Driver Separate -+ -+soname= -+Driver JoinedOrMissing -+ -+; This comment is to ensure we retain the blank line above. ---- /dev/null -+++ gcc/config/exec-stack.h -@@ -0,0 +1,41 @@ -+/* Enable stack execute around trampoline address. -+ Copyright (C) 2002 Free Software Foundation, Inc. -+ -+This file is part of GNU CC. -+ -+GNU CC 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. -+ -+GNU CC 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 GNU CC; see the file COPYING. If not, write to -+the Free Software Foundation, 59 Temple Place - Suite 330, -+Boston, MA 02111-1307, USA. */ -+ -+#undef FINALIZE_TRAMPOLINE -+#define FINALIZE_TRAMPOLINE(TRAMP) \ -+ emit_library_call(gen_rtx_SYMBOL_REF (Pmode, "__enable_execute_stack"), \ -+ 0, VOIDmode, 1, memory_address (SImode, (TRAMP)), Pmode) -+ -+#undef TRANSFER_FROM_TRAMPOLINE -+#define TRANSFER_FROM_TRAMPOLINE \ -+extern void __enable_execute_stack (void *); \ -+void \ -+__enable_execute_stack (addr) \ -+ void *addr; \ -+{ \ -+ long size = getpagesize (); \ -+ long mask = ~(size-1); \ -+ char *page = (char *) (((long) addr) & mask); \ -+ char *end = (char *) ((((long) (addr + TRAMPOLINE_SIZE)) & mask) + size); \ -+ \ -+ if (mprotect (page, end - page, PROT_READ | PROT_WRITE | PROT_EXEC) < 0) \ -+ perror ("mprotect of trampoline code"); \ -+} -+ ---- /dev/null -+++ gcc/config/netbsd-stdint.h -@@ -0,0 +1,56 @@ -+/* Definitions for <stdint.h> types for NetBSD systems. -+ Copyright (C) 2009 Free Software Foundation, Inc. -+ Contributed by Gerald Pfeifer <gerald@pfeifer.com>. -+ -+This file is part of GCC. -+ -+GCC 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, or (at your option) -+any later version. -+ -+GCC 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. -+ -+Under Section 7 of GPL version 3, you are granted additional -+permissions described in the GCC Runtime Library Exception, version -+3.1, as published by the Free Software Foundation. -+ -+You should have received a copy of the GNU General Public License and -+a copy of the GCC Runtime Library Exception along with this program; -+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+<http://www.gnu.org/licenses/>. */ -+ -+#define SIG_ATOMIC_TYPE "int" -+ -+#define INT8_TYPE "signed char" -+#define INT16_TYPE "short int" -+#define INT32_TYPE "int" -+#define INT64_TYPE (LONG_TYPE_SIZE == 64 ? "long int" : "long long int") -+#define UINT8_TYPE "unsigned char" -+#define UINT16_TYPE "short unsigned int" -+#define UINT32_TYPE "unsigned int" -+#define UINT64_TYPE (LONG_TYPE_SIZE == 64 ? "long unsigned int" : "long long unsigned int") -+ -+#define INT_LEAST8_TYPE INT8_TYPE -+#define INT_LEAST16_TYPE INT16_TYPE -+#define INT_LEAST32_TYPE INT32_TYPE -+#define INT_LEAST64_TYPE INT64_TYPE -+#define UINT_LEAST8_TYPE UINT8_TYPE -+#define UINT_LEAST16_TYPE UINT16_TYPE -+#define UINT_LEAST32_TYPE UINT32_TYPE -+#define UINT_LEAST64_TYPE UINT64_TYPE -+ -+#define INT_FAST8_TYPE INT32_TYPE -+#define INT_FAST16_TYPE INT32_TYPE -+#define INT_FAST32_TYPE INT32_TYPE -+#define INT_FAST64_TYPE INT64_TYPE -+#define UINT_FAST8_TYPE UINT32_TYPE -+#define UINT_FAST16_TYPE UINT32_TYPE -+#define UINT_FAST32_TYPE UINT32_TYPE -+#define UINT_FAST64_TYPE UINT64_TYPE -+ -+#define INTPTR_TYPE (LONG_TYPE_SIZE == 64 ? INT64_TYPE : INT32_TYPE) -+#define UINTPTR_TYPE (LONG_TYPE_SIZE == 64 ? UINT64_TYPE : UINT32_TYPE) ---- gcc/config/netbsd.h.orig -+++ gcc/config/netbsd.h -@@ -22,7 +22,7 @@ - #define NETBSD_OS_CPP_BUILTINS_COMMON() \ - do \ - { \ -- builtin_define ("__NetBSD__"); \ -+ builtin_define_with_int_value ("__NetBSD__", NBSD_MAJOR); \ - builtin_define ("__unix__"); \ - builtin_assert ("system=bsd"); \ - builtin_assert ("system=unix"); \ ---- /dev/null -+++ gcc/config/t-exceptions -@@ -0,0 +1,7 @@ -+# Use unwind-dw2-fde-glibc -+# Required to utilize dl_iterate_phdr functionality -+ -+LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \ -+ $(srcdir)/unwind-sjlj.c $(srcdir)/gthr-gnat.c $(srcdir)/unwind-c.c -+LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c -+ ---- gcc/config/t-openbsd-thread.orig -+++ gcc/config/t-openbsd-thread -@@ -1,3 +1,3 @@ - # This is currently needed to compile libgcc2 for threads support --TARGET_LIBGCC2_CFLAGS=-pthread -+TARGET_LIBGCC2_CFLAGS += -pthread - ---- /dev/null -+++ gcc/config/i386/dragonfly-unwind.h -@@ -0,0 +1,158 @@ -+/* DWARF2 EH unwinding support for DragonFly BSD: AMD x86-64 and x86. -+ Copyright (C) 2010 John Marino <draco@marino.st> */ -+ -+/* Do code reading to identify a signal frame, and set the frame -+ state data appropriately. See unwind-dw2.c for the structs. */ -+ -+#include <sys/types.h> -+#include <sys/sysctl.h> -+#include <signal.h> -+#include <sys/ucontext.h> -+#include <machine/sigframe.h> -+ -+ -+#define REG_NAME(reg) sf_uc.uc_mcontext.mc_## reg -+ -+#ifdef __x86_64__ -+#define MD_FALLBACK_FRAME_STATE_FOR x86_64_dragonfly_fallback_frame_state -+ -+ -+static void -+x86_64_sigtramp_range (unsigned char **start, unsigned char **end) -+{ -+ unsigned long ps_strings; -+ int mib[2]; -+ size_t len; -+ -+ mib[0] = CTL_KERN; -+ mib[1] = KERN_PS_STRINGS; -+ len = sizeof (ps_strings); -+ sysctl (mib, 2, &ps_strings, &len, NULL, 0); -+ -+ *start = (unsigned char *)ps_strings - 32; -+ *end = (unsigned char *)ps_strings; -+} -+ -+ -+static _Unwind_Reason_Code -+x86_64_dragonfly_fallback_frame_state -+(struct _Unwind_Context *context, _Unwind_FrameState *fs) -+{ -+ unsigned char *pc = context->ra; -+ unsigned char *sigtramp_start, *sigtramp_end; -+ struct sigframe *sf; -+ long new_cfa; -+ -+ x86_64_sigtramp_range(&sigtramp_start, &sigtramp_end); -+ if (pc >= sigtramp_end || pc < sigtramp_start) -+ return _URC_END_OF_STACK; -+ -+ sf = (struct sigframe *) context->cfa; -+ new_cfa = sf->REG_NAME(rsp); -+ fs->regs.cfa_how = CFA_REG_OFFSET; -+ /* Register 7 is rsp */ -+ fs->regs.cfa_reg = 7; -+ fs->regs.cfa_offset = new_cfa - (long) context->cfa; -+ -+ /* The SVR4 register numbering macros aren't usable in libgcc. */ -+ fs->regs.reg[0].how = REG_SAVED_OFFSET; -+ fs->regs.reg[0].loc.offset = (long)&sf->REG_NAME(rax) - new_cfa; -+ fs->regs.reg[1].how = REG_SAVED_OFFSET; -+ fs->regs.reg[1].loc.offset = (long)&sf->REG_NAME(rdx) - new_cfa; -+ fs->regs.reg[2].how = REG_SAVED_OFFSET; -+ fs->regs.reg[2].loc.offset = (long)&sf->REG_NAME(rcx) - new_cfa; -+ fs->regs.reg[3].how = REG_SAVED_OFFSET; -+ fs->regs.reg[3].loc.offset = (long)&sf->REG_NAME(rbx) - new_cfa; -+ fs->regs.reg[4].how = REG_SAVED_OFFSET; -+ fs->regs.reg[4].loc.offset = (long)&sf->REG_NAME(rsi) - new_cfa; -+ fs->regs.reg[5].how = REG_SAVED_OFFSET; -+ fs->regs.reg[5].loc.offset = (long)&sf->REG_NAME(rdi) - new_cfa; -+ fs->regs.reg[6].how = REG_SAVED_OFFSET; -+ fs->regs.reg[6].loc.offset = (long)&sf->REG_NAME(rbp) - new_cfa; -+ fs->regs.reg[8].how = REG_SAVED_OFFSET; -+ fs->regs.reg[8].loc.offset = (long)&sf->REG_NAME(r8) - new_cfa; -+ fs->regs.reg[9].how = REG_SAVED_OFFSET; -+ fs->regs.reg[9].loc.offset = (long)&sf->REG_NAME(r9) - new_cfa; -+ fs->regs.reg[10].how = REG_SAVED_OFFSET; -+ fs->regs.reg[10].loc.offset = (long)&sf->REG_NAME(r10) - new_cfa; -+ fs->regs.reg[11].how = REG_SAVED_OFFSET; -+ fs->regs.reg[11].loc.offset = (long)&sf->REG_NAME(r11) - new_cfa; -+ fs->regs.reg[12].how = REG_SAVED_OFFSET; -+ fs->regs.reg[12].loc.offset = (long)&sf->REG_NAME(r12) - new_cfa; -+ fs->regs.reg[13].how = REG_SAVED_OFFSET; -+ fs->regs.reg[13].loc.offset = (long)&sf->REG_NAME(r13) - new_cfa; -+ fs->regs.reg[14].how = REG_SAVED_OFFSET; -+ fs->regs.reg[14].loc.offset = (long)&sf->REG_NAME(r14) - new_cfa; -+ fs->regs.reg[15].how = REG_SAVED_OFFSET; -+ fs->regs.reg[15].loc.offset = (long)&sf->REG_NAME(r15) - new_cfa; -+ fs->regs.reg[16].how = REG_SAVED_OFFSET; -+ fs->regs.reg[16].loc.offset = (long)&sf->REG_NAME(rip) - new_cfa; -+ fs->retaddr_column = 16; -+ fs->signal_frame = 1; -+ return _URC_NO_REASON; -+} -+ -+#else /* Next section is for i386 */ -+ -+#define MD_FALLBACK_FRAME_STATE_FOR x86_dragonfly_fallback_frame_state -+ -+ -+static void -+x86_sigtramp_range (unsigned char **start, unsigned char **end) -+{ -+ unsigned long ps_strings; -+ int mib[2]; -+ size_t len; -+ -+ mib[0] = CTL_KERN; -+ mib[1] = KERN_PS_STRINGS; -+ len = sizeof (ps_strings); -+ sysctl (mib, 2, &ps_strings, &len, NULL, 0); -+ -+ *start = (unsigned char *)ps_strings - 128; -+ *end = (unsigned char *)ps_strings; -+} -+ -+ -+static _Unwind_Reason_Code -+x86_dragonfly_fallback_frame_state -+(struct _Unwind_Context *context, _Unwind_FrameState *fs) -+{ -+ unsigned char *pc = context->ra; -+ unsigned char *sigtramp_start, *sigtramp_end; -+ struct sigframe *sf; -+ long new_cfa; -+ -+ x86_sigtramp_range(&sigtramp_start, &sigtramp_end); -+ -+ if (pc >= sigtramp_end || pc < sigtramp_start) -+ return _URC_END_OF_STACK; -+ -+ sf = (struct sigframe *) context->cfa; -+ new_cfa = sf->REG_NAME(esp); -+ fs->regs.cfa_how = CFA_REG_OFFSET; -+ fs->regs.cfa_reg = 4; -+ fs->regs.cfa_offset = new_cfa - (long) context->cfa; -+ -+ /* The SVR4 register numbering macros aren't usable in libgcc. */ -+ fs->regs.reg[0].how = REG_SAVED_OFFSET; -+ fs->regs.reg[0].loc.offset = (long)&sf->REG_NAME(eax) - new_cfa; -+ fs->regs.reg[3].how = REG_SAVED_OFFSET; -+ fs->regs.reg[3].loc.offset = (long)&sf->REG_NAME(ebx) - new_cfa; -+ fs->regs.reg[1].how = REG_SAVED_OFFSET; -+ fs->regs.reg[1].loc.offset = (long)&sf->REG_NAME(ecx) - new_cfa; -+ fs->regs.reg[2].how = REG_SAVED_OFFSET; -+ fs->regs.reg[2].loc.offset = (long)&sf->REG_NAME(edx) - new_cfa; -+ fs->regs.reg[6].how = REG_SAVED_OFFSET; -+ fs->regs.reg[6].loc.offset = (long)&sf->REG_NAME(esi) - new_cfa; -+ fs->regs.reg[7].how = REG_SAVED_OFFSET; -+ fs->regs.reg[7].loc.offset = (long)&sf->REG_NAME(edi) - new_cfa; -+ fs->regs.reg[5].how = REG_SAVED_OFFSET; -+ fs->regs.reg[5].loc.offset = (long)&sf->REG_NAME(ebp) - new_cfa; -+ fs->regs.reg[8].how = REG_SAVED_OFFSET; -+ fs->regs.reg[8].loc.offset = (long)&sf->REG_NAME(eip) - new_cfa; -+ fs->retaddr_column = 8; -+ fs->signal_frame = 1; -+ return _URC_NO_REASON; -+} -+#endif /* ifdef __x86_64__ */ ---- /dev/null -+++ gcc/config/i386/dragonfly.h -@@ -0,0 +1,107 @@ -+/* Definitions for Intel 386 running DragonFly with ELF format -+ Copyright (C) 1996, 2000, 2002, 2004, 2007 Free Software Foundation, Inc. -+ Contributed by Eric Youngdale. -+ Modified for stabs-in-ELF by H.J. Lu. -+ Adapted from GNU/Linux version by John Polstra. -+ Continued development by David O'Brien <obrien@freebsd.org> -+ Copyright (C) 2010, 2011 John Marino <www.dragonlace.net> -+ -+This file is part of GCC. -+ -+GCC 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, or (at your option) -+any later version. -+ -+GCC 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 GCC; see the file COPYING3. If not see -+<http://www.gnu.org/licenses/>. */ -+ -+ -+#define TARGET_VERSION fprintf (stderr, " (i386 DragonFly/ELF)"); -+ -+/* Override the default comment-starter of "/". */ -+#undef ASM_COMMENT_START -+#define ASM_COMMENT_START "#" -+ -+#undef ASM_APP_ON -+#define ASM_APP_ON "#APP\n" -+ -+#undef ASM_APP_OFF -+#define ASM_APP_OFF "#NO_APP\n" -+ -+#undef DBX_REGISTER_NUMBER -+#define DBX_REGISTER_NUMBER(n) \ -+ (TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n]) -+ -+#undef NO_PROFILE_COUNTERS -+#define NO_PROFILE_COUNTERS 1 -+ -+/* Tell final.c that we don't need a label passed to mcount. */ -+ -+#undef MCOUNT_NAME -+#define MCOUNT_NAME ".mcount" -+ -+/* Make gcc agree with <machine/ansi.h>. */ -+ -+#undef SIZE_TYPE -+#define SIZE_TYPE (TARGET_64BIT ? "long unsigned int" : "unsigned int") -+ -+#undef PTRDIFF_TYPE -+#define PTRDIFF_TYPE (TARGET_64BIT ? "long int" : "int") -+ -+#undef WCHAR_TYPE_SIZE -+#define WCHAR_TYPE_SIZE (TARGET_64BIT ? 32 : BITS_PER_WORD) -+ -+#undef SUBTARGET_EXTRA_SPECS /* i386.h bogusly defines it. */ -+#define SUBTARGET_EXTRA_SPECS \ -+ { "dfbsd_dynamic_linker", DFBSD_DYNAMIC_LINKER } -+ -+ -+/* A C statement to output to the stdio stream FILE an assembler -+ command to advance the location counter to a multiple of 1<<LOG -+ bytes if it is within MAX_SKIP bytes. -+ -+ This is used to align code labels according to Intel recommendations. */ -+ -+#ifdef HAVE_GAS_MAX_SKIP_P2ALIGN -+#undef ASM_OUTPUT_MAX_SKIP_ALIGN -+#define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE, LOG, MAX_SKIP) \ -+ if ((LOG) != 0) { \ -+ if ((MAX_SKIP) == 0) fprintf ((FILE), "\t.p2align %d\n", (LOG)); \ -+ else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \ -+ } -+#endif -+ -+/* Don't default to pcc-struct-return, we want to retain compatibility with -+ older gcc versions AND pcc-struct-return is nonreentrant. -+ (even though the SVR4 ABI for the i386 says that records and unions are -+ returned in memory). */ -+ -+#undef DEFAULT_PCC_STRUCT_RETURN -+#define DEFAULT_PCC_STRUCT_RETURN 0 -+ -+/* DragonFly sets the rounding precision of the FPU to 53 bits, but GNAT -+ resets it to full precision. */ -+#undef TARGET_96_ROUND_53_LONG_DOUBLE -+#define TARGET_96_ROUND_53_LONG_DOUBLE 0 -+ -+/* Put all *tf routines in libgcc. */ -+#undef LIBGCC2_HAS_TF_MODE -+#define LIBGCC2_HAS_TF_MODE 1 -+#define LIBGCC2_TF_CEXT q -+#define TF_SIZE 113 -+ -+/* Define this to be nonzero if static stack checking is supported. */ -+#define STACK_CHECK_STATIC_BUILTIN 1 -+ -+/* Support for i386 has been removed from DragonFly for several releases */ -+#define SUBTARGET32_DEFAULT_CPU "i486" -+ -+/* Define location of OS-specific unwind support configuration. */ -+#define MD_UNWIND_SUPPORT "config/i386/dragonfly-unwind.h" ---- /dev/null -+++ gcc/config/i386/dragonfly64.h -@@ -0,0 +1,5 @@ -+/* Definitions for AMD x86_64 running DragonFly BSD with ELF Format */ -+ -+#undef TARGET_VERSION -+#define TARGET_VERSION fprintf (stderr, " (x86-64 DragonFly/ELF)"); -+ ---- /dev/null -+++ gcc/config/i386/freebsd-unwind.h -@@ -0,0 +1,179 @@ -+/* DWARF2 EH unwinding support for FreeBSD: AMD x86-64 and x86. -+ Copyright (C) 2010, 2012 John Marino <draco@marino.st> -+ -+/* Do code reading to identify a signal frame, and set the frame -+ state data appropriately. See unwind-dw2.c for the structs. */ -+ -+#include <sys/types.h> -+#include <signal.h> -+#include <sys/ucontext.h> -+#include <machine/sigframe.h> -+ -+#define REG_NAME(reg) sf_uc.uc_mcontext.mc_## reg -+ -+#ifdef __x86_64__ -+#define MD_FALLBACK_FRAME_STATE_FOR x86_64_freebsd_fallback_frame_state -+ -+#if (__FreeBSD__ < 9) -+#include <sys/sysctl.h> -+static void -+x86_64_sigtramp_range (unsigned char **start, unsigned char **end) -+{ -+ unsigned long ps_strings; -+ int mib[2]; -+ size_t len; -+ -+ mib[0] = CTL_KERN; -+ mib[1] = KERN_PS_STRINGS; -+ len = sizeof (ps_strings); -+ sysctl (mib, 2, &ps_strings, &len, NULL, 0); -+ -+ *start = (unsigned char *)ps_strings - 32; -+ *end = (unsigned char *)ps_strings; -+} -+#endif -+ -+ -+static _Unwind_Reason_Code -+x86_64_freebsd_fallback_frame_state -+(struct _Unwind_Context *context, _Unwind_FrameState *fs) -+{ -+ unsigned char *pc = context->ra; -+ unsigned char *sigtramp_start, *sigtramp_end; -+ struct sigframe *sf; -+ long new_cfa; -+ -+#if (__FreeBSD__ < 9) -+ x86_64_sigtramp_range(&sigtramp_start, &sigtramp_end); -+ if (pc >= sigtramp_end || pc < sigtramp_start) -+ return _URC_END_OF_STACK; -+#else -+ /* Prior to FreeBSD 9, the signal trampoline was located immediately -+ before the ps_strings. To support non-executable stacks on AMD64, -+ the sigtramp was moved to a shared page for FreeBSD 9. We are -+ stuck looking for frame patterns again (sys/amd64/amd64/sigtramp.S): -+ -+ <pc + 00>: lea 0x10(%rsp),%rdi -+ <pc + 05>: pushq $0x0 -+ <pc + 17>: mov $0x1a1,%rax -+ <pc + 14>: syscall -+ -+ If we can't find this pattern, we're at the end of the stack. -+ */ -+ -+ if (!( *(unsigned int *)(context->ra) == 0x247c8d48 -+ && *(unsigned int *)(context->ra + 4) == 0x48006a10 -+ && *(unsigned int *)(context->ra + 8) == 0x01a1c0c7 -+ && *(unsigned int *)(context->ra + 12) == 0x050f0000 )) -+ return _URC_END_OF_STACK; -+#endif -+ -+ sf = (struct sigframe *) context->cfa; -+ new_cfa = sf->REG_NAME(rsp); -+ fs->regs.cfa_how = CFA_REG_OFFSET; -+ /* Register 7 is rsp */ -+ fs->regs.cfa_reg = 7; -+ fs->regs.cfa_offset = new_cfa - (long) context->cfa; -+ -+ /* The SVR4 register numbering macros aren't usable in libgcc. */ -+ fs->regs.reg[0].how = REG_SAVED_OFFSET; -+ fs->regs.reg[0].loc.offset = (long)&sf->REG_NAME(rax) - new_cfa; -+ fs->regs.reg[1].how = REG_SAVED_OFFSET; -+ fs->regs.reg[1].loc.offset = (long)&sf->REG_NAME(rdx) - new_cfa; -+ fs->regs.reg[2].how = REG_SAVED_OFFSET; -+ fs->regs.reg[2].loc.offset = (long)&sf->REG_NAME(rcx) - new_cfa; -+ fs->regs.reg[3].how = REG_SAVED_OFFSET; -+ fs->regs.reg[3].loc.offset = (long)&sf->REG_NAME(rbx) - new_cfa; -+ fs->regs.reg[4].how = REG_SAVED_OFFSET; -+ fs->regs.reg[4].loc.offset = (long)&sf->REG_NAME(rsi) - new_cfa; -+ fs->regs.reg[5].how = REG_SAVED_OFFSET; -+ fs->regs.reg[5].loc.offset = (long)&sf->REG_NAME(rdi) - new_cfa; -+ fs->regs.reg[6].how = REG_SAVED_OFFSET; -+ fs->regs.reg[6].loc.offset = (long)&sf->REG_NAME(rbp) - new_cfa; -+ fs->regs.reg[8].how = REG_SAVED_OFFSET; -+ fs->regs.reg[8].loc.offset = (long)&sf->REG_NAME(r8) - new_cfa; -+ fs->regs.reg[9].how = REG_SAVED_OFFSET; -+ fs->regs.reg[9].loc.offset = (long)&sf->REG_NAME(r9) - new_cfa; -+ fs->regs.reg[10].how = REG_SAVED_OFFSET; -+ fs->regs.reg[10].loc.offset = (long)&sf->REG_NAME(r10) - new_cfa; -+ fs->regs.reg[11].how = REG_SAVED_OFFSET; -+ fs->regs.reg[11].loc.offset = (long)&sf->REG_NAME(r11) - new_cfa; -+ fs->regs.reg[12].how = REG_SAVED_OFFSET; -+ fs->regs.reg[12].loc.offset = (long)&sf->REG_NAME(r12) - new_cfa; -+ fs->regs.reg[13].how = REG_SAVED_OFFSET; -+ fs->regs.reg[13].loc.offset = (long)&sf->REG_NAME(r13) - new_cfa; -+ fs->regs.reg[14].how = REG_SAVED_OFFSET; -+ fs->regs.reg[14].loc.offset = (long)&sf->REG_NAME(r14) - new_cfa; -+ fs->regs.reg[15].how = REG_SAVED_OFFSET; -+ fs->regs.reg[15].loc.offset = (long)&sf->REG_NAME(r15) - new_cfa; -+ fs->regs.reg[16].how = REG_SAVED_OFFSET; -+ fs->regs.reg[16].loc.offset = (long)&sf->REG_NAME(rip) - new_cfa; -+ fs->retaddr_column = 16; -+ fs->signal_frame = 1; -+ return _URC_NO_REASON; -+} -+ -+#else /* Next section is for i386 */ -+ -+#define MD_FALLBACK_FRAME_STATE_FOR x86_freebsd_fallback_frame_state -+ -+#include <sys/sysctl.h> -+static void -+x86_sigtramp_range (unsigned char **start, unsigned char **end) -+{ -+ unsigned long ps_strings; -+ int mib[2]; -+ size_t len; -+ -+ mib[0] = CTL_KERN; -+ mib[1] = KERN_PS_STRINGS; -+ len = sizeof (ps_strings); -+ sysctl (mib, 2, &ps_strings, &len, NULL, 0); -+ -+ *start = (unsigned char *)ps_strings - 128; -+ *end = (unsigned char *)ps_strings; -+} -+ -+ -+static _Unwind_Reason_Code -+x86_freebsd_fallback_frame_state -+(struct _Unwind_Context *context, _Unwind_FrameState *fs) -+{ -+ unsigned char *pc = context->ra; -+ unsigned char *sigtramp_start, *sigtramp_end; -+ struct sigframe *sf; -+ long new_cfa; -+ -+ x86_sigtramp_range(&sigtramp_start, &sigtramp_end); -+ -+ if (pc >= sigtramp_end || pc < sigtramp_start) -+ return _URC_END_OF_STACK; -+ -+ sf = (struct sigframe *) context->cfa; -+ new_cfa = sf->REG_NAME(esp); -+ fs->regs.cfa_how = CFA_REG_OFFSET; -+ fs->regs.cfa_reg = 4; -+ fs->regs.cfa_offset = new_cfa - (long) context->cfa; -+ -+ /* The SVR4 register numbering macros aren't usable in libgcc. */ -+ fs->regs.reg[0].how = REG_SAVED_OFFSET; -+ fs->regs.reg[0].loc.offset = (long)&sf->REG_NAME(eax) - new_cfa; -+ fs->regs.reg[3].how = REG_SAVED_OFFSET; -+ fs->regs.reg[3].loc.offset = (long)&sf->REG_NAME(ebx) - new_cfa; -+ fs->regs.reg[1].how = REG_SAVED_OFFSET; -+ fs->regs.reg[1].loc.offset = (long)&sf->REG_NAME(ecx) - new_cfa; -+ fs->regs.reg[2].how = REG_SAVED_OFFSET; -+ fs->regs.reg[2].loc.offset = (long)&sf->REG_NAME(edx) - new_cfa; -+ fs->regs.reg[6].how = REG_SAVED_OFFSET; -+ fs->regs.reg[6].loc.offset = (long)&sf->REG_NAME(esi) - new_cfa; -+ fs->regs.reg[7].how = REG_SAVED_OFFSET; -+ fs->regs.reg[7].loc.offset = (long)&sf->REG_NAME(edi) - new_cfa; -+ fs->regs.reg[5].how = REG_SAVED_OFFSET; -+ fs->regs.reg[5].loc.offset = (long)&sf->REG_NAME(ebp) - new_cfa; -+ fs->regs.reg[8].how = REG_SAVED_OFFSET; -+ fs->regs.reg[8].loc.offset = (long)&sf->REG_NAME(eip) - new_cfa; -+ fs->retaddr_column = 8; -+ fs->signal_frame = 1; -+ return _URC_NO_REASON; -+} -+#endif /* ifdef __x86_64__ */ ---- gcc/config/i386/freebsd.h.orig -+++ gcc/config/i386/freebsd.h -@@ -5,6 +5,7 @@ - Modified for stabs-in-ELF by H.J. Lu. - Adapted from GNU/Linux version by John Polstra. - Continued development by David O'Brien <obrien@freebsd.org> -+ Copyright (C) 2010, 2011 John Marino <www.dragonlace.net> - - This file is part of GCC. - -@@ -51,22 +52,22 @@ - - #undef SIZE_TYPE - #define SIZE_TYPE (TARGET_64BIT ? "long unsigned int" : "unsigned int") -- -+ - #undef PTRDIFF_TYPE - #define PTRDIFF_TYPE (TARGET_64BIT ? "long int" : "int") -- -+ - #undef WCHAR_TYPE_SIZE - #define WCHAR_TYPE_SIZE (TARGET_64BIT ? 32 : BITS_PER_WORD) - - #undef SUBTARGET_EXTRA_SPECS /* i386.h bogusly defines it. */ - #define SUBTARGET_EXTRA_SPECS \ - { "fbsd_dynamic_linker", FBSD_DYNAMIC_LINKER } -- -+ - /* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add -- the magical crtbegin.o file (see crtstuff.c) which provides part -- of the support for getting C++ file-scope static object constructed -+ the magical crtbegin.o file (see crtstuff.c) which provides part -+ of the support for getting C++ file-scope static object constructed - before entering `main'. */ -- -+ - #undef STARTFILE_SPEC - #define STARTFILE_SPEC \ - "%{!shared: \ -@@ -76,9 +77,9 @@ - crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" - - /* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on -- the magical crtend.o file (see crtstuff.c) which provides part of -- the support for getting C++ file-scope static object constructed -- before entering `main', followed by a normal "finalizer" file, -+ the magical crtend.o file (see crtstuff.c) which provides part of -+ the support for getting C++ file-scope static object constructed -+ before entering `main', followed by a normal "finalizer" file, - `crtn.o'. */ - - #undef ENDFILE_SPEC -@@ -129,10 +130,10 @@ - #undef DEFAULT_PCC_STRUCT_RETURN - #define DEFAULT_PCC_STRUCT_RETURN 0 - --/* FreeBSD sets the rounding precision of the FPU to 53 bits. Let the -- compiler get the contents of <float.h> and std::numeric_limits correct. */ -+/* FreeBSD sets the rounding precision of the FPU to 53 bits, but GNAT -+ resets it to full precision. */ - #undef TARGET_96_ROUND_53_LONG_DOUBLE --#define TARGET_96_ROUND_53_LONG_DOUBLE (!TARGET_64BIT) -+#define TARGET_96_ROUND_53_LONG_DOUBLE 0 - - /* Put all *tf routines in libgcc. */ - #undef LIBGCC2_HAS_TF_MODE -@@ -148,5 +149,38 @@ - #define SUBTARGET32_DEFAULT_CPU "i486" - #endif - --#define TARGET_ASM_FILE_END file_end_indicate_exec_stack -+/* Define location of OS-specific unwind support configuration. */ -+#define MD_UNWIND_SUPPORT "config/i386/freebsd-unwind.h" -+ -+/* Through FreeBSD 8.2 at least, stack is denied execution rights by libthr -+ This only affects AMD64 since i386 ignores the nx bit (non-PAE) -+ However, it's still included in i386 because it's possible an AMD64 -+ machine will be required to run a binary generated by i386 GNAT. -+ perms = PROT_READ | PROT_WRITE | PROT_EXEC; -+*/ -+#define ENABLE_EXECUTE_STACK \ -+extern void __enable_execute_stack (void *); \ -+void \ -+__enable_execute_stack (void *addr) \ -+{ \ -+ extern int getpagesize (void); \ -+ extern int mprotect (void *, size_t, int); \ -+ \ -+ static int size; \ -+ long mask; \ -+ char *page, *ends; \ -+ long page_addr = (long) addr; \ -+ long ends_addr = (long) (addr + TRAMPOLINE_SIZE); \ -+ int perms = 7; \ -+ \ -+ if (size == 0) \ -+ { \ -+ size = getpagesize(); \ -+ } \ -+ mask = ~((long) size - 1); \ -+ page = (char *) (page_addr & mask); \ -+ ends = (char *) ((ends_addr & mask) + size); \ -+ (void) mprotect (page, ends - page, perms); \ -+} -+ - ---- gcc/config/i386/netbsd-elf.h.orig -+++ gcc/config/i386/netbsd-elf.h -@@ -2,6 +2,7 @@ - for i386/ELF NetBSD systems. - Copyright (C) 2001, 2002, 2004, 2007 Free Software Foundation, Inc. - Contributed by matthew green <mrg@eterna.com.au> -+ Copyright (C) 2010, 2011 John Marino <www.dragonlace.net> - - This file is part of GCC. - -@@ -39,6 +40,7 @@ - - #undef LINK_SPEC - #define LINK_SPEC NETBSD_LINK_SPEC_ELF -+#define LINK_LIBGCC_SPEC "%D -R @EXEC_PREFIX@/lib" - - #define NETBSD_ENTRY_POINT "__start" - -@@ -122,3 +124,14 @@ - #define ENABLE_EXECUTE_STACK NETBSD_ENABLE_EXECUTE_STACK - - #define TARGET_VERSION fprintf (stderr, " (NetBSD/i386 ELF)"); -+ -+/* ADDED FOR GNAT AUX SUPPORT */ -+/* Define this to be nonzero if static stack checking is supported. */ -+#define STACK_CHECK_STATIC_BUILTIN 1 -+ -+/* Define location of OS-specific unwind support configuration. */ -+#define MD_UNWIND_SUPPORT "config/i386/netbsd-unwind.h" -+ -+#if defined(HAVE_LD_EH_FRAME_HDR) -+#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " -+#endif ---- /dev/null -+++ gcc/config/i386/netbsd-unwind.h -@@ -0,0 +1,169 @@ -+/* DWARF2 EH unwinding support for x86 NetBSD -+ Copyright (C) 2010 John Marino (www.dragonlace.net) */ -+ -+/* Do code reading to identify a signal frame, and set the frame -+ state data appropriately. See unwind-dw2.c for the structs. */ -+ -+#include <sys/ucontext.h> -+#include <machine/frame.h> -+ -+#define REG_NAME(reg) sf_uc.uc_mcontext.__gregs[_REG_## reg] -+ -+#ifdef __x86_64__ -+ -+ -+ -+ -+#define MD_FALLBACK_FRAME_STATE_FOR x86_64_netbsd_fallback_frame_state -+ -+static _Unwind_Reason_Code -+x86_64_netbsd_fallback_frame_state -+(struct _Unwind_Context *context, _Unwind_FrameState *fs) -+{ -+ /* signal_frame is sigframe_siginfo minus sf_ra handler return address */ -+ struct signal_frame { -+ siginfo_t sf_si; /* actual saved siginfo */ -+ ucontext_t sf_uc; /* actual saved ucontext */ -+ }; -+ struct signal_frame *sf; -+ long new_cfa; -+ -+ /* We are looking for the following signal trampoline pattern. If we don't -+ find it, we are at the end of the stack and can't unwind. -+ -+ <__sigtramp_siginfo_2+12>: mov $0xffffffffffffffff,%rdi -+ <__sigtramp_siginfo_2+19>: mov $0x1,%rax -+ <__sigtramp_siginfo_2+26>: syscall -+ */ -+ -+ if ( *(unsigned int *) (context->ra + 12) == 0xffc7c748 -+ && *(unsigned int *) (context->ra + 16) == 0x48ffffff -+ && *(unsigned int *) (context->ra + 20) == 0x0001c0c7 -+ && *(unsigned int *) (context->ra + 24) == 0x050f0000 ) -+ { -+ sf = (struct signal_frame *) context->cfa; -+ new_cfa = sf->REG_NAME(RSP); -+ fs->regs.cfa_how = CFA_REG_OFFSET; -+ fs->regs.cfa_reg = 7; -+ fs->regs.cfa_offset = new_cfa - (long) context->cfa; -+ } -+ else -+ { -+ return _URC_END_OF_STACK; -+ } -+ -+ /* The SVR4 register numbering macros aren't usable in libgcc. */ -+ fs->regs.reg[ 0].how = REG_SAVED_OFFSET; -+ fs->regs.reg[ 0].loc.offset = (long)&sf->REG_NAME(RAX) - new_cfa; -+ fs->regs.reg[ 1].how = REG_SAVED_OFFSET; -+ fs->regs.reg[ 1].loc.offset = (long)&sf->REG_NAME(RDX) - new_cfa; -+ fs->regs.reg[ 2].how = REG_SAVED_OFFSET; -+ fs->regs.reg[ 2].loc.offset = (long)&sf->REG_NAME(RCX) - new_cfa; -+ fs->regs.reg[ 3].how = REG_SAVED_OFFSET; -+ fs->regs.reg[ 3].loc.offset = (long)&sf->REG_NAME(RBX) - new_cfa; -+ fs->regs.reg[ 4].how = REG_SAVED_OFFSET; -+ fs->regs.reg[ 4].loc.offset = (long)&sf->REG_NAME(RSI) - new_cfa; -+ fs->regs.reg[ 5].how = REG_SAVED_OFFSET; -+ fs->regs.reg[ 5].loc.offset = (long)&sf->REG_NAME(RDI) - new_cfa; -+ fs->regs.reg[ 6].how = REG_SAVED_OFFSET; -+ fs->regs.reg[ 6].loc.offset = (long)&sf->REG_NAME(RBP) - new_cfa; -+ fs->regs.reg[ 8].how = REG_SAVED_OFFSET; -+ fs->regs.reg[ 8].loc.offset = (long)&sf->REG_NAME(R8) - new_cfa; -+ fs->regs.reg[ 9].how = REG_SAVED_OFFSET; -+ fs->regs.reg[ 9].loc.offset = (long)&sf->REG_NAME(R9) - new_cfa; -+ fs->regs.reg[10].how = REG_SAVED_OFFSET; -+ fs->regs.reg[10].loc.offset = (long)&sf->REG_NAME(R10) - new_cfa; -+ fs->regs.reg[11].how = REG_SAVED_OFFSET; -+ fs->regs.reg[11].loc.offset = (long)&sf->REG_NAME(R11) - new_cfa; -+ fs->regs.reg[12].how = REG_SAVED_OFFSET; -+ fs->regs.reg[12].loc.offset = (long)&sf->REG_NAME(R12) - new_cfa; -+ fs->regs.reg[13].how = REG_SAVED_OFFSET; -+ fs->regs.reg[13].loc.offset = (long)&sf->REG_NAME(R13) - new_cfa; -+ fs->regs.reg[14].how = REG_SAVED_OFFSET; -+ fs->regs.reg[14].loc.offset = (long)&sf->REG_NAME(R14) - new_cfa; -+ fs->regs.reg[15].how = REG_SAVED_OFFSET; -+ fs->regs.reg[15].loc.offset = (long)&sf->REG_NAME(R15) - new_cfa; -+ fs->regs.reg[16].how = REG_SAVED_OFFSET; -+ fs->regs.reg[16].loc.offset = (long)&sf->REG_NAME(RIP) - new_cfa; -+ fs->retaddr_column = 16; -+ fs->signal_frame = 1; -+ return _URC_NO_REASON; -+} -+ -+ -+ -+ -+#else /* Next section is for i386 */ -+ -+ -+ -+ -+#define MD_FALLBACK_FRAME_STATE_FOR x86_netbsd_fallback_frame_state -+ -+static _Unwind_Reason_Code -+x86_netbsd_fallback_frame_state -+(struct _Unwind_Context *context, _Unwind_FrameState *fs) -+{ -+ /* signal_frame is sigframe_siginfo minus sf_ra handler return address */ -+ struct signal_frame { -+ int sf_signum; /* "signum" argument for handler" */ -+ siginfo_t *sf_sip; /* "sip" argument for handler" */ -+ ucontext_t *sf_ucp; /* "ucp" argument for handler" */ -+ siginfo_t sf_si; /* actual saved siginfo */ -+ ucontext_t sf_uc; /* actual saved ucontext */ -+ }; -+ struct signal_frame *sf; -+ long new_cfa; -+ -+ /* We are looking for the following signal trampoline pattern. If we don't -+ find it, we are at the end of the stack and can't unwind. -+ -+ <__sigtramp_siginfo_2+18>: movl $0xffffffff,0x4(%esp) -+ <__sigtramp_siginfo_2+26>: mov $0x1,%eax -+ <__sigtramp_siginfo_2+31>: int $0x80 -+ */ -+ -+ if ( *(unsigned int *) (context->ra + 18) == 0x042444c7 -+ && *(unsigned int *) (context->ra + 22) == 0xffffffff -+ && *(unsigned char *) (context->ra + 26) == 0xb8 -+ && *(unsigned int *) (context->ra + 27) == 0x00000001 -+ && *(unsigned short *) (context->ra + 31) == 0x80cd ) -+ { -+ sf = (struct signal_frame *) context->cfa; -+ new_cfa = sf->REG_NAME(ESP); -+ fs->regs.cfa_how = CFA_REG_OFFSET; -+ fs->regs.cfa_reg = 4; -+ fs->regs.cfa_offset = new_cfa - (long) context->cfa; -+ } -+ else -+ { -+ return _URC_END_OF_STACK; -+ } -+ -+ /* The SVR4 register numbering macros aren't usable in libgcc. */ -+ fs->regs.reg[0].how = REG_SAVED_OFFSET; -+ fs->regs.reg[0].loc.offset = (long)&sf->REG_NAME(EAX) - new_cfa; -+ fs->regs.reg[3].how = REG_SAVED_OFFSET; -+ fs->regs.reg[3].loc.offset = (long)&sf->REG_NAME(EBX) - new_cfa; -+ fs->regs.reg[1].how = REG_SAVED_OFFSET; -+ fs->regs.reg[1].loc.offset = (long)&sf->REG_NAME(ECX) - new_cfa; -+ fs->regs.reg[2].how = REG_SAVED_OFFSET; -+ fs->regs.reg[2].loc.offset = (long)&sf->REG_NAME(EDX) - new_cfa; -+ fs->regs.reg[6].how = REG_SAVED_OFFSET; -+ fs->regs.reg[6].loc.offset = (long)&sf->REG_NAME(ESI) - new_cfa; -+ fs->regs.reg[7].how = REG_SAVED_OFFSET; -+ fs->regs.reg[7].loc.offset = (long)&sf->REG_NAME(EDI) - new_cfa; -+ fs->regs.reg[5].how = REG_SAVED_OFFSET; -+ fs->regs.reg[5].loc.offset = (long)&sf->REG_NAME(EBP) - new_cfa; -+ fs->regs.reg[8].how = REG_SAVED_OFFSET; -+ fs->regs.reg[8].loc.offset = (long)&sf->REG_NAME(EIP) - new_cfa; -+ fs->retaddr_column = 8; -+ fs->signal_frame = 1; -+ return _URC_NO_REASON; -+} -+ -+ -+ -+ -+#endif /* ifdef __x86_64__ */ -+ ---- gcc/config/i386/netbsd64.h.orig -+++ gcc/config/i386/netbsd64.h -@@ -2,6 +2,7 @@ - for x86-64/ELF NetBSD systems. - Copyright (C) 2002, 2004, 2007 Free Software Foundation, Inc. - Contributed by Wasabi Systems, Inc. -+ Copyright (C) 2010, 2011 John Marino <www.dragonlace.net> - - This file is part of GCC. - -@@ -70,3 +71,13 @@ - #define ENABLE_EXECUTE_STACK NETBSD_ENABLE_EXECUTE_STACK - - #define TARGET_VERSION fprintf (stderr, " (NetBSD/x86_64 ELF)"); -+ -+/* ADDED FOR GNAT AUX SUPPORT */ -+/* Define this to be nonzero if static stack checking is supported. */ -+#define STACK_CHECK_STATIC_BUILTIN 1 -+ -+#define MD_UNWIND_SUPPORT "config/i386/netbsd-unwind.h" -+ -+#if defined(HAVE_LD_EH_FRAME_HDR) -+#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " -+#endif ---- /dev/null -+++ gcc/config/i386/openbsd-unwind32.h -@@ -0,0 +1,77 @@ -+/* DWARF2 EH unwinding support for x86 OpenBSD -+ Copyright (C) 2010 John Marino (www.dragonlace.net) */ -+ -+/* Do code reading to identify a signal frame, and set the frame -+ state data appropriately. See unwind-dw2.c for the structs. */ -+ -+#include <sys/param.h> -+#include <sys/sysctl.h> -+#include <machine/frame.h> -+/* machine/frame.h brings in sys/signal.h -+ sys/signal.h brings in machine/signal.h (sigcontext) -+ brings in sys/siginfo.h (siginfo_t) */ -+ -+ -+#define REG_NAME(reg) sf_sc.sc_## reg -+#define MD_FALLBACK_FRAME_STATE_FOR x86_openbsd_fallback_frame_state -+ -+ -+static void -+x86_sigtramp_range (unsigned char **start, unsigned char **end) -+{ -+ struct _ps_strings ps_strings; -+ int mib[2]; -+ size_t len; -+ -+ mib[0] = CTL_VM; -+ mib[1] = VM_PSSTRINGS; -+ len = sizeof (ps_strings); -+ sysctl (mib, 2, &ps_strings, &len, NULL, 0); -+ -+ *start = (unsigned char *)ps_strings.val - 128; -+ *end = (unsigned char *)ps_strings.val; -+} -+ -+ -+static _Unwind_Reason_Code -+x86_openbsd_fallback_frame_state -+(struct _Unwind_Context *context, _Unwind_FrameState *fs) -+{ -+ unsigned char *pc = context->ra; -+ unsigned char *sigtramp_start, *sigtramp_end; -+ struct sigframe *sf; -+ long new_cfa; -+ -+ x86_sigtramp_range(&sigtramp_start, &sigtramp_end); -+ -+ if (pc >= sigtramp_end || pc < sigtramp_start) -+ return _URC_END_OF_STACK; -+ -+ sf = (struct sigframe *) context->cfa; -+ new_cfa = sf->REG_NAME(esp); -+ -+ fs->regs.cfa_how = CFA_REG_OFFSET; -+ fs->regs.cfa_reg = 4; -+ fs->regs.cfa_offset = new_cfa - (long) context->cfa; -+ -+ /* The SVR4 register numbering macros aren't usable in libgcc. */ -+ fs->regs.reg[0].how = REG_SAVED_OFFSET; -+ fs->regs.reg[0].loc.offset = (long)&sf->REG_NAME(eax) - new_cfa; -+ fs->regs.reg[3].how = REG_SAVED_OFFSET; -+ fs->regs.reg[3].loc.offset = (long)&sf->REG_NAME(ebx) - new_cfa; -+ fs->regs.reg[1].how = REG_SAVED_OFFSET; -+ fs->regs.reg[1].loc.offset = (long)&sf->REG_NAME(ecx) - new_cfa; -+ fs->regs.reg[2].how = REG_SAVED_OFFSET; -+ fs->regs.reg[2].loc.offset = (long)&sf->REG_NAME(edx) - new_cfa; -+ fs->regs.reg[6].how = REG_SAVED_OFFSET; -+ fs->regs.reg[6].loc.offset = (long)&sf->REG_NAME(esi) - new_cfa; -+ fs->regs.reg[7].how = REG_SAVED_OFFSET; -+ fs->regs.reg[7].loc.offset = (long)&sf->REG_NAME(edi) - new_cfa; -+ fs->regs.reg[5].how = REG_SAVED_OFFSET; -+ fs->regs.reg[5].loc.offset = (long)&sf->REG_NAME(ebp) - new_cfa; -+ fs->regs.reg[8].how = REG_SAVED_OFFSET; -+ fs->regs.reg[8].loc.offset = (long)&sf->REG_NAME(eip) - new_cfa; -+ fs->retaddr_column = 8; -+ fs->signal_frame = 1; -+ return _URC_NO_REASON; -+} ---- /dev/null -+++ gcc/config/i386/openbsd64.h -@@ -0,0 +1,112 @@ -+/* Definitions for AMD x86_64 running OpenBSD BSD with ELF Format */ -+ -+#undef TARGET_VERSION -+#define TARGET_VERSION fprintf (stderr, " (OpenBSD/x86-64 ELF)") -+ -+/* This gets defined in tm.h->linux.h->svr4.h, and keeps us from using -+ libraries compiled with the native cc, so undef it. */ -+#undef NO_DOLLAR_IN_LABEL -+ -+/* Override the default comment-starter of "/". */ -+#undef ASM_COMMENT_START -+#define ASM_COMMENT_START "#" -+ -+/* Run-time target specifications */ -+ -+#define TARGET_OS_CPP_BUILTINS() \ -+ do \ -+ { \ -+ OPENBSD_OS_CPP_BUILTINS_ELF(); \ -+ if (TARGET_64BIT) \ -+ OPENBSD_OS_CPP_BUILTINS_LP64(); \ -+ } \ -+ while (0) -+ -+/* As an elf system, we need crtbegin/crtend stuff. */ -+#undef STARTFILE_SPEC -+#define STARTFILE_SPEC "\ -+ %{!shared: %{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} %{!p:crt0%O%s}} \ -+ crtbegin%O%s} %{shared:crtbeginS%O%s}" -+#undef ENDFILE_SPEC -+#define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}" -+ -+/* Layout of source language data types. */ -+ -+/* This must agree with <machine/_types.h> */ -+#undef SIZE_TYPE -+#define SIZE_TYPE "long unsigned int" -+ -+#undef PTRDIFF_TYPE -+#define PTRDIFF_TYPE "long int" -+ -+#undef WCHAR_TYPE -+#define WCHAR_TYPE "int" -+ -+#undef WCHAR_TYPE_SIZE -+#define WCHAR_TYPE_SIZE 32 -+ -+/* Assembler format: overall framework. */ -+ -+#undef ASM_APP_ON -+#define ASM_APP_ON "#APP\n" -+ -+#undef ASM_APP_OFF -+#define ASM_APP_OFF "#NO_APP\n" -+ -+#undef SET_ASM_OP -+#define SET_ASM_OP "\t.set\t" -+ -+/* The following macros were originally stolen from i386v4.h. -+ These have to be defined to get PIC code correct. */ -+ -+/* Assembler format: dispatch tables. */ -+ -+/* Assembler format: sections. */ -+ -+/* Stack & calling: aggregate returns. */ -+ -+/* Don't default to pcc-struct-return, because gcc is the only compiler, and -+ we want to retain compatibility with older gcc versions. */ -+#define DEFAULT_PCC_STRUCT_RETURN 0 -+ -+/* Assembler format: alignment output. */ -+ -+/* Stack & calling: profiling. */ -+ -+/* OpenBSD's profiler recovers all information from the stack pointer. -+ The icky part is not here, but in machine/profile.h. */ -+#undef FUNCTION_PROFILER -+#define FUNCTION_PROFILER(FILE, LABELNO) \ -+ fputs (flag_pic ? "\tcall __mcount@PLT\n": "\tcall __mcount\n", FILE); -+ -+/* Assembler format: exception region output. */ -+ -+/* Assembler format: alignment output. */ -+ -+/* Note that we pick up ASM_OUTPUT_MAX_SKIP_ALIGN from i386/gas.h */ -+ -+/* Note that we pick up ASM_OUTPUT_MI_THUNK from unix.h. */ -+ -+#undef LINK_SPEC -+#define LINK_SPEC \ -+ "%{!shared:%{!nostdlib:%{!r*:%{!e*:-e __start}}}} \ -+ %{shared:-shared} %{R*} \ -+ %{static:-Bstatic} \ -+ %{!static:-Bdynamic} \ -+ %{assert*} \ -+ %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}" -+ -+#define OBSD_HAS_CORRECT_SPECS -+ -+#undef JUMP_TABLES_IN_TEXT_SECTION -+#define JUMP_TABLES_IN_TEXT_SECTION (flag_pic) -+ -+/* ADDED FOR GNAT AUX SUPPORT */ -+/* Define this to be nonzero if static stack checking is supported */ -+#undef STACK_CHECK_STATIC_BUILTIN -+#define STACK_CHECK_STATIC_BUILTIN 1 -+ -+/* Ensure rounding is left to GNAT (Not required for AMD64) */ -+#undef TARGET_96_ROUND_53_LONG_DOUBLE -+#define TARGET_96_ROUND_53_LONG_DOUBLE 1 -+ ---- gcc/config/i386/openbsdelf.h.orig -+++ gcc/config/i386/openbsdelf.h -@@ -1,6 +1,7 @@ - /* Configuration for an OpenBSD i386 target. -- -+ - Copyright (C) 2005, 2007, 2009, 2010 Free Software Foundation, Inc. -+ Copyright (C) 2010, 2011 John Marino <www.dragonlace.net> - - This file is part of GCC. - -@@ -82,7 +83,7 @@ - - /* The following macros were originally stolen from i386v4.h. - These have to be defined to get PIC code correct. */ -- -+ - /* Assembler format: dispatch tables. */ - - /* Assembler format: sections. */ -@@ -132,3 +133,18 @@ - -dynamic-linker /usr/libexec/ld.so" - - #define OBSD_HAS_CORRECT_SPECS -+ -+ -+/* ADDED FOR GNAT AUX SUPPORT */ -+/* Define this to be nonzero if static stack checking is supported */ -+#undef STACK_CHECK_STATIC_BUILTIN -+#define STACK_CHECK_STATIC_BUILTIN 1 -+ -+/* Ensure rounding is left to GNAT (i386 only) */ -+#undef TARGET_96_ROUND_53_LONG_DOUBLE -+#define TARGET_96_ROUND_53_LONG_DOUBLE 0 -+ -+/* Define location of OS-specific unwind support configuration. -+ Not required until OpenBSD changes from SJLJ to ZCX exceptions -+ When that happens, remove comments from first line and delete second line. */ -+/*#define MD_UNWIND_SUPPORT "config/i386/openbsd-unwind32.h" */ ---- gcc/ginclude/stddef.h.orig -+++ gcc/ginclude/stddef.h -@@ -1,5 +1,6 @@ - /* Copyright (C) 1989, 1997, 1998, 1999, 2000, 2002, 2004, 2009 - Free Software Foundation, Inc. -+ Copyright (C) 2010 John Marino <draco@marino.st> - - This file is part of GCC. - -@@ -59,6 +60,10 @@ - #include <sys/_types.h> - #endif - -+#if defined (__DragonFly__) -+#include <sys/types.h> -+#endif -+ - /* In 4.3bsd-net2, machine/ansi.h defines these symbols, which are - defined if the corresponding type is *not* defined. - FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_. -@@ -136,6 +141,7 @@ - #ifndef _BSD_PTRDIFF_T_ - #ifndef ___int_ptrdiff_t_h - #ifndef _GCC_PTRDIFF_T -+#ifndef _PTRDIFF_T_DECLARED /* DragonFly BSD */ - #define _PTRDIFF_T - #define _T_PTRDIFF_ - #define _T_PTRDIFF -@@ -144,10 +150,12 @@ - #define _BSD_PTRDIFF_T_ - #define ___int_ptrdiff_t_h - #define _GCC_PTRDIFF_T -+#define _PTRDIFF_T_DECLARED - #ifndef __PTRDIFF_TYPE__ - #define __PTRDIFF_TYPE__ long int - #endif - typedef __PTRDIFF_TYPE__ ptrdiff_t; -+#endif /* _PTRDFF_T_DECLARED */ - #endif /* _GCC_PTRDIFF_T */ - #endif /* ___int_ptrdiff_t_h */ - #endif /* _BSD_PTRDIFF_T_ */ -@@ -179,7 +187,7 @@ - #ifndef _SIZE_T_DEFINED_ - #ifndef _SIZE_T_DEFINED - #ifndef _BSD_SIZE_T_DEFINED_ /* Darwin */ --#ifndef _SIZE_T_DECLARED /* FreeBSD 5 */ -+#ifndef _SIZE_T_DECLARED /* FreeBSD 5, also DragonFly */ - #ifndef ___int_size_t_h - #ifndef _GCC_SIZE_T - #ifndef _SIZET_ -@@ -196,12 +204,13 @@ - #define _SIZE_T_DEFINED_ - #define _SIZE_T_DEFINED - #define _BSD_SIZE_T_DEFINED_ /* Darwin */ --#define _SIZE_T_DECLARED /* FreeBSD 5 */ -+#define _SIZE_T_DECLARED /* FreeBSD 5, DragonFly */ - #define ___int_size_t_h - #define _GCC_SIZE_T - #define _SIZET_ --#if defined (__FreeBSD__) && (__FreeBSD__ >= 5) --/* __size_t is a typedef on FreeBSD 5!, must not trash it. */ -+#if defined (__DragonFly__) || (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) -+/* __size_t is a typedef on FreeBSD 5!, must not trash it. -+ __size_t is also defined in <machine/stdint.h> on DragonFly BSD */ - #else - #define __size_t - #endif -@@ -253,7 +262,7 @@ - #ifndef _BSD_WCHAR_T_ - #ifndef _BSD_WCHAR_T_DEFINED_ /* Darwin */ - #ifndef _BSD_RUNE_T_DEFINED_ /* Darwin */ --#ifndef _WCHAR_T_DECLARED /* FreeBSD 5 */ -+#ifndef _WCHAR_T_DECLARED /* FreeBSD 5, also DragonFly */ - #ifndef _WCHAR_T_DEFINED_ - #ifndef _WCHAR_T_DEFINED - #ifndef _WCHAR_T_H -@@ -305,8 +314,10 @@ - #endif - /* FreeBSD 5 can't be handled well using "traditional" logic above - since it no longer defines _BSD_RUNE_T_ yet still desires to export -- rune_t in some cases... */ --#if defined (__FreeBSD__) && (__FreeBSD__ >= 5) -+ rune_t in some cases... -+ DragonFly BSD inherited this quirk from FreeBSD 4.8. -+*/ -+#if defined (__DragonFly__) || (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) - #if !defined (_ANSI_SOURCE) && !defined (_POSIX_SOURCE) - #if __BSD_VISIBLE - #ifndef _RUNE_T_DECLARED ---- include/libiberty.h.orig -+++ include/libiberty.h -@@ -2,6 +2,7 @@ - - Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, - 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. -+ Copyright 2010, 2011 John Marino <http://www.dragonlace.net> - - Note - certain prototypes declared in this header file are for - functions whoes implementation copyright does not belong to the -@@ -102,7 +103,16 @@ - to find the declaration so provide a fully prototyped one. If it - is 1, we found it so don't provide any declaration at all. */ - #if !HAVE_DECL_BASENAME --#if defined (__GNU_LIBRARY__ ) || defined (__linux__) || defined (__FreeBSD__) || defined (__OpenBSD__) || defined(__NetBSD__) || defined (__CYGWIN__) || defined (__CYGWIN32__) || defined (__MINGW32__) || defined (HAVE_DECL_BASENAME) -+#if defined (__GNU_LIBRARY__) \ -+ || defined (__linux__) \ -+ || defined (__FreeBSD__) \ -+ || defined (__OpenBSD__) \ -+ || defined (__NetBSD__) \ -+ || defined (__DragonFly__) \ -+ || defined (__CYGWIN__) \ -+ || defined (__CYGWIN32__) \ -+ || defined (__MINGW32__) \ -+ || defined (HAVE_DECL_BASENAME) - extern char *basename (const char *); - #else - /* Do not allow basename to be used if there is no prototype seen. We ---- libgcc/config.host.orig -+++ libgcc/config.host -@@ -1,6 +1,7 @@ - # libgcc host-specific configuration file. - # Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, - # 2008, 2009, 2010 Free Software Foundation, Inc. -+# Copyright 2010-2012 John Marino <http://www.dragonlace.net> - - #This file is part of GCC. - -@@ -157,6 +158,8 @@ - ;; - *-*-openbsd*) - ;; -+*-*-dragonfly*) -+ ;; - *-*-rtems*) - ;; - *-*-vxworks*) -@@ -278,6 +281,14 @@ - x86_64-*-freebsd*) - tmake_file="${tmake_file} i386/t-freebsd" - ;; -+i[34567]86-*-dragonfly*) -+ # define symbol versions (same as FreeBSD) -+ tmake_file="${tmake_file} i386/t-dragonfly" -+ ;; -+x86_64-*-dragonfly*) -+ # define symbol versions (same as FreeBSD) -+ tmake_file="${tmake_file} i386/t-dragonfly" -+ ;; - i[34567]86-*-netbsdelf*) - ;; - i[34567]86-*-netbsd*) -@@ -288,6 +299,8 @@ - ;; - i[34567]86-*-openbsd*) - ;; -+x86_64-*-openbsd*) -+ ;; - i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu*) - extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o" - tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm" -@@ -619,6 +632,9 @@ - tmake_file="${tmake_file} t-softfp i386/${host_address}/t-fprules-softfp" - fi - ;; -+i[34567]86-*-dragonfly* | i[34567]86-*-netbsdelf*) -+ tmake_file="${tmake_file} t-softfp i386/32/t-fprules-softfp" -+ ;; - esac - - case ${host} in ---- /dev/null -+++ libgcc/config/i386/t-dragonfly -@@ -0,0 +1,2 @@ -+# Add support for the introduction of 128-bit long double. -+SHLIB_MAPFILES += $(srcdir)/config/i386/libgcc-bsd.ver ---- gcc/configure.orig -+++ gcc/configure -@@ -25833,6 +25833,20 @@ - gcc_cv_target_dl_iterate_phdr=no - fi - ;; -+ *-*-dragonfly* | *-*-freebsd*) -+ if grep dl_iterate_phdr $target_header_dir/sys/link_elf.h > /dev/null 2>&1; then -+ gcc_cv_target_dl_iterate_phdr=yes -+ else -+ gcc_cv_target_dl_iterate_phdr=no -+ fi -+ ;; -+# *-*-netbsd* | *-*-openbsd*) -+# if grep dl_iterate_phdr $target_header_dir/link_elf.h > /dev/null 2>&1; then -+# gcc_cv_target_dl_iterate_phdr=yes -+# else -+# gcc_cv_target_dl_iterate_phdr=no -+# fi -+# ;; - esac - - if test x$gcc_cv_target_dl_iterate_phdr = xyes; then ---- gcc/Makefile.in.orig -+++ gcc/Makefile.in -@@ -4322,7 +4322,7 @@ - DESTDIR=$(@D) \ - $(SHELL) $(srcdir)/doc/install.texi2html - --MANFILES = doc/gcov.1 doc/cpp.1 doc/gcc.1 doc/gfdl.7 doc/gpl.7 doc/fsf-funding.7 -+MANFILES = doc/gcov.1 doc/cpp.1 doc/gcc.1 - - generated-manpages: man - -@@ -4474,7 +4474,7 @@ - # Install the driver last so that the window when things are - # broken is small. - install: install-common $(INSTALL_HEADERS) \ -- install-cpp install-man install-info install-@POSUB@ \ -+ install-cpp install-man install-@POSUB@ \ - install-driver install-lto-wrapper - - ifeq ($(enable_plugin),yes) -@@ -4665,10 +4665,7 @@ - install-man: lang.install-man \ - $(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext) \ - $(DESTDIR)$(man1dir)/$(CPP_INSTALL_NAME)$(man1ext) \ -- $(DESTDIR)$(man1dir)/$(GCOV_INSTALL_NAME)$(man1ext) \ -- $(DESTDIR)$(man7dir)/fsf-funding$(man7ext) \ -- $(DESTDIR)$(man7dir)/gfdl$(man7ext) \ -- $(DESTDIR)$(man7dir)/gpl$(man7ext) -+ $(DESTDIR)$(man1dir)/$(GCOV_INSTALL_NAME)$(man1ext) - - $(DESTDIR)$(man7dir)/%$(man7ext): doc/%.7 installdirs - -rm -f $@ ---- libiberty/getpagesize.c.orig -+++ libiberty/getpagesize.c -@@ -20,6 +20,7 @@ - - */ - -+#ifndef __ANDROID__ - #ifndef VMS - - #include "config.h" -@@ -88,3 +89,4 @@ - } - - #endif /* VMS */ -+#endif /* __ANDROID__ */ ---- libiberty/setproctitle.c.orig -+++ libiberty/setproctitle.c -@@ -40,9 +40,11 @@ - void - setproctitle (const char *name ATTRIBUTE_UNUSED, ...) - { -+#ifndef __ANDROID__ - #ifdef PR_SET_NAME - /* On Linux this sets the top visible "comm", but not necessarily - the name visible in ps. */ - prctl (PR_SET_NAME, name); - #endif -+#endif - } ---- configure.orig -+++ configure -@@ -14196,7 +14196,7 @@ - _ACEOF - if ac_fn_c_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 --$as_echo "yes" >&6; }; stage1_cflags="$stage1_cflags -fkeep-inline-functions" -+$as_echo "yes" >&6; }; - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } diff --git a/lang/gnat-aux/files/diff-cxx b/lang/gnat-aux/files/diff-cxx deleted file mode 100644 index 91500d6afcad..000000000000 --- a/lang/gnat-aux/files/diff-cxx +++ /dev/null @@ -1,953 +0,0 @@ ---- libstdc++-v3/acinclude.m4.orig -+++ libstdc++-v3/acinclude.m4 -@@ -1753,7 +1753,7 @@ - AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [ - GLIBCXX_ENABLE(clocale,auto,[[[=MODEL]]], - [use MODEL for target locale package], -- [permit generic|gnu|ieee_1003.1-2001|yes|no|auto]) -+ [permit generic|gnu|ieee_1003.1-2001|darwin|dragonfly|yes|no|auto]) - - # Deal with gettext issues. Default to not using it (=no) until we detect - # support for it later. Let the user turn it off via --e/d, but let that -@@ -1780,6 +1780,9 @@ - darwin* | freebsd*) - enable_clocale_flag=darwin - ;; -+ dragonfly*) -+ enable_clocale_flag=dragonfly -+ ;; - *) - enable_clocale_flag=generic - ;; -@@ -1864,7 +1867,22 @@ - CTIME_CC=config/locale/generic/time_members.cc - CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h - ;; -+ dragonfly) -+ AC_MSG_RESULT(dragonfly) - -+ CLOCALE_H=config/locale/generic/c_locale.h -+ CLOCALE_CC=config/locale/dragonfly/c_locale.cc -+ CCODECVT_CC=config/locale/generic/codecvt_members.cc -+ CCOLLATE_CC=config/locale/generic/collate_members.cc -+ CCTYPE_CC=config/locale/dragonfly/ctype_members.cc -+ CMESSAGES_H=config/locale/generic/messages_members.h -+ CMESSAGES_CC=config/locale/generic/messages_members.cc -+ CMONEY_CC=config/locale/generic/monetary_members.cc -+ CNUMERIC_CC=config/locale/generic/numeric_members.cc -+ CTIME_H=config/locale/generic/time_members.h -+ CTIME_CC=config/locale/generic/time_members.cc -+ CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h -+ ;; - gnu) - AC_MSG_RESULT(gnu) - ---- libstdc++-v3/configure.orig -+++ libstdc++-v3/configure -@@ -15638,7 +15638,7 @@ - if test "${enable_clocale+set}" = set; then : - enableval=$enable_clocale; - case "$enableval" in -- generic|gnu|ieee_1003.1-2001|yes|no|auto) ;; -+ generic|gnu|ieee_1003.1-2001|darwin|dragonfly|yes|no|auto) ;; - *) as_fn_error "Unknown argument to enable/disable clocale" "$LINENO" 5 ;; - esac - -@@ -15676,6 +15676,9 @@ - darwin* | freebsd*) - enable_clocale_flag=darwin - ;; -+ dragonfly*) -+ enable_clocale_flag=dragonfly -+ ;; - *) - enable_clocale_flag=generic - ;; -@@ -15813,7 +15816,23 @@ - CTIME_CC=config/locale/generic/time_members.cc - CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h - ;; -+ dragonfly) -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: dragonfly" >&5 -+$as_echo "dragonfly" >&6; } - -+ CLOCALE_H=config/locale/generic/c_locale.h -+ CLOCALE_CC=config/locale/dragonfly/c_locale.cc -+ CCODECVT_CC=config/locale/generic/codecvt_members.cc -+ CCOLLATE_CC=config/locale/generic/collate_members.cc -+ CCTYPE_CC=config/locale/dragonfly/ctype_members.cc -+ CMESSAGES_H=config/locale/generic/messages_members.h -+ CMESSAGES_CC=config/locale/generic/messages_members.cc -+ CMONEY_CC=config/locale/generic/monetary_members.cc -+ CNUMERIC_CC=config/locale/generic/numeric_members.cc -+ CTIME_H=config/locale/generic/time_members.h -+ CTIME_CC=config/locale/generic/time_members.cc -+ CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h -+ ;; - gnu) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: gnu" >&5 - $as_echo "gnu" >&6; } ---- libstdc++-v3/configure.host.orig -+++ libstdc++-v3/configure.host -@@ -233,6 +233,9 @@ - os_include_dir="os/djgpp" - error_constants_dir="os/djgpp" - ;; -+ dragonfly*) -+ os_include_dir="os/bsd/dragonfly" -+ ;; - freebsd*) - os_include_dir="os/bsd/freebsd" - ;; ---- /dev/null -+++ libstdc++-v3/config/locale/dragonfly/c_locale.cc -@@ -0,0 +1,300 @@ -+// Wrapper for underlying C-language localization -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 -+// Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library 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, or (at your option) -+// any later version. -+ -+// 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. See the -+// GNU General Public License for more details. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// <http://www.gnu.org/licenses/>. -+ -+// -+// ISO C++ 14882: 22.8 Standard locale categories. -+// -+ -+// Written by Benjamin Kosnik <bkoz@redhat.com> -+ -+#include <cerrno> // For errno -+#include <cmath> // For isinf, finite, finitef, fabs -+#include <cstdlib> // For strof, strtold -+#include <cstring> -+#include <cstdio> -+#include <locale> -+#include <limits> -+ -+#ifdef _GLIBCXX_HAVE_IEEEFP_H -+#include <ieeefp.h> -+#endif -+ -+namespace std _GLIBCXX_VISIBILITY(default) -+{ -+_GLIBCXX_BEGIN_NAMESPACE_VERSION -+ -+ template<> -+ void -+ __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err, -+ const __c_locale&) throw() -+ { -+ // Assumes __s formatted for "C" locale. -+ char* __old = setlocale(LC_ALL, 0); -+ const size_t __len = strlen(__old) + 1; -+ char* __sav = new char[__len]; -+ memcpy(__sav, __old, __len); -+ setlocale(LC_ALL, "C"); -+ char* __sanity; -+ bool __overflow = false; -+ -+#if !__FLT_HAS_INFINITY__ -+ errno = 0; -+#endif -+ -+#ifdef _GLIBCXX_HAVE_STRTOF -+ __v = strtof(__s, &__sanity); -+#else -+ double __d = strtod(__s, &__sanity); -+ __v = static_cast<float>(__d); -+#ifdef _GLIBCXX_HAVE_FINITEF -+ if (!finitef (__v)) -+ __overflow = true; -+#elif defined (_GLIBCXX_HAVE_FINITE) -+ if (!finite (static_cast<double> (__v))) -+ __overflow = true; -+#elif defined (_GLIBCXX_HAVE_ISINF) -+ if (isinf (static_cast<double> (__v))) -+ __overflow = true; -+#else -+ if (fabs(__d) > numeric_limits<float>::max()) -+ __overflow = true; -+#endif -+#endif // _GLIBCXX_HAVE_STRTOF -+ -+ // _GLIBCXX_RESOLVE_LIB_DEFECTS -+ // 23. Num_get overflow result. -+ if (__sanity == __s || *__sanity != '\0') -+ { -+ __v = 0.0f; -+ __err = ios_base::failbit; -+ } -+ else if (__overflow -+#if __FLT_HAS_INFINITY__ -+ || __v == numeric_limits<float>::infinity() -+ || __v == -numeric_limits<float>::infinity() -+#else -+ || ((__v > 1.0f || __v < -1.0f) && errno == ERANGE) -+#endif -+ ) -+ { -+ if (__v > 0.0f) -+ __v = numeric_limits<float>::max(); -+ else -+ __v = -numeric_limits<float>::max(); -+ __err = ios_base::failbit; -+ } -+ -+ setlocale(LC_ALL, __sav); -+ delete [] __sav; -+ } -+ -+ template<> -+ void -+ __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err, -+ const __c_locale&) throw() -+ { -+ // Assumes __s formatted for "C" locale. -+ char* __old = setlocale(LC_ALL, 0); -+ const size_t __len = strlen(__old) + 1; -+ char* __sav = new char[__len]; -+ memcpy(__sav, __old, __len); -+ setlocale(LC_ALL, "C"); -+ char* __sanity; -+ -+#if !__DBL_HAS_INFINITY__ -+ errno = 0; -+#endif -+ -+ __v = strtod(__s, &__sanity); -+ -+ // _GLIBCXX_RESOLVE_LIB_DEFECTS -+ // 23. Num_get overflow result. -+ if (__sanity == __s || *__sanity != '\0') -+ { -+ __v = 0.0; -+ __err = ios_base::failbit; -+ } -+ else if ( -+#if __DBL_HAS_INFINITY__ -+ __v == numeric_limits<double>::infinity() -+ || __v == -numeric_limits<double>::infinity()) -+#else -+ (__v > 1.0 || __v < -1.0) && errno == ERANGE) -+#endif -+ { -+ if (__v > 0.0) -+ __v = numeric_limits<double>::max(); -+ else -+ __v = -numeric_limits<double>::max(); -+ __err = ios_base::failbit; -+ } -+ -+ setlocale(LC_ALL, __sav); -+ delete [] __sav; -+ } -+ -+ template<> -+ void -+ __convert_to_v(const char* __s, long double& __v, -+ ios_base::iostate& __err, const __c_locale&) throw() -+ { -+ // Assumes __s formatted for "C" locale. -+ char* __old = setlocale(LC_ALL, 0); -+ const size_t __len = strlen(__old) + 1; -+ char* __sav = new char[__len]; -+ memcpy(__sav, __old, __len); -+ setlocale(LC_ALL, "C"); -+ -+#if !__LDBL_HAS_INFINITY__ -+ errno = 0; -+#endif -+ -+#if defined(_GLIBCXX_HAVE_STRTOLD) && !defined(_GLIBCXX_HAVE_BROKEN_STRTOLD) -+ char* __sanity; -+ __v = strtold(__s, &__sanity); -+ -+ // _GLIBCXX_RESOLVE_LIB_DEFECTS -+ // 23. Num_get overflow result. -+ if (__sanity == __s || *__sanity != '\0') -+#else -+ typedef char_traits<char>::int_type int_type; -+ int __p = sscanf(__s, "%Lf", &__v); -+ -+ if (!__p || static_cast<int_type>(__p) == char_traits<char>::eof()) -+#endif -+ { -+ __v = 0.0l; -+ __err = ios_base::failbit; -+ } -+ else if ( -+#if __LDBL_HAS_INFINITY__ -+ __v == numeric_limits<long double>::infinity() -+ || __v == -numeric_limits<long double>::infinity()) -+#else -+ (__v > 1.0l || __v < -1.0l) && errno == ERANGE) -+#endif -+ { -+ if (__v > 0.0l) -+ __v = numeric_limits<long double>::max(); -+ else -+ __v = -numeric_limits<long double>::max(); -+ __err = ios_base::failbit; -+ } -+ -+ setlocale(LC_ALL, __sav); -+ delete [] __sav; -+ } -+ -+ -+ /* DragonFly's implemenation of setlocale won't accept something like -+ "de_DE". According to nls manpage, the expected format is: -+ language[_territory][.codeset][@modifier], but it seems that both -+ the _territory and .codeset components are required. -+ -+ As an attempt to correct for this, we'll tack on ".UTF-8" if -+ a period is not detected in the locale string. -+ -+ There are no locales with modifiers on DragonFly so if found, they -+ will just be stripped off silently. e.g "de_DE@euro" will be reduced -+ to "de_DE". The UTF-8 default would be added after that. -+ */ -+ -+ void -+ locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s, -+ __c_locale) -+ { -+ const size_t size__s = (__s == NULL) ? 1 : strlen (__s); -+ const char UTF8[] = ".UTF-8"; -+ char localspec[size__s + 6 + 1]; -+ -+ if (__s == NULL) { -+ localspec[0] = NULL; -+ } else { -+ strcpy (localspec, __s); -+ char * pch = strchr (localspec, '@'); -+ if (pch != NULL) -+ *pch = 0; -+ -+ if ( (strchr (__s, '.') == NULL) -+ && (strcmp (__s, "C") != 0) -+ && (strcmp (__s, "POSIX") != 0)) -+ strncat (localspec, UTF8, 6); -+ } -+ -+ const char * result = std::setlocale(LC_ALL, localspec); -+ -+ if ((strcmp(result, "C") != 0) && (strcmp (result, localspec) != 0)) -+ __throw_runtime_error(__N("locale::facet::_S_create_c_locale " -+ "name not valid")); -+ __cloc = 0; -+ } -+ -+ void -+ locale::facet::_S_destroy_c_locale(__c_locale& __cloc) -+ { __cloc = 0; } -+ -+ __c_locale -+ locale::facet::_S_clone_c_locale(__c_locale&) throw() -+ { return __c_locale(); } -+ -+ __c_locale -+ locale::facet::_S_lc_ctype_c_locale(__c_locale, const char*) -+ { return __c_locale(); } -+ -+_GLIBCXX_END_NAMESPACE_VERSION -+} // namespace -+ -+namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) -+{ -+_GLIBCXX_BEGIN_NAMESPACE_VERSION -+ -+ const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] = -+ { -+ "LC_CTYPE", -+ "LC_NUMERIC", -+ "LC_TIME", -+ "LC_COLLATE", -+ "LC_MONETARY", -+ "LC_MESSAGES" -+ }; -+ -+_GLIBCXX_END_NAMESPACE_VERSION -+} // namespace -+ -+namespace std _GLIBCXX_VISIBILITY(default) -+{ -+_GLIBCXX_BEGIN_NAMESPACE_VERSION -+ -+ const char* const* const locale::_S_categories = __gnu_cxx::category_names; -+ -+_GLIBCXX_END_NAMESPACE_VERSION -+} // namespace -+ -+// XXX GLIBCXX_ABI Deprecated -+#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT -+#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \ -+ extern "C" void ldbl (void) __attribute__ ((alias (#dbl))) -+_GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPi, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPi); -+#endif // _GLIBCXX_LONG_DOUBLE_COMPAT ---- /dev/null -+++ libstdc++-v3/config/locale/dragonfly/ctype_members.cc -@@ -0,0 +1,172 @@ -+// std::ctype implementation details, GNU version -*- C++ -*- -+ -+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 -+// Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library 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, or (at your option) -+// any later version. -+ -+// 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. See the -+// GNU General Public License for more details. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// <http://www.gnu.org/licenses/>. -+ -+// -+// ISO C++ 14882: 22.2.1.1.2 ctype virtual functions. -+// -+ -+// Written by Benjamin Kosnik <bkoz@redhat.com> -+ -+#include <locale> -+#include <bits/c++locale_internal.h> -+#include <cstdlib> -+#include <cstring> -+#include <cstdio> -+ -+namespace std _GLIBCXX_VISIBILITY(default) -+{ -+ // NB: The other ctype<char> specializations are in src/locale.cc and -+ // various /config/os/* files. -+ -+ ctype_byname<char>::ctype_byname(const char* __s, size_t __refs) -+ : ctype<char>(0, false, __refs) -+ { -+ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0) -+ { -+ this->_S_destroy_c_locale(this->_M_c_locale_ctype); -+ this->_S_create_c_locale(this->_M_c_locale_ctype, __s); -+ } -+ } -+ -+ ctype_byname<char>::~ctype_byname() -+ { } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ ctype<wchar_t>::__wmask_type -+ ctype<wchar_t>::_M_convert_to_wmask(const mask /* __m */) const throw() -+ { -+ // This routine never gets called on DragonFly. -+ return 0; -+ }; -+ -+ wchar_t -+ ctype<wchar_t>::do_toupper(wchar_t __c) const -+ { return towupper(__c); } -+ -+ const wchar_t* -+ ctype<wchar_t>::do_toupper(wchar_t* __lo, const wchar_t* __hi) const -+ { -+ while (__lo < __hi) -+ { -+ *__lo = towupper(*__lo); -+ ++__lo; -+ } -+ return __hi; -+ } -+ -+ wchar_t -+ ctype<wchar_t>::do_tolower(wchar_t __c) const -+ { return towlower(__c); } -+ -+ const wchar_t* -+ ctype<wchar_t>::do_tolower(wchar_t* __lo, const wchar_t* __hi) const -+ { -+ while (__lo < __hi) -+ { -+ *__lo = towlower(*__lo); -+ ++__lo; -+ } -+ return __hi; -+ } -+ -+ wchar_t -+ ctype<wchar_t>:: -+ do_widen(char __c) const -+ { return _M_widen[static_cast<unsigned char>(__c)]; } -+ -+ const char* -+ ctype<wchar_t>:: -+ do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const -+ { -+ while (__lo < __hi) -+ { -+ *__dest = _M_widen[static_cast<unsigned char>(*__lo)]; -+ ++__lo; -+ ++__dest; -+ } -+ return __hi; -+ } -+ -+ char -+ ctype<wchar_t>:: -+ do_narrow(wchar_t __wc, char __dfault) const -+ { -+ if (__wc >= 0 && __wc < 128 && _M_narrow_ok) -+ return _M_narrow[__wc]; -+ const int __c = wctob(__wc); -+ return (__c == EOF ? __dfault : static_cast<char>(__c)); -+ } -+ -+ const wchar_t* -+ ctype<wchar_t>:: -+ do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault, -+ char* __dest) const -+ { -+ if (_M_narrow_ok) -+ while (__lo < __hi) -+ { -+ if (*__lo >= 0 && *__lo < 128) -+ *__dest = _M_narrow[*__lo]; -+ else -+ { -+ const int __c = wctob(*__lo); -+ *__dest = (__c == EOF ? __dfault : static_cast<char>(__c)); -+ } -+ ++__lo; -+ ++__dest; -+ } -+ else -+ while (__lo < __hi) -+ { -+ const int __c = wctob(*__lo); -+ *__dest = (__c == EOF ? __dfault : static_cast<char>(__c)); -+ ++__lo; -+ ++__dest; -+ } -+ return __hi; -+ } -+ -+ void -+ ctype<wchar_t>::_M_initialize_ctype() throw() -+ { -+ wint_t __i; -+ for (__i = 0; __i < 128; ++__i) -+ { -+ const int __c = wctob(__i); -+ if (__c == EOF) -+ break; -+ else -+ _M_narrow[__i] = static_cast<char>(__c); -+ } -+ if (__i == 128) -+ _M_narrow_ok = true; -+ else -+ _M_narrow_ok = false; -+ for (size_t __i = 0; -+ __i < sizeof(_M_widen) / sizeof(wint_t); ++__i) -+ _M_widen[__i] = btowc(__i); -+ } -+#endif // _GLIBCXX_USE_WCHAR_T -+} ---- /dev/null -+++ libstdc++-v3/config/os/bsd/dragonfly/ctype_base.h -@@ -0,0 +1,75 @@ -+// Locale support -*- C++ -*- -+ -+// Copyright (C) 2000, 2003, 2009, 2010 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library 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, or (at your option) -+// any later version. -+ -+// 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. See the -+// GNU General Public License for more details. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// <http://www.gnu.org/licenses/>. -+ -+// -+// ISO C++ 14882: 22.1 Locales -+// -+ -+// Information as gleaned from /usr/include/ctype.h on DragonFly. -+ -+namespace std _GLIBCXX_VISIBILITY(default) -+{ -+_GLIBCXX_BEGIN_NAMESPACE_VERSION -+ -+ /// @brief Base class for ctype. -+ struct ctype_base -+ { -+ // Non-standard typedefs. -+ typedef const unsigned char* __to_type; -+ -+ // NB: Offsets into ctype<char>::_M_table force a particular size -+ // on the mask type. Because of this, we don't use an enum. -+#ifdef _CTYPE_S -+ // DragonFly 3.6 and later -+ typedef unsigned long mask; -+ static const mask upper = _CTYPE_U; -+ static const mask lower = _CTYPE_L; -+ static const mask alpha = _CTYPE_A; -+ static const mask digit = _CTYPE_D; -+ static const mask xdigit = _CTYPE_X; -+ static const mask space = _CTYPE_S; -+ static const mask print = _CTYPE_R; -+ static const mask graph = _CTYPE_A | _CTYPE_D | _CTYPE_P; -+ static const mask cntrl = _CTYPE_C; -+ static const mask punct = _CTYPE_P; -+ static const mask alnum = _CTYPE_A | _CTYPE_D; -+#else -+ // DragonFly 3.4 and older -+ typedef uint16_t mask; -+ static const mask upper = _CTYPEMASK_U; -+ static const mask lower = _CTYPEMASK_L; -+ static const mask alpha = _CTYPEMASK_A; -+ static const mask digit = _CTYPEMASK_D; -+ static const mask xdigit = _CTYPEMASK_X; -+ static const mask space = _CTYPEMASK_S; -+ static const mask print = _CTYPEMASK_R; -+ static const mask graph = _CTYPEMASK_G; -+ static const mask cntrl = _CTYPEMASK_C; -+ static const mask punct = _CTYPEMASK_P; -+ static const mask alnum = _CTYPEMASK_A | _CTYPEMASK_D; -+#endif -+ }; -+ -+_GLIBCXX_END_NAMESPACE_VERSION -+} // namespace ---- /dev/null -+++ libstdc++-v3/config/os/bsd/dragonfly/ctype_inline.h -@@ -0,0 +1,144 @@ -+// Locale support -*- C++ -*- -+ -+// Copyright (C) 2000, 2003, 2004, 2005, 2009, 2010 -+// Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library 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, or (at your option) -+// any later version. -+ -+// 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. See the -+// GNU General Public License for more details. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// <http://www.gnu.org/licenses/>. -+ -+/** @file bits/ctype_inline.h -+ * This is an internal header file, included by other library headers. -+ * Do not attempt to use it directly. @headername{locale} -+ */ -+ -+// -+// ISO C++ 14882: 22.1 Locales -+// -+ -+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*) -+// functions go in ctype.cc -+ -+namespace std _GLIBCXX_VISIBILITY(default) -+{ -+_GLIBCXX_BEGIN_NAMESPACE_VERSION -+ -+ bool -+ ctype<char>:: -+ is(mask __m, char __c) const -+ { return _M_table[(unsigned char)(__c)] & __m; } -+ -+ const char* -+ ctype<char>:: -+ is(const char* __low, const char* __high, mask* __vec) const -+ { -+ while (__low < __high) -+ *__vec++ = _M_table[*__low++]; -+ return __high; -+ } -+ -+ const char* -+ ctype<char>:: -+ scan_is(mask __m, const char* __low, const char* __high) const -+ { -+ while (__low < __high && !this->is(__m, *__low)) -+ ++__low; -+ return __low; -+ } -+ -+ const char* -+ ctype<char>:: -+ scan_not(mask __m, const char* __low, const char* __high) const -+ { -+ while (__low < __high && this->is(__m, *__low) != 0) -+ ++__low; -+ return __low; -+ } -+ -+#ifdef _GLIBCXX_USE_WCHAR_T -+ inline bool -+ ctype<wchar_t>:: -+ do_is(mask __m, wchar_t __c) const -+ { -+#ifdef _CTYPE_S -+ return __istype (__c, __m); -+#else -+ return __libc_ctype_ [__c + 1] & __m; -+#endif -+ } -+ -+ inline const wchar_t* -+ ctype<wchar_t>:: -+ do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const -+ { -+ for (; __lo < __hi; ++__vec, ++__lo) -+#ifdef _CTYPE_S -+ *__vec = __maskrune (*__lo, upper | lower | alpha | digit | xdigit -+ | space | print | graph | cntrl | punct | alnum); -+#else -+ { -+ mask __m = 0; -+ if (isupper (*__lo)) __m |= _CTYPEMASK_U; -+ if (islower (*__lo)) __m |= _CTYPEMASK_L; -+ if (isdigit (*__lo)) __m |= _CTYPEMASK_D; -+ if (isspace (*__lo)) __m |= _CTYPEMASK_S; -+ if (ispunct (*__lo)) __m |= _CTYPEMASK_P; -+ if (isblank (*__lo)) __m |= _CTYPEMASK_B; -+ if (iscntrl (*__lo)) __m |= _CTYPEMASK_C; -+ if (isalpha (*__lo)) __m |= _CTYPEMASK_A; -+ if (isgraph (*__lo)) __m |= _CTYPEMASK_G; -+ if (isprint (*__lo)) __m |= _CTYPEMASK_R; -+ if (isxdigit(*__lo)) __m |= _CTYPEMASK_X; -+ /* alnum already covered = alpha | digit */ -+ -+ *__vec = __m; -+ } -+#endif -+ return __hi; -+ } -+ -+ inline const wchar_t* -+ ctype<wchar_t>:: -+ do_scan_is(mask __m, const wchar_t* __lo, const wchar_t* __hi) const -+ { -+#ifdef _CTYPE_S -+ while (__lo < __hi && ! __istype (*__lo, __m)) -+#else -+ while (__lo < __hi && !(__libc_ctype_ [*__lo + 1] & __m)) -+#endif -+ ++__lo; -+ return __lo; -+ } -+ -+ inline const wchar_t* -+ ctype<wchar_t>:: -+ do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const -+ { -+#ifdef _CTYPE_S -+ while (__lo < __hi && __istype (*__lo, __m)) -+#else -+ while (__lo < __hi && (__libc_ctype_ [*__lo + 1] & __m)) -+#endif -+ ++__lo; -+ return __lo; -+ } -+#endif -+ -+_GLIBCXX_END_NAMESPACE_VERSION -+} // namespace ---- /dev/null -+++ libstdc++-v3/config/os/bsd/dragonfly/ctype_noninline.h -@@ -0,0 +1,98 @@ -+// Locale support -*- C++ -*- -+ -+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2009, 2010 -+// Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library 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, or (at your option) -+// any later version. -+ -+// 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. See the -+// GNU General Public License for more details. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// <http://www.gnu.org/licenses/>. -+ -+/** @file bits/ctype_noninline.h -+ * This is an internal header file, included by other library headers. -+ * Do not attempt to use it directly. @headername{locale} -+ */ -+ -+// -+// ISO C++ 14882: 22.1 Locales -+// -+ -+// Information as gleaned from /usr/include/ctype.h -+ -+#ifdef _CTYPE_S -+ extern "C" const unsigned long __libc_C_ctype_[]; -+#else -+ extern "C" const __uint16_t __libc_C_ctype_[]; -+#endif -+ -+ const ctype_base::mask* -+ ctype<char>::classic_table() throw() -+ { return __libc_C_ctype_ + 1; } -+ -+ ctype<char>::ctype(__c_locale, const mask* __table, bool __del, -+ size_t __refs) -+ : facet(__refs), _M_del(__table != 0 && __del), -+ _M_toupper(NULL), _M_tolower(NULL), -+ _M_table(__table ? __table : classic_table()) -+ { -+ memset(_M_widen, 0, sizeof(_M_widen)); -+ _M_widen_ok = 0; -+ memset(_M_narrow, 0, sizeof(_M_narrow)); -+ _M_narrow_ok = 0; -+ } -+ -+ ctype<char>::ctype(const mask* __table, bool __del, size_t __refs) -+ : facet(__refs), _M_del(__table != 0 && __del), -+ _M_toupper(NULL), _M_tolower(NULL), -+ _M_table(__table ? __table : classic_table()) -+ { -+ memset(_M_widen, 0, sizeof(_M_widen)); -+ _M_widen_ok = 0; -+ memset(_M_narrow, 0, sizeof(_M_narrow)); -+ _M_narrow_ok = 0; -+ } -+ -+ char -+ ctype<char>::do_toupper(char __c) const -+ { return ::toupper((int) __c); } -+ -+ const char* -+ ctype<char>::do_toupper(char* __low, const char* __high) const -+ { -+ while (__low < __high) -+ { -+ *__low = ::toupper((int) *__low); -+ ++__low; -+ } -+ return __high; -+ } -+ -+ char -+ ctype<char>::do_tolower(char __c) const -+ { return ::tolower((int) __c); } -+ -+ const char* -+ ctype<char>::do_tolower(char* __low, const char* __high) const -+ { -+ while (__low < __high) -+ { -+ *__low = ::tolower((int) *__low); -+ ++__low; -+ } -+ return __high; -+ } ---- /dev/null -+++ libstdc++-v3/config/os/bsd/dragonfly/os_defines.h -@@ -0,0 +1,45 @@ -+// Specific definitions for BSD -*- C++ -*- -+ -+// Copyright (C) 2000, 2009, 2010 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library 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, or (at your option) -+// any later version. -+ -+// 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. See the -+// GNU General Public License for more details. -+ -+// Under Section 7 of GPL version 3, you are granted additional -+// permissions described in the GCC Runtime Library Exception, version -+// 3.1, as published by the Free Software Foundation. -+ -+// You should have received a copy of the GNU General Public License and -+// a copy of the GCC Runtime Library Exception along with this program; -+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -+// <http://www.gnu.org/licenses/>. -+ -+/** @file bits/os_defines.h -+ * This is an internal header file, included by other library headers. -+ * Do not attempt to use it directly. @headername{iosfwd} -+ */ -+ -+#ifndef _GLIBCXX_OS_DEFINES -+#define _GLIBCXX_OS_DEFINES 1 -+ -+// System-specific #define, typedefs, corrections, etc, go here. This -+// file will come before all others. -+ -+/* FreeBSD approach, likely a mistake for DragonFly. -+#define _GLIBCXX_USE_C99_CHECK 1 -+#define _GLIBCXX_USE_C99_DYNAMIC (!(__ISO_C_VISIBLE >= 1999)) -+#define _GLIBCXX_USE_C99_LONG_LONG_CHECK 1 -+#define _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC (_GLIBCXX_USE_C99_DYNAMIC || !defined __LONG_LONG_SUPPORTED) -+#define _GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_CHECK 1 -+#define _GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC defined _XOPEN_SOURCE -+*/ -+ -+#endif diff --git a/lang/gnat-aux/files/diff-cxx-testsuite b/lang/gnat-aux/files/diff-cxx-testsuite deleted file mode 100644 index 16f2953280d9..000000000000 --- a/lang/gnat-aux/files/diff-cxx-testsuite +++ /dev/null @@ -1,4547 +0,0 @@ ---- gcc/testsuite/g++.dg/cdce3.C.orig -+++ gcc/testsuite/g++.dg/cdce3.C -@@ -1,4 +1,4 @@ --/* { dg-do run } */ -+/* { dg-do run { target { ! "*-*-freebsd* *-*-dragonfly* *-*-netbsd*" } } } */ - /* { dg-require-effective-target c99_runtime } */ - /* { dg-skip-if "exp2* missing despite C99 runtime" { alpha*-dec-osf5* } } */ - /* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -DGNU_EXTENSION -DLARGE_LONG_DOUBLE -lm" { target { pow10 && large_long_double } } } */ ---- gcc/testsuite/g++.dg/uninit-pred-3_b.C.orig -+++ gcc/testsuite/g++.dg/uninit-pred-3_b.C -@@ -65,7 +65,7 @@ - - void P (int64 t) - { -- int cc; /* { dg-excess-errors "note: 'cc' was declared here" } */ -+ int cc; - if (!GetC (&cc)) - return; - ---- gcc/testsuite/gcc.dg/builtins-config.h.orig -+++ gcc/testsuite/gcc.dg/builtins-config.h -@@ -13,8 +13,14 @@ - /* PA HP-UX doesn't have the entire C99 runtime. */ - #elif defined(__AVR__) - /* AVR doesn't have the entire C99 runtime. */ --#elif defined(__FreeBSD__) && (__FreeBSD__ < 9) --/* FreeBSD up to version 8 lacks support for cexp and friends. */ -+#elif defined(__FreeBSD__) && (__FreeBSD__ < 10) -+/* FreeBSD up to version 9 lacks support for cexp and friends. */ -+#elif defined(__DragonFly__) -+/* As of DragonFly 2.13, Full C99 support is not available. -+ It has the same libm functionality as FreeBSD, which is missing -+ several long-double functions. */ -+#elif defined(__NetBSD__) -+/* As of NetBSD 5.99, libm is nowhere close to supporting C99 */ - #elif defined(__netware__) - /* NetWare doesn't have the entire C99 runtime. */ - #elif defined(__vxworks) ---- libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++.cc.orig -+++ libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++.cc -@@ -1,5 +1,5 @@ - // FreeBSD wants warning clean system headers: --// { dg-options "-Wall -Wsystem-headers" { target *-*-freebsd* } } -+// { dg-options "-Wall -Wsystem-headers" { target *-*-freebsd* *-*-dragonfly* } } - // { dg-do compile } - // 1999-05-12 bkoz - ---- libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++_multiple_inclusion.cc.orig -+++ libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++_multiple_inclusion.cc -@@ -1,5 +1,5 @@ - // FreeBSD wants warning clean system headers: --// { dg-options "-Wall -Wsystem-headers" { target *-*-freebsd* } } -+// { dg-options "-Wall -Wsystem-headers" { target *-*-freebsd* *-*-dragonfly* } } - // { dg-do compile } - // 1999-05-12 bkoz - ---- libstdc++-v3/testsuite/17_intro/headers/c++200x/stdc++.cc.orig -+++ libstdc++-v3/testsuite/17_intro/headers/c++200x/stdc++.cc -@@ -1,5 +1,5 @@ - // FreeBSD wants warning clean system headers: --// { dg-options "-Wall -Wsystem-headers" { target *-*-freebsd* } } -+// { dg-options "-Wall -Wsystem-headers" { target *-*-freebsd* *-*-dragonfly* } } - // { dg-options "-std=gnu++0x" } - // { dg-do compile } - ---- libstdc++-v3/testsuite/17_intro/headers/c++200x/stdc++_multiple_inclusion.cc.orig -+++ libstdc++-v3/testsuite/17_intro/headers/c++200x/stdc++_multiple_inclusion.cc -@@ -1,5 +1,5 @@ - // FreeBSD wants warning clean system headers: --// { dg-options "-Wall -Wsystem-headers" { target *-*-freebsd* } } -+// { dg-options "-Wall -Wsystem-headers" { target *-*-freebsd* *-*-dragonfly* } } - // { dg-options "-std=gnu++0x" } - // { dg-do compile } - ---- libstdc++-v3/testsuite/18_support/pthread_guard.cc.orig -+++ libstdc++-v3/testsuite/18_support/pthread_guard.cc -@@ -16,8 +16,8 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* } } --// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-darwin* alpha*-*-osf* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* } } -+// { dg-options "-pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-darwin* alpha*-*-osf* } } - - #include <cstdlib> - #include <pthread.h> ---- libstdc++-v3/testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc.orig -+++ libstdc++-v3/testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc -@@ -17,8 +17,8 @@ - - // 20.6.6.2 Template class shared_ptr [util.smartptr.shared] - --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options "-pthread -std=gnu++0x" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options "-pthread -std=gnu++0x" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options "-pthreads -std=gnu++0x" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - ---- libstdc++-v3/testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc.orig -+++ libstdc++-v3/testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc -@@ -17,8 +17,8 @@ - - // 20.6.6.2 Template class shared_ptr [util.smartptr.shared] - --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - ---- libstdc++-v3/testsuite/21_strings/basic_string/pthread18185.cc.orig -+++ libstdc++-v3/testsuite/21_strings/basic_string/pthread18185.cc -@@ -16,8 +16,8 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options "-pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options "-pthreads" { target *-*-solaris* } } - - #include <ext/new_allocator.h> ---- libstdc++-v3/testsuite/21_strings/basic_string/pthread4.cc.orig -+++ libstdc++-v3/testsuite/21_strings/basic_string/pthread4.cc -@@ -20,8 +20,8 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options "-pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options "-pthreads" { target *-*-solaris* } } - - #include <string> ---- libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread-1.cc.orig -+++ libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread-1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options "-pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options "-pthreads" { target *-*-solaris* } } - // { dg-require-namedlocale "en_US" } - // { dg-require-namedlocale "fr_FR" } ---- libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread-2.cc.orig -+++ libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread-2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options "-pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options "-pthreads" { target *-*-solaris* } } - // { dg-require-namedlocale "en_US" } - // { dg-require-namedlocale "fr_FR" } ---- libstdc++-v3/testsuite/23_containers/list/pthread1.cc.orig -+++ libstdc++-v3/testsuite/23_containers/list/pthread1.cc -@@ -18,8 +18,8 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options "-pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options "-pthreads" { target *-*-solaris* } } - - // This multi-threading C++/STL/POSIX code adheres to rules outlined here: ---- libstdc++-v3/testsuite/23_containers/list/pthread5.cc.orig -+++ libstdc++-v3/testsuite/23_containers/list/pthread5.cc -@@ -20,8 +20,8 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options "-pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options "-pthreads" { target *-*-solaris* } } - - #include <vector> ---- libstdc++-v3/testsuite/23_containers/map/pthread6.cc.orig -+++ libstdc++-v3/testsuite/23_containers/map/pthread6.cc -@@ -19,8 +19,8 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options "-pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options "-pthreads" { target *-*-solaris* } } - - #include <string> ---- libstdc++-v3/testsuite/23_containers/vector/debug/multithreaded_swap.cc.orig -+++ libstdc++-v3/testsuite/23_containers/vector/debug/multithreaded_swap.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math_dynamic.cc.orig -+++ libstdc++-v3/testsuite/26_numerics/headers/cmath/c_math_dynamic.cc -@@ -19,7 +19,7 @@ - - - // { dg-do link } --// { dg-options "-D_XOPEN_SOURCE" { target *-*-freebsd* } } -+// { dg-options "-D_XOPEN_SOURCE" { target *-*-freebsd* *-*-dragonfly* } } - - #include <cmath> - ---- libstdc++-v3/testsuite/27_io/basic_ofstream/pthread2.cc.orig -+++ libstdc++-v3/testsuite/27_io/basic_ofstream/pthread2.cc -@@ -19,8 +19,8 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options "-pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options "-pthreads" { target *-*-solaris* } } - - #include <fstream> ---- libstdc++-v3/testsuite/27_io/basic_ostringstream/pthread3.cc.orig -+++ libstdc++-v3/testsuite/27_io/basic_ostringstream/pthread3.cc -@@ -19,8 +19,8 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options "-pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options "-pthreads" { target *-*-solaris* } } - - #include <sstream> ---- libstdc++-v3/testsuite/30_threads/async/42819.cc.orig -+++ libstdc++-v3/testsuite/30_threads/async/42819.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/async/any.cc.orig -+++ libstdc++-v3/testsuite/30_threads/async/any.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/async/async.cc.orig -+++ libstdc++-v3/testsuite/30_threads/async/async.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/async/sync.cc.orig -+++ libstdc++-v3/testsuite/30_threads/async/sync.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/call_once/39909.cc.orig -+++ libstdc++-v3/testsuite/30_threads/call_once/39909.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/call_once/call_once1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/call_once/call_once1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/condition_variable/cons/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/condition_variable/cons/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/condition_variable/members/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/condition_variable/members/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/condition_variable/members/2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/condition_variable/members/2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/condition_variable/native_handle/typesizes.cc.orig -+++ libstdc++-v3/testsuite/30_threads/condition_variable/native_handle/typesizes.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/condition_variable_any/members/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/condition_variable_any/members/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/condition_variable_any/members/2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/condition_variable_any/members/2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/future/cons/move.cc.orig -+++ libstdc++-v3/testsuite/30_threads/future/cons/move.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/future/members/45133.cc.orig -+++ libstdc++-v3/testsuite/30_threads/future/members/45133.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/future/members/get.cc.orig -+++ libstdc++-v3/testsuite/30_threads/future/members/get.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/future/members/get2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/future/members/get2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/future/members/valid.cc.orig -+++ libstdc++-v3/testsuite/30_threads/future/members/valid.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/future/members/wait.cc.orig -+++ libstdc++-v3/testsuite/30_threads/future/members/wait.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/future/members/wait_for.cc.orig -+++ libstdc++-v3/testsuite/30_threads/future/members/wait_for.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/future/members/wait_until.cc.orig -+++ libstdc++-v3/testsuite/30_threads/future/members/wait_until.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/lock/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/lock/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/lock/2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/lock/2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/lock/3.cc.orig -+++ libstdc++-v3/testsuite/30_threads/lock/3.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/lock/4.cc.orig -+++ libstdc++-v3/testsuite/30_threads/lock/4.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/mutex/cons/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/mutex/cons/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/mutex/dest/destructor_locked.cc.orig -+++ libstdc++-v3/testsuite/30_threads/mutex/dest/destructor_locked.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/mutex/lock/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/mutex/lock/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/mutex/native_handle/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/mutex/native_handle/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/mutex/native_handle/typesizes.cc.orig -+++ libstdc++-v3/testsuite/30_threads/mutex/native_handle/typesizes.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/mutex/try_lock/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/mutex/try_lock/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/mutex/try_lock/2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/mutex/try_lock/2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/mutex/unlock/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/mutex/unlock/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/packaged_task/cons/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/packaged_task/cons/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/packaged_task/cons/2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/packaged_task/cons/2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc.cc.orig -+++ libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/packaged_task/cons/move.cc.orig -+++ libstdc++-v3/testsuite/30_threads/packaged_task/cons/move.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/packaged_task/cons/move_assign.cc.orig -+++ libstdc++-v3/testsuite/30_threads/packaged_task/cons/move_assign.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future.cc.orig -+++ libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke.cc.orig -+++ libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke3.cc.orig -+++ libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke3.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke4.cc.orig -+++ libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke4.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke5.cc.orig -+++ libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke5.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/packaged_task/members/reset.cc.orig -+++ libstdc++-v3/testsuite/30_threads/packaged_task/members/reset.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/packaged_task/members/reset2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/packaged_task/members/reset2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/packaged_task/members/swap.cc.orig -+++ libstdc++-v3/testsuite/30_threads/packaged_task/members/swap.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/packaged_task/members/valid.cc.orig -+++ libstdc++-v3/testsuite/30_threads/packaged_task/members/valid.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/promise/cons/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/promise/cons/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/promise/cons/alloc.cc.orig -+++ libstdc++-v3/testsuite/30_threads/promise/cons/alloc.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/promise/cons/move.cc.orig -+++ libstdc++-v3/testsuite/30_threads/promise/cons/move.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/promise/cons/move_assign.cc.orig -+++ libstdc++-v3/testsuite/30_threads/promise/cons/move_assign.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/promise/members/get_future.cc.orig -+++ libstdc++-v3/testsuite/30_threads/promise/members/get_future.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/promise/members/get_future2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/promise/members/get_future2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc.orig -+++ libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/promise/members/set_exception2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/promise/members/set_exception2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/promise/members/set_value.cc.orig -+++ libstdc++-v3/testsuite/30_threads/promise/members/set_value.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/promise/members/set_value3.cc.orig -+++ libstdc++-v3/testsuite/30_threads/promise/members/set_value3.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/promise/members/swap.cc.orig -+++ libstdc++-v3/testsuite/30_threads/promise/members/swap.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/recursive_mutex/cons/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/recursive_mutex/cons/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc.orig -+++ libstdc++-v3/testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/recursive_mutex/lock/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/recursive_mutex/lock/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc.orig -+++ libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/recursive_mutex/unlock/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/recursive_mutex/unlock/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/cons/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/cons/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc.orig -+++ libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc.orig -+++ libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options "-std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options "-std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options "-std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options "-std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc.orig -+++ libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/unlock/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/unlock/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/shared_future/cons/move.cc.orig -+++ libstdc++-v3/testsuite/30_threads/shared_future/cons/move.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/shared_future/members/45133.cc.orig -+++ libstdc++-v3/testsuite/30_threads/shared_future/members/45133.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/shared_future/members/get.cc.orig -+++ libstdc++-v3/testsuite/30_threads/shared_future/members/get.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/shared_future/members/get2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/shared_future/members/get2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/shared_future/members/valid.cc.orig -+++ libstdc++-v3/testsuite/30_threads/shared_future/members/valid.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/shared_future/members/wait.cc.orig -+++ libstdc++-v3/testsuite/30_threads/shared_future/members/wait.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/shared_future/members/wait_for.cc.orig -+++ libstdc++-v3/testsuite/30_threads/shared_future/members/wait_for.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/shared_future/members/wait_until.cc.orig -+++ libstdc++-v3/testsuite/30_threads/shared_future/members/wait_until.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/this_thread/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/this_thread/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/this_thread/2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/this_thread/2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/this_thread/3.cc.orig -+++ libstdc++-v3/testsuite/30_threads/this_thread/3.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/this_thread/4.cc.orig -+++ libstdc++-v3/testsuite/30_threads/this_thread/4.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/thread/cons/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/thread/cons/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/thread/cons/2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/thread/cons/2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/thread/cons/3.cc.orig -+++ libstdc++-v3/testsuite/30_threads/thread/cons/3.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/thread/cons/4.cc.orig -+++ libstdc++-v3/testsuite/30_threads/thread/cons/4.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/thread/cons/5.cc.orig -+++ libstdc++-v3/testsuite/30_threads/thread/cons/5.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/thread/cons/6.cc.orig -+++ libstdc++-v3/testsuite/30_threads/thread/cons/6.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/thread/cons/7.cc.orig -+++ libstdc++-v3/testsuite/30_threads/thread/cons/7.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/thread/cons/8.cc.orig -+++ libstdc++-v3/testsuite/30_threads/thread/cons/8.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/thread/cons/9.cc.orig -+++ libstdc++-v3/testsuite/30_threads/thread/cons/9.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/thread/cons/moveable.cc.orig -+++ libstdc++-v3/testsuite/30_threads/thread/cons/moveable.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/thread/members/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/thread/members/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/thread/members/2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/thread/members/2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/thread/members/3.cc.orig -+++ libstdc++-v3/testsuite/30_threads/thread/members/3.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/thread/members/4.cc.orig -+++ libstdc++-v3/testsuite/30_threads/thread/members/4.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/thread/members/5.cc.orig -+++ libstdc++-v3/testsuite/30_threads/thread/members/5.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/thread/members/hardware_concurrency.cc.orig -+++ libstdc++-v3/testsuite/30_threads/thread/members/hardware_concurrency.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/thread/swap/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/thread/swap/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/timed_mutex/cons/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/timed_mutex/cons/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/timed_mutex/dest/destructor_locked.cc.orig -+++ libstdc++-v3/testsuite/30_threads/timed_mutex/dest/destructor_locked.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/timed_mutex/lock/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/timed_mutex/lock/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/typesizes.cc.orig -+++ libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/typesizes.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/3.cc.orig -+++ libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/3.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/timed_mutex/unlock/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/timed_mutex/unlock/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/try_lock/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/try_lock/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/try_lock/2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/try_lock/2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/try_lock/3.cc.orig -+++ libstdc++-v3/testsuite/30_threads/try_lock/3.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/try_lock/4.cc.orig -+++ libstdc++-v3/testsuite/30_threads/try_lock/4.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/unique_lock/cons/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/unique_lock/cons/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/unique_lock/cons/2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/unique_lock/cons/2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/unique_lock/cons/3.cc.orig -+++ libstdc++-v3/testsuite/30_threads/unique_lock/cons/3.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/unique_lock/cons/4.cc.orig -+++ libstdc++-v3/testsuite/30_threads/unique_lock/cons/4.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/unique_lock/cons/5.cc.orig -+++ libstdc++-v3/testsuite/30_threads/unique_lock/cons/5.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/unique_lock/cons/6.cc.orig -+++ libstdc++-v3/testsuite/30_threads/unique_lock/cons/6.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/unique_lock/locking/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/unique_lock/locking/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/unique_lock/locking/2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/unique_lock/locking/2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/unique_lock/locking/3.cc.orig -+++ libstdc++-v3/testsuite/30_threads/unique_lock/locking/3.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/unique_lock/locking/4.cc.orig -+++ libstdc++-v3/testsuite/30_threads/unique_lock/locking/4.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/unique_lock/modifiers/1.cc.orig -+++ libstdc++-v3/testsuite/30_threads/unique_lock/modifiers/1.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/30_threads/unique_lock/modifiers/2.cc.orig -+++ libstdc++-v3/testsuite/30_threads/unique_lock/modifiers/2.cc -@@ -1,5 +1,5 @@ --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } - // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } - // { dg-require-cstdint "" } ---- libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc.orig -+++ libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc -@@ -18,8 +18,8 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options "-pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options "-pthreads" { target *-*-solaris* } } - - #include <ext/rope> ---- libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc.orig -+++ libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc -@@ -17,8 +17,8 @@ - - // TR1 2.2.2 Template class shared_ptr [tr.util.smartptr.shared] - --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options "-pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options "-pthreads" { target *-*-solaris* } } - - #include <tr1/memory> ---- libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc.orig -+++ libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc -@@ -17,8 +17,8 @@ - - // TR1 2.2.2 Template class shared_ptr [tr.util.smartptr.shared] - --// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } --// { dg-options "-pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } } -+// { dg-options "-pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } } - // { dg-options "-pthreads" { target *-*-solaris* } } - - #include <tr1/memory> ---- libstdc++-v3/testsuite/lib/libstdc++.exp.orig -+++ libstdc++-v3/testsuite/lib/libstdc++.exp -@@ -865,17 +865,18 @@ - set f [open $src "w"] - puts $f "#include <locale>" - puts $f "#include <cstdio>" -- puts $f "using namespace std;" -+ puts $f "using namespace std;" - puts $f "int main (int argc, char** argv)" - puts $f "{" -+ puts $f " const char* mlx = *(argv + 1);" - puts $f " try" - puts $f " {" -- puts $f " locale(*(argv + 1));" -+ puts $f " locale((char*)(mlx));" - puts $f " return 0;" - puts $f " }" - puts $f " catch(...)" - puts $f " {" -- puts $f " printf(\"locale '%s' not supported\\n\", *(argv + 1));" -+ puts $f " printf(\"locale '%s' not supported\\n\", mlx);" - puts $f " return 1;" - puts $f " }" - puts $f "}" ---- libstdc++-v3/testsuite/23_containers/deque/debug/assign4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/deque/debug/assign4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-do run { xfail *-*-* } } - - #include <debug/deque> ---- libstdc++-v3/testsuite/23_containers/deque/debug/construct4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/deque/debug/construct4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-do run { xfail *-*-* } } - - #include <debug/deque> ---- libstdc++-v3/testsuite/23_containers/deque/debug/insert4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/deque/debug/insert4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-do run { xfail *-*-* } } - - #include <debug/deque> ---- libstdc++-v3/testsuite/23_containers/list/debug/assign4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/list/debug/assign4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-do run { xfail *-*-* } } - - #include <debug/list> ---- libstdc++-v3/testsuite/23_containers/list/debug/construct4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/list/debug/construct4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-do run { xfail *-*-* } } - - #include <debug/list> ---- libstdc++-v3/testsuite/23_containers/list/debug/insert4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/list/debug/insert4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-do run { xfail *-*-* } } - - #include <debug/list> ---- libstdc++-v3/testsuite/23_containers/map/debug/construct4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/map/debug/construct4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-do run { xfail *-*-* } } - - #include <debug/map> ---- libstdc++-v3/testsuite/23_containers/map/debug/insert4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/map/debug/insert4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-do run { xfail *-*-* } } - - #include <debug/map> ---- libstdc++-v3/testsuite/23_containers/multimap/debug/construct4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/multimap/debug/construct4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-do run { xfail *-*-* } } - - #include <debug/map> ---- libstdc++-v3/testsuite/23_containers/multimap/debug/insert4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/multimap/debug/insert4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-do run { xfail *-*-* } } - - #include <debug/map> ---- libstdc++-v3/testsuite/23_containers/multiset/debug/construct4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/multiset/debug/construct4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-do run { xfail *-*-* } } - - #include <debug/set> ---- libstdc++-v3/testsuite/23_containers/multiset/debug/insert4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/multiset/debug/insert4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-do run { xfail *-*-* } } - - #include <debug/set> ---- libstdc++-v3/testsuite/23_containers/set/debug/construct4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/set/debug/construct4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-do run { xfail *-*-* } } - - #include <debug/set> ---- libstdc++-v3/testsuite/23_containers/set/debug/insert4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/set/debug/insert4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-do run { xfail *-*-* } } - - #include <debug/set> ---- libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-options "-std=gnu++0x" } - // { dg-do run { xfail *-*-* } } - ---- libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-options "-std=gnu++0x" } - // { dg-do run { xfail *-*-* } } - ---- libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-options "-std=gnu++0x" } - // { dg-do run { xfail *-*-* } } - ---- libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-options "-std=gnu++0x" } - // { dg-do run { xfail *-*-* } } - ---- libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-options "-std=gnu++0x" } - // { dg-do run { xfail *-*-* } } - ---- libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-options "-std=gnu++0x" } - // { dg-do run { xfail *-*-* } } - ---- libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-options "-std=gnu++0x" } - // { dg-do run { xfail *-*-* } } - ---- libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-options "-std=gnu++0x" } - // { dg-do run { xfail *-*-* } } - ---- libstdc++-v3/testsuite/23_containers/vector/debug/assign4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/vector/debug/assign4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-do run { xfail *-*-* } } - - #include <debug/vector> ---- libstdc++-v3/testsuite/23_containers/vector/debug/construct4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/vector/debug/construct4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-do run { xfail *-*-* } } - - #include <debug/vector> ---- libstdc++-v3/testsuite/23_containers/vector/debug/insert4_neg.cc.orig -+++ libstdc++-v3/testsuite/23_containers/vector/debug/insert4_neg.cc -@@ -15,6 +15,7 @@ - // with this library; see the file COPYING3. If not see - // <http://www.gnu.org/licenses/>. - // -+// { dg-require-debug-mode "" } - // { dg-do run { xfail *-*-* } } - - #include <debug/vector> ---- libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/2.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/2.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_US.ISO-8859-1" } -+// { dg-require-namedlocale "en_US.ISO8859-1" } - - // 2003-02-06 Petur Runolfsson <peturr02@ru.is> - -@@ -27,14 +27,14 @@ - // Required instantiation - // codecvt<wchar_t, char, mbstate_t> - // --// Baseline test in ISO-8859-1 locale -+// Baseline test in ISO8859-1 locale - void test02() - { - using namespace std; - bool test __attribute__((unused)) = true; - typedef codecvt<wchar_t, char, mbstate_t> w_codecvt; - -- locale loc = locale("en_US.ISO-8859-1"); -+ locale loc = locale("en_US.ISO8859-1"); - locale::global(loc); - const w_codecvt* cvt = &use_facet<w_codecvt>(loc); - ---- libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/3.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/3.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_US.ISO-8859-15" } -+// { dg-require-namedlocale "en_US.ISO8859-15" } - - // 2003-02-06 Petur Runolfsson <peturr02@ru.is> - -@@ -27,14 +27,14 @@ - // Required instantiation - // codecvt<wchar_t, char, mbstate_t> - // --// Baseline test in ISO-8859-15 locale -+// Baseline test in ISO8859-15 locale - void test03() - { - using namespace std; - bool test __attribute__((unused)) = true; - typedef codecvt<wchar_t, char, mbstate_t> w_codecvt; - -- locale loc = locale("en_US.ISO-8859-15"); -+ locale loc = locale("en_US.ISO8859-15"); - locale::global(loc); - const w_codecvt* cvt = &use_facet<w_codecvt>(loc); - ---- libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/2.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/2.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_US.ISO-8859-1" } -+// { dg-require-namedlocale "en_US.ISO8859-1" } - - // 2003-02-06 Petur Runolfsson <peturr02@ru.is> - -@@ -27,19 +27,19 @@ - // Required instantiation - // codecvt<wchar_t, char, mbstate_t> - // --// Test do_encoding with ISO-8859-1 locale. -+// Test do_encoding with ISO8859-1 locale. - void test02() - { - using namespace std; - typedef codecvt<wchar_t, char, mbstate_t> w_codecvt; - bool test __attribute__((unused)) = true; - -- locale loc = locale("en_US.ISO-8859-1"); -+ locale loc = locale("en_US.ISO8859-1"); - locale::global(loc); - const w_codecvt* cvt = &use_facet<w_codecvt>(loc); - - int i = cvt->encoding(); -- VERIFY( i == 1 ); // ISO-8859-1 is a single-byte encoding -+ VERIFY( i == 1 ); // ISO8859-1 is a single-byte encoding - } - - int main () ---- libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/3.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/3.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_US.ISO-8859-15" } -+// { dg-require-namedlocale "en_US.ISO8859-15" } - - // 2003-02-06 Petur Runolfsson <peturr02@ru.is> - -@@ -27,19 +27,19 @@ - // Required instantiation - // codecvt<wchar_t, char, mbstate_t> - // --// Test do_encoding with ISO-8859-15 locale. -+// Test do_encoding with ISO8859-15 locale. - void test03() - { - using namespace std; - typedef codecvt<wchar_t, char, mbstate_t> w_codecvt; - bool test __attribute__((unused)) = true; - -- locale loc = locale("en_US.ISO-8859-15"); -+ locale loc = locale("en_US.ISO8859-15"); - locale::global(loc); - const w_codecvt* cvt = &use_facet<w_codecvt>(loc); - - int i = cvt->encoding(); -- VERIFY( i == 1 ); // ISO-8859-15 is a single-byte encoding -+ VERIFY( i == 1 ); // ISO8859-15 is a single-byte encoding - } - - int main () ---- libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/2.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/2.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_US.ISO-8859-1" } -+// { dg-require-namedlocale "en_US.ISO8859-1" } - - // 2003-02-06 Petur Runolfsson <peturr02@ru.is> - -@@ -41,7 +41,7 @@ - // Required instantiation - // codecvt<wchar_t, char, mbstate_t> - // --// Baseline test for ISO-8859-1. Converts entire charset. -+// Baseline test for ISO8859-1. Converts entire charset. - void test02() - { - using namespace std; -@@ -90,7 +90,7 @@ - wmemset(i_ref, 0xdeadbeef, size + 1); - int_type* ito_next; - -- locale loc = locale("en_US.ISO-8859-1"); -+ locale loc = locale("en_US.ISO8859-1"); - locale::global(loc); - const w_codecvt* cvt = &use_facet<w_codecvt>(loc); - ---- libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/3.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/3.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_US.ISO-8859-15" } -+// { dg-require-namedlocale "en_US.ISO8859-15" } - - // 2003-02-06 Petur Runolfsson <peturr02@ru.is> - -@@ -41,7 +41,7 @@ - // Required instantiation - // codecvt<wchar_t, char, mbstate_t> - // --// Baseline test for ISO-8859-15. Converts entire charset. -+// Baseline test for ISO8859-15. Converts entire charset. - void test03() - { - using namespace std; -@@ -104,7 +104,7 @@ - wmemset(i_ref, 0xdeadbeef, size + 1); - int_type* ito_next; - -- locale loc = locale("en_US.ISO-8859-15"); -+ locale loc = locale("en_US.ISO8859-15"); - locale::global(loc); - const w_codecvt* cvt = &use_facet<w_codecvt>(loc); - ---- libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/2.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/2.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_US.ISO-8859-1" } -+// { dg-require-namedlocale "en_US.ISO8859-1" } - - // 2003-02-06 Petur Runolfsson <peturr02@ru.is> - -@@ -63,7 +63,7 @@ - "\xff"; - int size = strlen(e_lit); - -- locale loc = locale("en_US.ISO-8859-1"); -+ locale loc = locale("en_US.ISO8859-1"); - locale::global(loc); - const w_codecvt* cvt = &use_facet<w_codecvt>(loc); - ---- libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/3.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/3.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_US.ISO-8859-15" } -+// { dg-require-namedlocale "en_US.ISO8859-15" } - - // 2003-02-06 Petur Runolfsson <peturr02@ru.is> - -@@ -63,7 +63,7 @@ - "\xff"; - int size = strlen(e_lit); - -- locale loc = locale("en_US.ISO-8859-15"); -+ locale loc = locale("en_US.ISO8859-15"); - locale::global(loc); - const w_codecvt* cvt = &use_facet<w_codecvt>(loc); - ---- libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/2.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/2.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_US.ISO-8859-1" } -+// { dg-require-namedlocale "en_US.ISO8859-1" } - - // 2003-02-06 Petur Runolfsson <peturr02@ru.is> - -@@ -32,12 +32,12 @@ - bool test __attribute__((unused)) = true; - typedef codecvt<wchar_t, char, mbstate_t> w_codecvt; - -- locale loc = locale("en_US.ISO-8859-1"); -+ locale loc = locale("en_US.ISO8859-1"); - locale::global(loc); - const w_codecvt* cvt = &use_facet<w_codecvt>(loc); - - int k = cvt->max_length(); -- VERIFY( k == 1 ); // ISO-8859-1 is a single-byte encoding -+ VERIFY( k == 1 ); // ISO8859-1 is a single-byte encoding - } - - int main () ---- libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/3.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/3.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_US.ISO-8859-15" } -+// { dg-require-namedlocale "en_US.ISO8859-15" } - - // 2003-02-06 Petur Runolfsson <peturr02@ru.is> - -@@ -32,12 +32,12 @@ - bool test __attribute__((unused)) = true; - typedef codecvt<wchar_t, char, mbstate_t> w_codecvt; - -- locale loc = locale("en_US.ISO-8859-15"); -+ locale loc = locale("en_US.ISO8859-15"); - locale::global(loc); - const w_codecvt* cvt = &use_facet<w_codecvt>(loc); - - int k = cvt->max_length(); -- VERIFY( k == 1 ); // ISO-8859-15 is a single-byte encoding -+ VERIFY( k == 1 ); // ISO8859-15 is a single-byte encoding - } - - int main () ---- libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/2.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/2.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_US.ISO-8859-1" } -+// { dg-require-namedlocale "en_US.ISO8859-1" } - - // 2003-02-06 Petur Runolfsson <peturr02@ru.is> - -@@ -88,7 +88,7 @@ - memset(e_ref, 0xf0, size + 1); - ext_type* eto_next; - -- locale loc = locale("en_US.ISO-8859-1"); -+ locale loc = locale("en_US.ISO8859-1"); - locale::global(loc); - const w_codecvt* cvt = &use_facet<w_codecvt>(loc); - ---- libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/3.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/3.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_US.ISO-8859-15" } -+// { dg-require-namedlocale "en_US.ISO8859-15" } - - // 2003-02-06 Petur Runolfsson <peturr02@ru.is> - -@@ -102,7 +102,7 @@ - memset(e_ref, 0xf0, size + 1); - ext_type* eto_next; - -- locale loc = locale("en_US.ISO-8859-15"); -+ locale loc = locale("en_US.ISO8859-15"); - locale::global(loc); - const w_codecvt* cvt = &use_facet<w_codecvt>(loc); - ---- libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/7.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/7.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_US.ISO-8859-1" } -+// { dg-require-namedlocale "en_US.ISO8859-1" } - - // 2003-02-06 Petur Runolfsson <peturr02@ru.is> - -@@ -60,7 +60,7 @@ - memset(e_ref, 0xf0, size + 1); - ext_type* eto_next; - -- locale loc = locale("en_US.ISO-8859-1"); -+ locale loc = locale("en_US.ISO8859-1"); - locale::global(loc); - const w_codecvt* cvt = &use_facet<w_codecvt>(loc); - ---- libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/2.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/2.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_US.ISO-8859-1" } -+// { dg-require-namedlocale "en_US.ISO8859-1" } - - // 2003-02-06 Petur Runolfsson <peturr02@ru.is> - -@@ -73,7 +73,7 @@ - memset(e_ref, 0xf0, size + 1); - ext_type* eto_next; - -- locale loc = locale("en_US.ISO-8859-1"); -+ locale loc = locale("en_US.ISO8859-1"); - locale::global(loc); - const w_codecvt* cvt = &use_facet<w_codecvt>(loc); - ---- libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/3.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/3.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_US.ISO-8859-15" } -+// { dg-require-namedlocale "en_US.ISO8859-15" } - - // 2003-02-06 Petur Runolfsson <peturr02@ru.is> - -@@ -87,7 +87,7 @@ - memset(e_ref, 0xf0, size + 1); - ext_type* eto_next; - -- locale loc = locale("en_US.ISO-8859-15"); -+ locale loc = locale("en_US.ISO8859-15"); - locale::global(loc); - const w_codecvt* cvt = &use_facet<w_codecvt>(loc); - ---- libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/2.cc.orig -+++ libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/2.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_US.ISO-8859-1" } -+// { dg-require-namedlocale "en_US.ISO8859-1" } - - // 2003-03-12 Petur Runolfsson <peturr02@ru.is> - -@@ -31,7 +31,7 @@ - using namespace std; - bool test __attribute__((unused)) = true; - -- locale loc = locale("en_US.ISO-8859-1"); -+ locale loc = locale("en_US.ISO8859-1"); - const ctype<wchar_t>& wct = use_facet<ctype<wchar_t> >(loc); - - char c = 0xff; ---- libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/9520.cc.orig -+++ libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/9520.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "de_DE.ISO-8859-15@euro" } -+// { dg-require-namedlocale "de_DE.ISO8859-15@euro" } - - // 2003-05-03 Petur Runolfsson <peturr02@ru.is> - -@@ -36,7 +36,7 @@ - putc(static_cast<unsigned char>(i), file); - fclose(file); - -- locale loc (locale("de_DE.ISO-8859-15@euro")); -+ locale loc (locale("de_DE.ISO8859-15@euro")); - wchar_t buf[1]; - wfilebuf fb; - fb.pubimbue(loc); ---- libstdc++-v3/testsuite/27_io/objects/wchar_t/9520.cc.orig -+++ libstdc++-v3/testsuite/27_io/objects/wchar_t/9520.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "de_DE.ISO-8859-15@euro" } -+// { dg-require-namedlocale "de_DE.ISO8859-15@euro" } - - // 2003-04-30 Petur Runolfsson <peturr02@ru.is> - -@@ -35,7 +35,7 @@ - putc(static_cast<unsigned char>(i), file); - fclose(file); - -- locale loc (locale("de_DE.ISO-8859-15@euro")); -+ locale loc (locale("de_DE.ISO8859-15@euro")); - locale::global(loc); // Set locale for stdin - - VERIFY( freopen(name, "r", stdin) ); ---- libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -32,6 +32,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test01); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/always_noconv/wchar_t/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -32,6 +32,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test01); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/codecvt/encoding/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/encoding/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -32,6 +32,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test01); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/encoding/wchar_t/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -32,6 +32,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test01); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/codecvt/in/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/in/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -32,6 +32,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test01); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/in/wchar_t/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -32,6 +32,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test01); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/codecvt/length/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/length/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -32,6 +32,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test01); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/length/wchar_t/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -32,6 +32,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test01); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/codecvt/max_length/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/max_length/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -32,6 +32,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test01); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/max_length/wchar_t/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -32,6 +32,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test01); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/codecvt/out/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/out/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -32,6 +32,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test01); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/out/wchar_t/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -32,6 +32,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test01); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/codecvt/unshift/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/unshift/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -32,6 +32,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test01); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/codecvt/unshift/wchar_t/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -32,6 +32,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test01); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/collate/compare/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/collate/compare/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - // { dg-require-namedlocale "fr_FR" } - // { dg-require-namedlocale "en_US" } - // { dg-require-namedlocale "de_DE" } -@@ -40,6 +40,6 @@ - func_callback two; - two.push_back(&test01); - two.push_back(&test02); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc -@@ -2,7 +2,7 @@ - // { dg-xfail-if "" { "*-*-hpux11.23" } { "*" } { "" } } */ - // { dg-options "-finput-charset=ISO8859-1" } - // { dg-require-iconv "ISO8859-1" } --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - // { dg-require-namedlocale "en_US" } - // { dg-require-namedlocale "fr_FR" } - // { dg-require-namedlocale "de_DE" } -@@ -44,6 +44,6 @@ - func_callback two; - two.push_back(&test01); - two.push_back(&test02); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/collate/hash/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/collate/hash/char/wrapped_locale.cc -@@ -1,7 +1,7 @@ - // { dg-require-namedlocale "en_US" } - // { dg-require-namedlocale "fr_FR" } - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -40,6 +40,6 @@ - func_callback two; - two.push_back(&test01); - two.push_back(&test02); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc -@@ -2,7 +2,7 @@ - // { dg-xfail-if "" { "*-*-hpux11.23" } { "*" } { "" } } */ - // { dg-options "-finput-charset=ISO8859-1" } - // { dg-require-iconv "ISO8859-1" } --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - // { dg-require-namedlocale "en_US" } - // { dg-require-namedlocale "fr_FR" } - // { dg-require-namedlocale "de_DE" } -@@ -44,6 +44,6 @@ - func_callback two; - two.push_back(&test01); - two.push_back(&test02); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/collate/transform/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/collate/transform/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - // { dg-require-namedlocale "en_US" } - // { dg-require-namedlocale "fr_FR" } - // { dg-require-namedlocale "de_DE" } -@@ -35,6 +35,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test02); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc -@@ -2,7 +2,7 @@ - // { dg-xfail-if "" { "*-*-hpux11.23" } { "*" } { "" } } */ - // { dg-options "-finput-charset=ISO8859-1" } - // { dg-require-iconv "ISO8859-1" } --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - // { dg-require-namedlocale "en_US" } - // { dg-require-namedlocale "fr_FR" } - // { dg-require-namedlocale "de_DE" } -@@ -39,6 +39,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test02); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/ctype/cons/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/ctype/cons/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -32,6 +32,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test01); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/ctype/is/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/ctype/is/char/wrapped_locale.cc -@@ -1,5 +1,5 @@ - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -43,6 +43,6 @@ - two.push_back(&test01); - two.push_back(&test02); - two.push_back(&test03); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/wrapped_locale.cc -@@ -1,5 +1,5 @@ - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -38,6 +38,6 @@ - func_callback two; - two.push_back(&test01); - two.push_back(&test02); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/ctype/narrow/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/ctype/narrow/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -37,6 +37,6 @@ - func_callback two; - two.push_back(&test01); - two.push_back(&test02); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -37,6 +37,6 @@ - func_callback two; - two.push_back(&test01); - two.push_back(&test02); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/ctype/scan/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/ctype/scan/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -32,6 +32,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test01); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/ctype/scan/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/ctype/scan/wchar_t/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -32,6 +32,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test01); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/ctype/to/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/ctype/to/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -32,6 +32,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test01); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/ctype/to/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/ctype/to/wchar_t/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -32,6 +32,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test01); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/ctype/widen/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/ctype/widen/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -32,6 +32,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test01); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -32,6 +32,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test01); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/locale/cons/40184.cc.orig -+++ libstdc++-v3/testsuite/22_locale/locale/cons/40184.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // Copyright (C) 2009 Free Software Foundation - // -@@ -29,7 +29,7 @@ - using namespace std; - bool test __attribute__((unused)) = true; - -- locale locf(locale("C"), "ja_JP.eucjp", locale::monetary); -+ locale locf(locale("C"), "ja_JP.eucJP", locale::monetary); - - const moneypunct<wchar_t, false>& mpf = - use_facet<moneypunct<wchar_t, false> >(locf); -@@ -40,7 +40,7 @@ - - VERIFY( mpf.curr_symbol() == mpf_copy.curr_symbol() ); - -- locale loct(locale("C"), "ja_JP.eucjp", locale::monetary); -+ locale loct(locale("C"), "ja_JP.eucJP", locale::monetary); - - const moneypunct<wchar_t, true>& mpt = - use_facet<moneypunct<wchar_t, true> >(loct); ---- libstdc++-v3/testsuite/22_locale/messages/members/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/messages/members/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - // { dg-require-namedlocale "de_DE" } - // { dg-require-namedlocale "fr_FR" } - // { dg-require-namedlocale "en_US" } -@@ -45,6 +45,6 @@ - two.push_back(&test01); - two.push_back(&test02); - two.push_back(&test03); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/money_get/get/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/money_get/get/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - // { dg-require-namedlocale "de_DE@euro" } - // { dg-require-namedlocale "en_HK" } - -@@ -69,6 +69,6 @@ - two.push_back(&test06); - two.push_back(&test07); - two.push_back(&test08); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - // { dg-require-namedlocale "de_DE@euro" } - // { dg-require-namedlocale "en_HK" } - -@@ -69,6 +69,6 @@ - two.push_back(&test06); - two.push_back(&test07); - two.push_back(&test08); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/money_put/put/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/money_put/put/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - // { dg-require-namedlocale "de_DE@euro" } - // { dg-require-namedlocale "en_HK" } - -@@ -59,6 +59,6 @@ - two.push_back(&test04); - two.push_back(&test05); - two.push_back(&test06); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - // { dg-require-namedlocale "de_DE@euro" } - // { dg-require-namedlocale "en_HK" } - -@@ -59,6 +59,6 @@ - two.push_back(&test04); - two.push_back(&test05); - two.push_back(&test06); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/moneypunct/members/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/moneypunct/members/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - // { dg-require-namedlocale "de_DE" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> -@@ -38,6 +38,6 @@ - func_callback two; - two.push_back(&test01); - two.push_back(&test02); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/moneypunct/members/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/moneypunct/members/wchar_t/wrapped_locale.cc -@@ -1,5 +1,5 @@ - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -38,6 +38,6 @@ - func_callback two; - two.push_back(&test01); - two.push_back(&test02); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/num_get/get/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/num_get/get/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - // { dg-require-namedlocale "de_DE" } - // { dg-require-namedlocale "en_HK" } - -@@ -59,6 +59,6 @@ - two.push_back(&test04); - two.push_back(&test05); - two.push_back(&test06); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - // { dg-require-namedlocale "de_DE" } - // { dg-require-namedlocale "en_HK" } - -@@ -59,6 +59,6 @@ - two.push_back(&test04); - two.push_back(&test05); - two.push_back(&test06); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/num_put/put/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/num_put/put/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - // { dg-require-namedlocale "de_DE" } - // { dg-require-namedlocale "en_HK" } - // { dg-require-namedlocale "es_ES" } -@@ -55,6 +55,6 @@ - two.push_back(&test03); - two.push_back(&test04); - two.push_back(&test05); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - // { dg-require-namedlocale "de_DE" } - // { dg-require-namedlocale "en_HK" } - -@@ -54,6 +54,6 @@ - two.push_back(&test03); - two.push_back(&test04); - two.push_back(&test05); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/numpunct/members/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/numpunct/members/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - // { dg-require-namedlocale "de_DE" } - // { dg-require-namedlocale "en_US" } - // { dg-require-namedlocale "is_IS" } -@@ -40,6 +40,6 @@ - func_callback two; - two.push_back(&test01); - two.push_back(&test02); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/numpunct/members/wchar_t/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - // { dg-require-namedlocale "de_DE" } - // { dg-require-namedlocale "en_US" } - // { dg-require-namedlocale "is_IS" } -@@ -40,6 +40,6 @@ - func_callback two; - two.push_back(&test01); - two.push_back(&test02); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/time_get/date_order/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/date_order/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -32,6 +32,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test01); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/time_get/date_order/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/date_order/wchar_t/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -32,6 +32,6 @@ - using namespace __gnu_test; - func_callback two; - two.push_back(&test01); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/time_get/get_date/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_date/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - // { dg-require-namedlocale "de_DE" } - // { dg-require-namedlocale "en_HK" } - -@@ -44,6 +44,6 @@ - two.push_back(&test01); - two.push_back(&test02); - two.push_back(&test03); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - // { dg-require-namedlocale "de_DE" } - // { dg-require-namedlocale "en_HK" } - -@@ -44,6 +44,6 @@ - two.push_back(&test01); - two.push_back(&test02); - two.push_back(&test03); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - // { dg-require-namedlocale "de_DE" } - // { dg-require-namedlocale "en_HK" } - -@@ -44,6 +44,6 @@ - two.push_back(&test01); - two.push_back(&test02); - two.push_back(&test03); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - // { dg-require-namedlocale "de_DE" } - // { dg-require-namedlocale "en_HK" } - -@@ -44,6 +44,6 @@ - two.push_back(&test01); - two.push_back(&test02); - two.push_back(&test03); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/time_get/get_time/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_time/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - // { dg-require-namedlocale "de_DE" } - // { dg-require-namedlocale "en_HK" } - -@@ -44,6 +44,6 @@ - two.push_back(&test01); - two.push_back(&test02); - two.push_back(&test03); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - // { dg-require-namedlocale "de_DE" } - // { dg-require-namedlocale "en_HK" } - -@@ -44,6 +44,6 @@ - two.push_back(&test01); - two.push_back(&test02); - two.push_back(&test03); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - // { dg-require-namedlocale "de_DE" } - // { dg-require-namedlocale "en_HK" } - -@@ -44,6 +44,6 @@ - two.push_back(&test01); - two.push_back(&test02); - two.push_back(&test03); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_locale.cc -@@ -1,6 +1,6 @@ - // { dg-require-namedlocale "en_HK" } - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -44,6 +44,6 @@ - two.push_back(&test01); - two.push_back(&test02); - two.push_back(&test03); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/time_get/get_year/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_year/char/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -37,6 +37,6 @@ - func_callback two; - two.push_back(&test01); - two.push_back(&test03); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_year/wchar_t/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -37,6 +37,6 @@ - func_callback two; - two.push_back(&test01); - two.push_back(&test03); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/time_put/put/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_put/put/char/wrapped_locale.cc -@@ -80,6 +80,6 @@ - two.push_back(&test08); - two.push_back(&test09); - two.push_back(&test10); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/wrapped_locale.cc -@@ -2,7 +2,7 @@ - // { dg-require-namedlocale "en_HK" } - // { dg-require-namedlocale "es_ES" } - // { dg-require-namedlocale "fr_FR@euro" } --// { dg-require-namedlocale "ja_JP.eucjp" } -+// { dg-require-namedlocale "ja_JP.eucJP" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - -@@ -81,6 +81,6 @@ - two.push_back(&test08); - two.push_back(&test09); - two.push_back(&test10); -- run_tests_wrapped_locale("ja_JP.eucjp", two); -+ run_tests_wrapped_locale("ja_JP.eucJP", two); - return 0; - } ---- libstdc++-v3/testsuite/22_locale/money_get/get/char/16.cc.orig -+++ libstdc++-v3/testsuite/22_locale/money_get/get/char/16.cc -@@ -1,5 +1,5 @@ - // { dg-require-namedlocale "de_DE@euro" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2004-03-02 Paolo Carlini <pcarlini@suse.de> - -@@ -37,7 +37,7 @@ - // basic construction - locale loc_c = locale::classic(); - locale loc_de = locale("de_DE@euro"); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - VERIFY( loc_hk != loc_de ); - VERIFY( loc_c != loc_hk ); - ---- libstdc++-v3/testsuite/22_locale/money_get/get/char/18.cc.orig -+++ libstdc++-v3/testsuite/22_locale/money_get/get/char/18.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2004-03-15 Paolo Carlini <pcarlini@suse.de> - -@@ -36,7 +36,7 @@ - - // basic construction - locale loc_c = locale::classic(); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - VERIFY( loc_c != loc_hk ); - - iterator_type end, end01, end02; ---- libstdc++-v3/testsuite/22_locale/money_get/get/char/2.cc.orig -+++ libstdc++-v3/testsuite/22_locale/money_get/get/char/2.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-09-12 Benjamin Kosnik <bkoz@redhat.com> - -@@ -35,7 +35,7 @@ - - // basic construction - locale loc_c = locale::classic(); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - VERIFY( loc_c != loc_hk ); - - // total EPA budget FY 2002 -@@ -80,7 +80,7 @@ - VERIFY( result11 == digits4 ); - VERIFY( err11 == ios_base::eofbit ); - -- // for the "en_HK" locale the parsing of the very same input streams must -+ // for the "zh_HK" locale the parsing of the very same input streams must - // be successful without showbase too, since the symbol field appears in - // the first positions in the format and the symbol, when present, must be - // consumed. ---- libstdc++-v3/testsuite/22_locale/money_get/get/char/4.cc.orig -+++ libstdc++-v3/testsuite/22_locale/money_get/get/char/4.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-09-12 Benjamin Kosnik <bkoz@redhat.com> - -@@ -35,7 +35,7 @@ - - // basic construction - locale loc_c = locale::classic(); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - VERIFY( loc_c != loc_hk ); - - // input less than frac_digits ---- libstdc++-v3/testsuite/22_locale/money_get/get/char/wrapped_env.cc.orig -+++ libstdc++-v3/testsuite/22_locale/money_get/get/char/wrapped_env.cc -@@ -1,6 +1,6 @@ - // { dg-require-namedlocale "de_DE" } - // { dg-require-namedlocale "de_DE@euro" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/money_get/get/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/money_get/get/char/wrapped_locale.cc -@@ -1,6 +1,6 @@ - // { dg-require-namedlocale "ja_JP.eucjp" } - // { dg-require-namedlocale "de_DE@euro" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/16.cc.orig -+++ libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/16.cc -@@ -1,5 +1,5 @@ - // { dg-require-namedlocale "de_DE@euro" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2004-03-02 Paolo Carlini <pcarlini@suse.de> - -@@ -37,7 +37,7 @@ - // basic construction - locale loc_c = locale::classic(); - locale loc_de = locale("de_DE@euro"); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - VERIFY( loc_hk != loc_de ); - VERIFY( loc_c != loc_hk ); - ---- libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/18.cc.orig -+++ libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/18.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2004-03-15 Paolo Carlini <pcarlini@suse.de> - -@@ -36,7 +36,7 @@ - - // basic construction - locale loc_c = locale::classic(); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - VERIFY( loc_c != loc_hk ); - - iterator_type end, end01, end02; ---- libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/2.cc.orig -+++ libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/2.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-09-12 Benjamin Kosnik <bkoz@redhat.com> - -@@ -35,7 +35,7 @@ - - // basic construction - locale loc_c = locale::classic(); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - VERIFY( loc_c != loc_hk ); - - // total EPA budget FY 2002 -@@ -80,7 +80,7 @@ - VERIFY( result11 == digits4 ); - VERIFY( err11 == ios_base::eofbit ); - -- // for the "en_HK" locale the parsing of the very same input streams must -+ // for the "zh_HK" locale the parsing of the very same input streams must - // be successful without showbase too, since the symbol field appears in - // the first positions in the format and the symbol, when present, must be - // consumed. ---- libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/4.cc.orig -+++ libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/4.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-09-12 Benjamin Kosnik <bkoz@redhat.com> - -@@ -35,7 +35,7 @@ - - // basic construction - locale loc_c = locale::classic(); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - VERIFY( loc_c != loc_hk ); - - // input less than frac_digits ---- libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/wrapped_env.cc.orig -+++ libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/wrapped_env.cc -@@ -1,6 +1,6 @@ - // { dg-require-namedlocale "de_DE" } - // { dg-require-namedlocale "de_DE@euro" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/money_get/get/wchar_t/wrapped_locale.cc -@@ -1,6 +1,6 @@ - // { dg-require-namedlocale "ja_JP.eucjp" } - // { dg-require-namedlocale "de_DE@euro" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/money_put/put/char/2.cc.orig -+++ libstdc++-v3/testsuite/22_locale/money_put/put/char/2.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-27 Benjamin Kosnik <bkoz@redhat.com> - -@@ -36,7 +36,7 @@ - - // basic construction - locale loc_c = locale::classic(); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - VERIFY( loc_c != loc_hk ); - - // sanity check the data is correct. ---- libstdc++-v3/testsuite/22_locale/money_put/put/char/wrapped_env.cc.orig -+++ libstdc++-v3/testsuite/22_locale/money_put/put/char/wrapped_env.cc -@@ -1,6 +1,6 @@ - // { dg-require-namedlocale "de_DE" } - // { dg-require-namedlocale "de_DE@euro" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/money_put/put/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/money_put/put/char/wrapped_locale.cc -@@ -1,6 +1,6 @@ - // { dg-require-namedlocale "ja_JP.eucjp" } - // { dg-require-namedlocale "de_DE@euro" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/2.cc.orig -+++ libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/2.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-27 Benjamin Kosnik <bkoz@redhat.com> - -@@ -36,7 +36,7 @@ - - // basic construction - locale loc_c = locale::classic(); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - VERIFY( loc_c != loc_hk ); - - // sanity check the data is correct. ---- libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/wrapped_env.cc.orig -+++ libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/wrapped_env.cc -@@ -1,6 +1,6 @@ - // { dg-require-namedlocale "de_DE" } - // { dg-require-namedlocale "de_DE@euro" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/money_put/put/wchar_t/wrapped_locale.cc -@@ -1,6 +1,6 @@ - // { dg-require-namedlocale "ja_JP.eucjp" } - // { dg-require-namedlocale "de_DE@euro" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/num_get/get/char/3.cc.orig -+++ libstdc++-v3/testsuite/22_locale/num_get/get/char/3.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-11-21 Benjamin Kosnik <bkoz@redhat.com> - -@@ -34,7 +34,7 @@ - - // basic construction - locale loc_c = locale::classic(); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - VERIFY( loc_c != loc_hk ); - - // sanity check the data is correct. ---- libstdc++-v3/testsuite/22_locale/num_get/get/char/wrapped_env.cc.orig -+++ libstdc++-v3/testsuite/22_locale/num_get/get/char/wrapped_env.cc -@@ -1,5 +1,5 @@ - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/num_get/get/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/num_get/get/char/wrapped_locale.cc -@@ -1,6 +1,6 @@ - // { dg-require-namedlocale "ja_JP.eucjp" } - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/3.cc.orig -+++ libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/3.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-11-21 Benjamin Kosnik <bkoz@redhat.com> - -@@ -34,7 +34,7 @@ - - // basic construction - locale loc_c = locale::classic(); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - VERIFY( loc_c != loc_hk ); - - // sanity check the data is correct. ---- libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/wrapped_env.cc.orig -+++ libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/wrapped_env.cc -@@ -1,5 +1,5 @@ - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/wrapped_locale.cc -@@ -1,6 +1,6 @@ - // { dg-require-namedlocale "ja_JP.eucjp" } - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/num_put/put/char/3.cc.orig -+++ libstdc++-v3/testsuite/22_locale/num_put/put/char/3.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-11-19 Benjamin Kosnik <bkoz@redhat.com> - -@@ -34,7 +34,7 @@ - - // basic construction - locale loc_c = locale::classic(); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - VERIFY( loc_c != loc_hk ); - - // sanity check the data is correct. ---- libstdc++-v3/testsuite/22_locale/num_put/put/char/wrapped_env.cc.orig -+++ libstdc++-v3/testsuite/22_locale/num_put/put/char/wrapped_env.cc -@@ -1,5 +1,5 @@ - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - // { dg-require-namedlocale "es_ES" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> ---- libstdc++-v3/testsuite/22_locale/num_put/put/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/num_put/put/char/wrapped_locale.cc -@@ -1,6 +1,6 @@ - // { dg-require-namedlocale "ja_JP.eucjp" } - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - // { dg-require-namedlocale "es_ES" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> ---- libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/3.cc.orig -+++ libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/3.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-11-19 Benjamin Kosnik <bkoz@redhat.com> - -@@ -34,7 +34,7 @@ - - // basic construction - locale loc_c = locale::classic(); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - VERIFY( loc_c != loc_hk ); - - // sanity check the data is correct. ---- libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/wrapped_env.cc.orig -+++ libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/wrapped_env.cc -@@ -1,5 +1,5 @@ - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/num_put/put/wchar_t/wrapped_locale.cc -@@ -1,6 +1,6 @@ - // { dg-require-namedlocale "ja_JP.eucjp" } - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/time_get/get_date/char/2.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_date/char/2.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - // { dg-require-namedlocale "de_DE" } - - // 2001-09-21 Benjamin Kosnik <bkoz@redhat.com> -@@ -36,7 +36,7 @@ - - // basic construction and sanity checks. - locale loc_c = locale::classic(); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - locale loc_de = locale("de_DE"); - VERIFY( loc_hk != loc_c ); - VERIFY( loc_hk != loc_de ); -@@ -76,7 +76,7 @@ - VERIFY( time10.tm_year == time_bday.tm_year ); - VERIFY( errorstate == ios_base::eofbit ); - -- // inspection of named locales, en_HK -+ // inspection of named locales, zh_HK - iss.imbue(loc_hk); - iss.str("Sunday, April 04, 1971"); - iterator_type is_it20(iss); ---- libstdc++-v3/testsuite/22_locale/time_get/get_date/char/wrapped_env.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_date/char/wrapped_env.cc -@@ -1,5 +1,5 @@ - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/time_get/get_date/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_date/char/wrapped_locale.cc -@@ -1,6 +1,6 @@ - // { dg-require-namedlocale "ja_JP.eucjp" } - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/2.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/2.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - // { dg-require-namedlocale "de_DE" } - - // 2001-09-21 Benjamin Kosnik <bkoz@redhat.com> -@@ -36,7 +36,7 @@ - - // basic construction and sanity checks. - locale loc_c = locale::classic(); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - locale loc_de = locale("de_DE"); - VERIFY( loc_hk != loc_c ); - VERIFY( loc_hk != loc_de ); -@@ -76,7 +76,7 @@ - VERIFY( time10.tm_year == time_bday.tm_year ); - VERIFY( errorstate == ios_base::eofbit ); - -- // inspection of named locales, en_HK -+ // inspection of named locales, zh_HK - iss.imbue(loc_hk); - iss.str(L"Sunday, April 04, 1971"); - iterator_type is_it20(iss); ---- libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/wrapped_env.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/wrapped_env.cc -@@ -1,5 +1,5 @@ - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_date/wchar_t/wrapped_locale.cc -@@ -1,6 +1,6 @@ - // { dg-require-namedlocale "ja_JP.eucjp" } - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/2.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/2.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - // { dg-require-namedlocale "de_DE" } - - // 2001-09-21 Benjamin Kosnik <bkoz@redhat.com> -@@ -35,7 +35,7 @@ - - // basic construction and sanity checks. - locale loc_c = locale::classic(); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - locale loc_de = locale("de_DE"); - VERIFY( loc_hk != loc_c ); - VERIFY( loc_hk != loc_de ); -@@ -63,7 +63,7 @@ - VERIFY( time10.tm_mon == time_bday.tm_mon ); - VERIFY( errorstate == ios_base::eofbit ); - -- // inspection of named locales, en_HK -+ // inspection of named locales, zh_HK - iss.imbue(loc_hk); - const time_get<char>& tim_get2 = use_facet<time_get<char> >(iss.getloc()); - iss.str("April"); ---- libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/wrapped_env.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/wrapped_env.cc -@@ -1,5 +1,5 @@ - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_monthname/char/wrapped_locale.cc -@@ -1,6 +1,6 @@ - // { dg-require-namedlocale "ja_JP.eucjp" } - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/2.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/2.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - // { dg-require-namedlocale "de_DE" } - - // 2001-09-21 Benjamin Kosnik <bkoz@redhat.com> -@@ -36,7 +36,7 @@ - - // basic construction and sanity checks. - locale loc_c = locale::classic(); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - locale loc_de = locale("de_DE"); - VERIFY( loc_hk != loc_c ); - VERIFY( loc_hk != loc_de ); -@@ -64,7 +64,7 @@ - VERIFY( time10.tm_mon == time_bday.tm_mon ); - VERIFY( errorstate == ios_base::eofbit ); - -- // inspection of named locales, en_HK -+ // inspection of named locales, zh_HK - iss.imbue(loc_hk); - const time_get<wchar_t>& tim_get2 = use_facet<time_get<wchar_t> >(iss.getloc()); - iss.str(L"April"); ---- libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_env.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_env.cc -@@ -1,5 +1,5 @@ - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_locale.cc -@@ -1,6 +1,6 @@ - // { dg-require-namedlocale "ja_JP.eucjp" } - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/time_get/get_time/char/2.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_time/char/2.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-09-21 Benjamin Kosnik <bkoz@redhat.com> - -@@ -35,7 +35,7 @@ - - // basic construction and sanity check - locale loc_c = locale::classic(); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - VERIFY( loc_hk != loc_c ); - - const string empty; -@@ -48,7 +48,7 @@ - const ios_base::iostate good = ios_base::goodbit; - ios_base::iostate errorstate = good; - -- // inspection of named locales, en_HK -+ // inspection of named locales, zh_HK - iss.imbue(loc_hk); - iss.str("12:00:00 PST"); - // Hong Kong in California! Well, they have Paris in Vegas... this ---- libstdc++-v3/testsuite/22_locale/time_get/get_time/char/wrapped_env.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_time/char/wrapped_env.cc -@@ -1,5 +1,5 @@ - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/time_get/get_time/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_time/char/wrapped_locale.cc -@@ -1,6 +1,6 @@ - // { dg-require-namedlocale "ja_JP.eucjp" } - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/2.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/2.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-09-21 Benjamin Kosnik <bkoz@redhat.com> - -@@ -35,7 +35,7 @@ - - // basic construction and sanity check - locale loc_c = locale::classic(); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - VERIFY( loc_hk != loc_c ); - - const wstring empty; -@@ -48,7 +48,7 @@ - const ios_base::iostate good = ios_base::goodbit; - ios_base::iostate errorstate = good; - -- // inspection of named locales, en_HK -+ // inspection of named locales, zh_HK - iss.imbue(loc_hk); - iss.str(L"12:00:00 PST"); - // Hong Kong in California! Well, they have Paris in Vegas... this ---- libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_env.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_env.cc -@@ -1,5 +1,5 @@ - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_time/wchar_t/wrapped_locale.cc -@@ -1,6 +1,6 @@ - // { dg-require-namedlocale "ja_JP.eucjp" } - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/2.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/2.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - // { dg-require-namedlocale "de_DE" } - - // 2001-09-21 Benjamin Kosnik <bkoz@redhat.com> -@@ -36,7 +36,7 @@ - - // basic construction and sanity checks. - locale loc_c = locale::classic(); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - locale loc_de = locale("de_DE"); - VERIFY( loc_hk != loc_c ); - VERIFY( loc_hk != loc_de ); -@@ -65,7 +65,7 @@ - VERIFY( time10.tm_wday == time_bday.tm_wday ); - VERIFY( errorstate == ios_base::eofbit ); - -- // inspection of named locales, en_HK -+ // inspection of named locales, zh_HK - iss.imbue(loc_hk); - iss.str("Sunday"); - iterator_type is_it20(iss); ---- libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/wrapped_env.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/wrapped_env.cc -@@ -1,5 +1,5 @@ - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/wrapped_locale.cc -@@ -1,6 +1,6 @@ - // { dg-require-namedlocale "ja_JP.eucjp" } - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> - ---- libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/2.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/2.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - // { dg-require-namedlocale "de_DE" } - - // 2001-09-21 Benjamin Kosnik <bkoz@redhat.com> -@@ -36,7 +36,7 @@ - - // basic construction and sanity checks. - locale loc_c = locale::classic(); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - locale loc_de = locale("de_DE"); - VERIFY( loc_hk != loc_c ); - VERIFY( loc_hk != loc_de ); -@@ -65,7 +65,7 @@ - VERIFY( time10.tm_wday == time_bday.tm_wday ); - VERIFY( errorstate == ios_base::eofbit ); - -- // inspection of named locales, en_HK -+ // inspection of named locales, zh_HK - iss.imbue(loc_hk); - iss.str(L"Sunday"); - iterator_type is_it20(iss); ---- libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_env.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_env.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - // { dg-require-namedlocale "de_DE" } - - // 2001-08-15 Benjamin Kosnik <bkoz@redhat.com> ---- libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_locale.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - // { dg-require-namedlocale "de_DE" } - // { dg-require-namedlocale "ja_JP.eucjp" } - ---- libstdc++-v3/testsuite/22_locale/time_put/put/char/3.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_put/put/char/3.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-09-17 Benjamin Kosnik <bkoz@redhat.com> - -@@ -38,7 +38,7 @@ - - // basic construction and sanity check. - locale loc_c = locale::classic(); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - VERIFY( loc_hk != loc_c ); - - // create an ostream-derived object, cache the time_put facet ---- libstdc++-v3/testsuite/22_locale/time_put/put/char/7.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_put/put/char/7.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-09-17 Benjamin Kosnik <bkoz@redhat.com> - -@@ -41,7 +41,7 @@ - - // basic construction and sanity check - locale loc_c = locale::classic(); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - VERIFY( loc_hk != loc_c ); - - // create an ostream-derived object, cache the time_put facet ---- libstdc++-v3/testsuite/22_locale/time_put/put/char/wrapped_env.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_put/put/char/wrapped_env.cc -@@ -1,5 +1,5 @@ - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - // { dg-require-namedlocale "es_ES" } - // { dg-require-namedlocale "fr_FR@euro" } - ---- libstdc++-v3/testsuite/22_locale/time_put/put/char/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_put/put/char/wrapped_locale.cc -@@ -1,5 +1,5 @@ - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - // { dg-require-namedlocale "es_ES" } - // { dg-require-namedlocale "fr_FR@euro" } - ---- libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/3.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/3.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-09-17 Benjamin Kosnik <bkoz@redhat.com> - -@@ -38,7 +38,7 @@ - - // basic construction and sanity check - locale loc_c = locale::classic(); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - VERIFY( loc_hk != loc_c ); - - // create an ostream-derived object, cache the time_put facet ---- libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/7.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/7.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - - // 2001-09-17 Benjamin Kosnik <bkoz@redhat.com> - -@@ -41,7 +41,7 @@ - - // basic construction and sanity check - locale loc_c = locale::classic(); -- locale loc_hk = locale("en_HK"); -+ locale loc_hk = locale("zh_HK"); - VERIFY( loc_hk != loc_c ); - - // create an ostream-derived object, cache the time_put facet ---- libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/wrapped_env.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/wrapped_env.cc -@@ -1,5 +1,5 @@ - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - // { dg-require-namedlocale "es_ES" } - // { dg-require-namedlocale "fr_FR@euro" } - ---- libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/wrapped_locale.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/wrapped_locale.cc -@@ -1,5 +1,5 @@ - // { dg-require-namedlocale "de_DE" } --// { dg-require-namedlocale "en_HK" } -+// { dg-require-namedlocale "zh_HK" } - // { dg-require-namedlocale "es_ES" } - // { dg-require-namedlocale "fr_FR@euro" } - // { dg-require-namedlocale "ja_JP.eucjp" } ---- libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/3.cc.orig -+++ libstdc++-v3/testsuite/22_locale/ctype/narrow/wchar_t/3.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "se_NO.UTF-8" } -+// { dg-require-namedlocale "no_NO.UTF-8" } - - // 2003-03-12 Petur Runolfsson <peturr02@ru.is> - -@@ -31,7 +31,7 @@ - using namespace std; - bool test __attribute__((unused)) = true; - -- locale loc = locale("se_NO.UTF-8"); -+ locale loc = locale("no_NO.UTF-8"); - const ctype<wchar_t>& wct = use_facet<ctype<wchar_t> >(loc); - - const wchar_t* wstrlit = L"\x80"; ---- libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/3.cc.orig -+++ libstdc++-v3/testsuite/22_locale/ctype/widen/wchar_t/3.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "se_NO.UTF-8" } -+// { dg-require-namedlocale "no_NO.UTF-8" } - - // 2003-03-12 Petur Runolfsson <peturr02@ru.is> - -@@ -31,7 +31,7 @@ - using namespace std; - bool test __attribute__((unused)) = true; - -- locale loc = locale("se_NO.UTF-8"); -+ locale loc = locale("no_NO.UTF-8"); - const ctype<wchar_t>& wct = use_facet<ctype<wchar_t> >(loc); - - const char* strlit = "\xc2\x80"; ---- libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/1.cc.orig -+++ libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/1.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "se_NO.UTF-8" } -+// { dg-require-namedlocale "no_NO.UTF-8" } - - // 2003-09-08 Petur Runolfsson <peturr02@ru.is> - -@@ -91,7 +91,7 @@ - const size_t wlen = sizeof(wstr) / sizeof(wstr[0]); - - const int loops = 2 * BUFSIZ / wlen; -- locale loc = locale("se_NO.UTF-8"); -+ locale loc = locale("no_NO.UTF-8"); - - FILE* file = fopen(name, "w"); - for (int i = 0; i < loops; ++i) ---- libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/2.cc.orig -+++ libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/2.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "se_NO.UTF-8" } -+// { dg-require-namedlocale "no_NO.UTF-8" } - - // 2003-09-08 Petur Runolfsson <peturr02@ru.is> - -@@ -35,7 +35,7 @@ - bool test __attribute__((unused)) = true; - const char name[] = "tmp_seekoff-2.tst"; - -- locale loc = locale("se_NO.UTF-8"); -+ locale loc = locale("no_NO.UTF-8"); - - const size_t size = 10; - wchar_t buf[size]; ---- libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc.orig -+++ libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "se_NO.UTF-8" } -+// { dg-require-namedlocale "no_NO.UTF-8" } - - // 2003-10-07 Petur Runolfsson <peturr02@ru.is> - // -@@ -93,7 +93,7 @@ - const size_t wlen = sizeof(wstr) / sizeof(wstr[0]); - - const int loops = 2 * BUFSIZ / wlen; -- locale loc = locale("se_NO.UTF-8"); -+ locale loc = locale("no_NO.UTF-8"); - - FILE* file = fopen(name, "w"); - for (int i = 0; i < loops; ++i) ---- libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/1.cc.orig -+++ libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/1.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "se_NO.UTF-8" } -+// { dg-require-namedlocale "no_NO.UTF-8" } - - // 2003-09-04 Petur Runolfsson <peturr02@ru.is> - -@@ -86,7 +86,7 @@ - const size_t clen = sizeof(cstr) / sizeof(cstr[0]); - const size_t wlen = sizeof(wstr) / sizeof(wstr[0]); - -- locale loc = locale("se_NO.UTF-8"); -+ locale loc = locale("no_NO.UTF-8"); - - FILE* file = fopen(name, "w"); - fwrite(cstr, 1, clen, file); ---- libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc.orig -+++ libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "se_NO.UTF-8" } -+// { dg-require-namedlocale "no_NO.UTF-8" } - - // 2003-09-04 Petur Runolfsson <peturr02@ru.is> - -@@ -86,7 +86,7 @@ - const size_t clen = sizeof(cstr) / sizeof(cstr[0]); - const size_t wlen = sizeof(wstr) / sizeof(wstr[0]); - -- locale loc = locale("se_NO.UTF-8"); -+ locale loc = locale("no_NO.UTF-8"); - - FILE* file = fopen(name, "w"); - fwrite(cstr, 1, clen, file); ---- libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc.orig -+++ libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "se_NO.UTF-8" } -+// { dg-require-namedlocale "no_NO.UTF-8" } - - // 2003-09-04 Petur Runolfsson <peturr02@ru.is> - -@@ -87,7 +87,7 @@ - const size_t wlen = sizeof(wstr) / sizeof(wstr[0]); - - const int loops = 2 * BUFSIZ / wlen; -- locale loc = locale("se_NO.UTF-8"); -+ locale loc = locale("no_NO.UTF-8"); - - FILE* file = fopen(name, "w"); - for (int i = 0; i < loops; ++i) ---- libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/4.cc.orig -+++ libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/4.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "se_NO.UTF-8" } -+// { dg-require-namedlocale "no_NO.UTF-8" } - - // 2003-09-04 Petur Runolfsson <peturr02@ru.is> - // Adapted from 27_io/basic_filebuf/underflow/char/2.cc -@@ -31,7 +31,7 @@ - bool test __attribute__((unused)) = true; - using namespace std; - -- locale loc (locale("se_NO.UTF-8")); -+ locale loc (locale("no_NO.UTF-8")); - wfilebuf fb_out, fb_in_out; - fb_out.pubimbue(loc); - fb_in_out.pubimbue(loc); ---- libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/5.cc.orig -+++ libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/5.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "se_NO.UTF-8" } -+// { dg-require-namedlocale "no_NO.UTF-8" } - - // 2003-09-04 Petur Runolfsson <peturr02@ru.is> - -@@ -35,7 +35,7 @@ - - wfilebuf fb; - fb.pubsetbuf(0, 0); -- fb.pubimbue(locale("se_NO.UTF-8")); -+ fb.pubimbue(locale("no_NO.UTF-8")); - - FILE* file = fopen(name, "w"); - setvbuf(file, 0, _IONBF, 0); ---- libstdc++-v3/testsuite/27_io/objects/wchar_t/10.cc.orig -+++ libstdc++-v3/testsuite/27_io/objects/wchar_t/10.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "se_NO.UTF-8" } -+// { dg-require-namedlocale "no_NO.UTF-8" } - - // 2003-05-01 Petur Runolfsson <peturr02@ru.is> - -@@ -33,7 +33,7 @@ - bool test __attribute__((unused)) = true; - const char* name = "tmp_10"; - -- locale loc(locale("se_NO.UTF-8")); -+ locale loc(locale("no_NO.UTF-8")); - locale::global(loc); - wcin.imbue(loc); - wcout.imbue(loc); ---- libstdc++-v3/testsuite/27_io/objects/wchar_t/11.cc.orig -+++ libstdc++-v3/testsuite/27_io/objects/wchar_t/11.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "se_NO.UTF-8" } -+// { dg-require-namedlocale "no_NO.UTF-8" } - - // 2003-05-01 Petur Runolfsson <peturr02@ru.is> - -@@ -33,7 +33,7 @@ - bool test __attribute__((unused)) = true; - const char* name = "tmp_11"; - -- locale loc(locale("se_NO.UTF-8")); -+ locale loc(locale("no_NO.UTF-8")); - locale::global(loc); - wcin.imbue(loc); - wcout.imbue(loc); ---- libstdc++-v3/testsuite/27_io/objects/wchar_t/12.cc.orig -+++ libstdc++-v3/testsuite/27_io/objects/wchar_t/12.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "se_NO.UTF-8" } -+// { dg-require-namedlocale "no_NO.UTF-8" } - - // 2003-09-04 Petur Runolfsson <peturr02@ru.is> - -@@ -38,7 +38,7 @@ - bool test __attribute__((unused)) = true; - const char* name = "tmp_12"; - -- locale loc(locale("se_NO.UTF-8")); -+ locale loc(locale("no_NO.UTF-8")); - locale::global(loc); - std::ios_base::sync_with_stdio(false); - wcout.imbue(loc); ---- libstdc++-v3/testsuite/27_io/objects/wchar_t/13.cc.orig -+++ libstdc++-v3/testsuite/27_io/objects/wchar_t/13.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "se_NO.UTF-8" } -+// { dg-require-namedlocale "no_NO.UTF-8" } - - // 2003-09-04 Petur Runolfsson <peturr02@ru.is> - -@@ -36,7 +36,7 @@ - bool test __attribute__((unused)) = true; - const char* name = "tmp_13"; - -- locale loc(locale("se_NO.UTF-8")); -+ locale loc(locale("no_NO.UTF-8")); - locale::global(loc); - std::ios_base::sync_with_stdio(false); - wcin.imbue(loc); ---- libstdc++-v3/testsuite/22_locale/facet/2.cc.orig -+++ libstdc++-v3/testsuite/22_locale/facet/2.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "es_MX" } -+// { dg-require-namedlocale "es_ES" } - - // 2000-08-31 Benjamin Kosnik <bkoz@redhat.com> - -@@ -84,7 +84,7 @@ - // 4: Named locale should destroy facets when it goes out of scope. - // Not quite sure how to test for this w/o valgrind at the moment. - { -- locale loc03 = locale("es_MX"); -+ locale loc03 = locale("es_ES"); - } - } - ---- libstdc++-v3/testsuite/22_locale/locale/cons/5.cc.orig -+++ libstdc++-v3/testsuite/22_locale/locale/cons/5.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "en_PH" } -+// { dg-require-namedlocale "en_NZ" } - // { dg-require-namedlocale "de_DE" } - // { dg-require-namedlocale "it_IT" } - -@@ -76,21 +76,21 @@ - } - setenv("LC_ALL", "", 1); - -- // Check that a "en_PH" LC_ALL is equivalent to "en_PH". -- if (!setenv("LC_ALL", "en_PH", 1)) -+ // Check that a "en_NZ" LC_ALL is equivalent to "en_PH". -+ if (!setenv("LC_ALL", "en_NZ", 1)) - { - locale loc = locale(""); -- VERIFY( loc.name() == "en_PH" ); -+ VERIFY( loc.name() == "en_NZ" ); - } - setenv("LC_ALL", "", 1); - - // Explicit check that LC_ALL sets regardless of LC_* and LANG. -- if (!setenv("LANG", "es_MX", 1) && !setenv("LC_COLLATE", "de_DE", 1)) -+ if (!setenv("LANG", "es_ES", 1) && !setenv("LC_COLLATE", "de_DE", 1)) - { -- if (!setenv("LC_ALL", "en_PH", 1)) -+ if (!setenv("LC_ALL", "en_NZ", 1)) - { - locale loc = locale(""); -- VERIFY( loc.name() == "en_PH" ); -+ VERIFY( loc.name() == "en_NZ" ); - } - setenv("LC_ALL", "", 1); - setenv("LANG", LANG_orig ? LANG_orig : "", 1); ---- libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/2.cc.orig -+++ libstdc++-v3/testsuite/22_locale/locale/global_locale_objects/2.cc -@@ -1,5 +1,5 @@ --// { dg-require-namedlocale "en_PH" } --// { dg-require-namedlocale "es_MX" } -+// { dg-require-namedlocale "en_NZ" } -+// { dg-require-namedlocale "es_ES" } - - // 2000-09-13 Benjamin Kosnik <bkoz@redhat.com> - -@@ -32,8 +32,8 @@ - using namespace std; - bool test __attribute__((unused)) = true; - -- const string ph("en_PH"); -- const string mx("es_MX"); -+ const string ph("en_NZ"); -+ const string mx("es_ES"); - const char* orig = setlocale(LC_ALL, 0); - const char* testph = setlocale(LC_ALL, ph.c_str()); - const char* testmx = setlocale(LC_ALL, mx.c_str()); ---- libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-1.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-1.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ru_RU.ISO-8859-5" } -+// { dg-require-namedlocale "ru_RU.ISO8859-5" } - - // Copyright (C) 2010, 2011 Free Software Foundation - // -@@ -33,7 +33,7 @@ - typedef istreambuf_iterator<char> iterator_type; - - // basic construction -- locale loc("ru_RU.ISO-8859-5"); -+ locale loc("ru_RU.ISO8859-5"); - - // create an ostream-derived object, cache the time_get facet - iterator_type end; ---- libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-2.cc.orig -+++ libstdc++-v3/testsuite/22_locale/time_get/get_weekday/char/38081-2.cc -@@ -1,4 +1,4 @@ --// { dg-require-namedlocale "ru_RU.UTF8" } -+// { dg-require-namedlocale "ru_RU.UTF-8" } - - // 2010-01-05 Paolo Carlini <paolo.carlini@oracle.com> - -@@ -34,7 +34,7 @@ - typedef istreambuf_iterator<char> iterator_type; - - // basic construction -- locale loc("ru_RU.UTF8"); -+ locale loc("ru_RU.UTF-8"); - - // create an ostream-derived object, cache the time_get facet - iterator_type end; diff --git a/lang/gnat-aux/files/diff-fortran b/lang/gnat-aux/files/diff-fortran deleted file mode 100644 index 146e0e36b9cf..000000000000 --- a/lang/gnat-aux/files/diff-fortran +++ /dev/null @@ -1,54 +0,0 @@ ---- gcc/fortran/f95-lang.c.orig -+++ gcc/fortran/f95-lang.c -@@ -823,10 +823,17 @@ - - gfc_define_builtin ("__builtin_cabsl", func_clongdouble_longdouble, - BUILT_IN_CABSL, "cabsl", ATTR_CONST_NOTHROW_LEAF_LIST); -+#if defined(__NetBSD__) -+ gfc_define_builtin ("__builtin_cabs", func_cdouble_double, -+ BUILT_IN_CABS, "__c99_cabs", ATTR_CONST_NOTHROW_LEAF_LIST); -+ gfc_define_builtin ("__builtin_cabsf", func_cfloat_float, -+ BUILT_IN_CABSF, "__c99_cabsf", ATTR_CONST_NOTHROW_LEAF_LIST); -+#else - gfc_define_builtin ("__builtin_cabs", func_cdouble_double, - BUILT_IN_CABS, "cabs", ATTR_CONST_NOTHROW_LEAF_LIST); - gfc_define_builtin ("__builtin_cabsf", func_cfloat_float, - BUILT_IN_CABSF, "cabsf", ATTR_CONST_NOTHROW_LEAF_LIST); -+#endif - - gfc_define_builtin ("__builtin_copysignl", mfunc_longdouble[1], - BUILT_IN_COPYSIGNL, "copysignl", ---- libgfortran/configure.orig -+++ libgfortran/configure -@@ -25699,7 +25699,7 @@ - - fi - case "$host" in -- *-*-darwin* | *-*-hpux* | *-*-cygwin* | *-*-mingw* | alpha*-dec-osf* ) -+ *-*-darwin* | *-*-hpux* | *-*-cygwin* | *-*-mingw* | alpha*-dec-osf* | *-*-netbsd* ) - - $as_echo "#define GTHREAD_USE_WEAK 0" >>confdefs.h - ---- libquadmath/Makefile.in.orig -+++ libquadmath/Makefile.in -@@ -393,10 +393,9 @@ - - # AM_CONDITIONAL on configure option --generated-files-in-srcdir - @BUILD_LIBQUADMATH_TRUE@@GENINSRC_TRUE@STAMP_GENINSRC = stamp-geninsrc --@BUILD_INFO_FALSE@@BUILD_LIBQUADMATH_TRUE@STAMP_BUILD_INFO = -+@BUILD_LIBQUADMATH_TRUE@STAMP_BUILD_INFO = - - # AM_CONDITIONAL on configure check ACX_CHECK_PROG_VER([MAKEINFO]) --@BUILD_INFO_TRUE@@BUILD_LIBQUADMATH_TRUE@STAMP_BUILD_INFO = stamp-build-info - @BUILD_LIBQUADMATH_TRUE@CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) libquadmath.info - @BUILD_LIBQUADMATH_TRUE@MAINTAINERCLEANFILES = $(srcdir)/libquadmath.info - -@@ -1247,7 +1246,7 @@ - - info-am: $(INFO_DEPS) - --install-data-am: install-info-am install-nodist_libsubincludeHEADERS -+install-data-am: install-nodist_libsubincludeHEADERS - - install-dvi: install-dvi-am - diff --git a/lang/gnat-aux/files/diff-fortran-testsuite b/lang/gnat-aux/files/diff-fortran-testsuite deleted file mode 100644 index af58f3abe20b..000000000000 --- a/lang/gnat-aux/files/diff-fortran-testsuite +++ /dev/null @@ -1,31 +0,0 @@ ---- gcc/testsuite/gfortran.dg/large_real_kind_2.F90.orig -+++ gcc/testsuite/gfortran.dg/large_real_kind_2.F90 -@@ -1,6 +1,6 @@ - ! { dg-do run } - ! { dg-require-effective-target fortran_large_real } --! { dg-xfail-if "" { "*-*-freebsd*" } { "*" } { "" } } -+! { dg-xfail-if "" { "*-*-freebsd*" *-*-dragonfly* *-*-netbsd* } { "*" } { "" } } - - ! Testing library calls on large real kinds (larger than kind=8) - implicit none ---- gcc/testsuite/gfortran.dg/large_real_kind_3.F90.orig -+++ gcc/testsuite/gfortran.dg/large_real_kind_3.F90 -@@ -1,6 +1,6 @@ - ! { dg-do run } - ! { dg-require-effective-target fortran_large_real } --! { dg-xfail-if "" { "*-*-freebsd*" } { "*" } { "" } } -+! { dg-xfail-if "" { "*-*-freebsd*" *-*-dragonfly* *-*-netbsd* } { "*" } { "" } } - - ! Testing erf and erfc library calls on large real kinds (larger than kind=8) - implicit none ---- gcc/testsuite/gfortran.dg/open_errors.f90.orig -+++ gcc/testsuite/gfortran.dg/open_errors.f90 -@@ -22,7 +22,7 @@ - if (msg /= "File 'temptestfile' does not exist") call abort() - - open(77,file="./", iomsg=msg, iostat=i) --if (msg /= "'./' is a directory" .and. msg /= "Invalid argument") call abort() -+if (msg /= "'./' is a directory" .and. msg /= "Invalid argument" .and. msg /= "File './' already exists") call abort() - - open(77,file=n,status="new") - i = chmod(n, "-w") diff --git a/lang/gnat-aux/files/diff-gcc-testsuite b/lang/gnat-aux/files/diff-gcc-testsuite deleted file mode 100644 index f371a02cd1cb..000000000000 --- a/lang/gnat-aux/files/diff-gcc-testsuite +++ /dev/null @@ -1,10 +0,0 @@ ---- gcc/testsuite/gcc.dg/pch/pch.exp.orig -+++ gcc/testsuite/gcc.dg/pch/pch.exp -@@ -44,6 +44,7 @@ - set test "largefile.c" - set testh "largefile.hs" - set f [open $test w] -+puts $f "/* { dg-do run { target *-*-solaris* } } */" - puts $f "/* { dg-timeout-factor 4.0 } */" - set v 0 - for { set v 0 } { $v < 10000 } { incr v } { diff --git a/lang/gnat-aux/pkg-descr b/lang/gnat-aux/pkg-descr deleted file mode 100644 index 0f0ae84f72a7..000000000000 --- a/lang/gnat-aux/pkg-descr +++ /dev/null @@ -1,13 +0,0 @@ -GNAT AUX is based on the trunk version of Free Software Foundation's GNU -Compiler Collection. It carries with it the GMGPL license, the modified -version of the GPL that exempts generic instantiation from resulting in -a GPL-licensed executable. This version of GNAT also carries with it the -GCC Runtime Library Exception, so the resulting binaries have no licensing -requirements. Binaries produced by GNAT AUX should be handled the same as -binaries produced by any FSF GNAT compiler. - -GNAT AUX implements the full Ada-83, Ada-95, and Ada-2005 language standards. -It also implements some features of the draft Ada-2012 standard, which are -optionally accessible via the -gnat2012 switch or Ada_2012 pragma. - -WWW: http://www.dragonlace.net/ diff --git a/lang/ocaml-doc/Makefile b/lang/ocaml-doc/Makefile deleted file mode 100644 index ebfdf8094fe3..000000000000 --- a/lang/ocaml-doc/Makefile +++ /dev/null @@ -1,41 +0,0 @@ -# Created by: Eugene Ossintsev -# $FreeBSD$ - -PORTNAME= ocaml -PORTVERSION= 3.12.1 -CATEGORIES= lang -MASTER_SITES= http://caml.inria.fr/distrib/${DISTNAME:R}/ \ - ftp://ftp.inria.fr/INRIA/caml-light/${DISTNAME:R}/ \ - ftp://ftp.kurims.kyoto-u.ac.jp/pub/lang/caml-light/${DISTNAME:R}/ -PKGNAMESUFFIX= -doc -DISTFILES= ${DISTNAME}-refman-html.tar.gz \ - ${DISTNAME:R}-refman.ps.gz \ - ${DISTNAME:R}-refman.pdf -EXTRACT_ONLY= ${DISTNAME}-refman-html.tar.gz - -MAINTAINER= johans@FreeBSD.org -COMMENT= Documentation (HTML, PS) for the Objective Caml - -DEPRECATED= Documentation is now included in lang/ocaml -EXPIRATION_DATE=2014-06-01 - -NO_BUILD= yes - -PORTDOCS= ${DISTNAME:R}-refman.ps \ - ${DISTNAME:R}-refman.pdf \ - html - -.ifdef(NOPORTDOCS) -IGNORE= installs only documentation and you have NOPORTDOCS defined -.endif - -do-install: - @${MKDIR} ${STAGEDIR}${DOCSDIR}/html/libref - cd ${WRKDIR}/htmlman/libref && ${INSTALL_DATA} * ${STAGEDIR}${DOCSDIR}/html/libref - cd ${WRKDIR}/htmlman && ${INSTALL_DATA} [a-km-z]* libg* ${STAGEDIR}${DOCSDIR}/html - cp ${DISTDIR}/${DISTNAME:R}-refman.ps.gz ${WRKDIR} - ${GUNZIP_CMD} ${WRKDIR}/${DISTNAME:R}-refman.ps.gz - ${INSTALL_DATA} ${WRKDIR}/${DISTNAME:R}-refman.ps ${STAGEDIR}${DOCSDIR} - ${INSTALL_DATA} ${DISTDIR}/${DISTNAME:R}-refman.pdf ${STAGEDIR}${DOCSDIR} - -.include <bsd.port.mk> diff --git a/lang/ocaml-doc/distinfo b/lang/ocaml-doc/distinfo deleted file mode 100644 index 3e93ad385a97..000000000000 --- a/lang/ocaml-doc/distinfo +++ /dev/null @@ -1,6 +0,0 @@ -SHA256 (ocaml-3.12.1-refman-html.tar.gz) = 84b9d793de25c75d4a3b7cd207bc17ddcf010c8a74296ced74c55814f6d038a1 -SIZE (ocaml-3.12.1-refman-html.tar.gz) = 526923 -SHA256 (ocaml-3.12-refman.ps.gz) = 6ce6338bb6bb88c59461d32d02febf2a2b378f0805ef0d827114b0dcef2a05c5 -SIZE (ocaml-3.12-refman.ps.gz) = 966339 -SHA256 (ocaml-3.12-refman.pdf) = 436f342c466a74a45879f1a11d7534f4eacc2fe6b746aa8e08c81be27fa1d5bf -SIZE (ocaml-3.12-refman.pdf) = 1307403 diff --git a/lang/ocaml-doc/pkg-descr b/lang/ocaml-doc/pkg-descr deleted file mode 100644 index 2ab9b881fafc..000000000000 --- a/lang/ocaml-doc/pkg-descr +++ /dev/null @@ -1,4 +0,0 @@ -Documentation for the Objective Caml compiler and programming environment -in HTML and PostScript formats. - -WWW: http://caml.inria.fr/ocaml/ diff --git a/lang/ocaml-examples/Makefile b/lang/ocaml-examples/Makefile deleted file mode 100644 index 04229d27144d..000000000000 --- a/lang/ocaml-examples/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -# Created by: Stanislav Sedov <ssedov@mbsd.msk.ru> -# $FreeBSD$ - -PORTNAME= ocaml -PORTVERSION= 3.12 -CATEGORIES= lang -MASTER_SITES= http://cristal.inria.fr/caml_examples/ -PKGNAMESUFFIX= -examples -DISTNAME= ${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION} - -MAINTAINER= johans@FreeBSD.org -COMMENT= Example programs for the Objective Caml - -DEPRECATED= Outdated and discontinued; new examples are in lang/ocaml -EXPIRATION_DATE=2014-06-01 - -NO_BUILD= yes - -do-install: -.ifndef NOPORTEXAMPLES - @${MKDIR} ${STAGEDIR}${EXAMPLESDIR} - @${TAR} -cf- -C ${WRKSRC} --exclude Imakefile . | \ - ${TAR} -xf- -C ${STAGEDIR}${EXAMPLESDIR} - @${FIND} ${STAGEDIR}${EXAMPLESDIR} -type f -exec ${CHMOD} ${SHAREMODE} {} \; - @${FIND} ${STAGEDIR}${EXAMPLESDIR} -exec ${CHOWN} ${SHAREOWN} {} \; -.endif - -.include <bsd.port.mk> diff --git a/lang/ocaml-examples/distinfo b/lang/ocaml-examples/distinfo deleted file mode 100644 index a9d0f4d06c45..000000000000 --- a/lang/ocaml-examples/distinfo +++ /dev/null @@ -1,2 +0,0 @@ -SHA256 (ocaml-examples-3.12.tar.gz) = d8bb0bcf8a0b66f2cb47c372e0fcd7c27d2e0de948d9e8b7fc232cf699083c03 -SIZE (ocaml-examples-3.12.tar.gz) = 404010 diff --git a/lang/ocaml-examples/pkg-descr b/lang/ocaml-examples/pkg-descr deleted file mode 100644 index 6d1f71af475f..000000000000 --- a/lang/ocaml-examples/pkg-descr +++ /dev/null @@ -1,3 +0,0 @@ -Various examples for the Objective Caml compiler and programming environment. - -WWW: http://caml.inria.fr/ocaml/ diff --git a/lang/ocaml-examples/pkg-plist b/lang/ocaml-examples/pkg-plist deleted file mode 100644 index 4534973142da..000000000000 --- a/lang/ocaml-examples/pkg-plist +++ /dev/null @@ -1,505 +0,0 @@ -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/TODO -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/asl/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/asl/README -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/asl/asl.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/asl/asl.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/asl/example.asl -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/asl/example.res -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/asl/loadall.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/asl/main.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/asl/main.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/asl/parser.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/asl/parser.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/asl/prel.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/asl/prel.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/asl/run.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/asl/semant.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/asl/token.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/asl/token.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/asl/typing.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/README -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/argcargv.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/eng.html -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/explode.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/explode.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/fib.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/fra.html -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/greeting.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/hello.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/kmp.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/loadall.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/queens.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/queens_lazy.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/queens_tail.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/read_points.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/read_points.txt -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/realloc.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/realloc.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/reverse_rec.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/reverse_stdin.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/sieve.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/sieve_vect.c -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/sieve_vect.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/sieve_vect_unsafe.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/soli.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/square.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/strpos.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/wc.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/basics/wc_unix.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/calc/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/calc/README -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/calc/calc.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/calc/lexer.mll -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/calc/loadall.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/calc/main.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/calc/parser.mly -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/README -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/addition.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/bonjour.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/bonjour_quit.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/camleyes.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/convert.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/convert_euro.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/convertion.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/convertion_euro.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/eng.html -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/hello.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/hello_quit.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/images/CamlBook.gif -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/images/Lambda2.back.gif -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/images/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/images/dojoji.back.gif -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/joconde.gif -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/loadall.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/mytext.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/rgb.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/start.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/stop.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/taquin.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltk/tetris.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltktutorial/appli.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltktutorial/complexe.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltktutorial/complexe0.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltktutorial/complexegui.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltktutorial/complexegui0.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltktutorial/servers/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltktutorial/servers/biconnect.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltktutorial/servers/biout.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltktutorial/servers/bipipe.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltktutorial/servers/bipipe.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltktutorial/servers/compute.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltktutorial/servers/connect.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltktutorial/servers/fork.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltktutorial/servers/gui.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltktutorial/servers/make_appli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltktutorial/servers/mk_seq.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltktutorial/servers/multiconnect -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltktutorial/servers/pipe.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/camltktutorial/simple.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/colwheel/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/colwheel/colwheel.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/colwheel/loadall.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/compress/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/compress/compr.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/compress/decompr.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/compress/esbit.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/compress/esbit.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/compress/fileprio.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/compress/fileprio.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/compress/huffman.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/compress/huffman.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/compress/loadall.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/config/Imake.rules -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/config/Imake.tmpl -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/config/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/config/coldboot -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/demonstr/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/demonstr/asynt.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/demonstr/asynt.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/demonstr/demo.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/demonstr/lexuniv.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/demonstr/lexuniv.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/demonstr/loadall.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/demonstr/prop.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/demonstr/prop.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dlls/unix/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dlls/unix/client.c -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dlls/unix/fib.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dlls/unix/fib_wrappers.c -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dlls/windows/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dlls/windows/MakefileByteCode -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dlls/windows/MakefileNative -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dlls/windows/client.c -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dlls/windows/fib.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dlls/windows/fibwrap.c -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dlls/windows/modwrap.c -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/docteur/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/docteur/docteur.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/docteur/loadall.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/doctor/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/doctor/doctor.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/doctor/loadall.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/eng.html -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/fra.html -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grep/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grep/auto.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grep/auto.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grep/determ.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grep/determ.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grep/ensent.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grep/ensent.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grep/expr.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grep/expr.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grep/fastgrep.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grep/fastrec.c -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grep/fastrec.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grep/grep.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grep/loadall.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/grep/makefast -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/hanoi/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/hanoi/grahanoi_eng.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/hanoi/grahanoi_fra.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/hanoi/hanoi_eng.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/hanoi/hanoi_fra.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/hanoi/koch.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/hanoi/loadall.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/hanoi/txthanoi_eng.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/hanoi/txthanoi_fra.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/kb/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/kb/README -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/kb/equation.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/kb/go.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/kb/kb.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/kb/loadall.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/kb/order.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/kb/prelude.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/kb/terms.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minicaml/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minicaml/caml.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minicaml/eval.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minicaml/eval.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minicaml/interp.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minicaml/lexuniv.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minicaml/lexuniv.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minicaml/loadall.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minicaml/syntaxe.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minicaml/syntaxe.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minicaml/synthese.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minicaml/synthese.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minicaml/types.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minicaml/types.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minicaml/typeur.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minilogo/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minilogo/abstract.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minilogo/alex.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minilogo/alex.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minilogo/asynt.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minilogo/asynt.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minilogo/crayon.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minilogo/crayon.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minilogo/langage.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minilogo/langage.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minilogo/loadall.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/minilogo/logo.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/expert/compile.sh -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/expert/fapply.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/expert/fapply.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/expert/fmod.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/expert/fmod.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/expert/ftype.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/expert/imod.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/expert/imod.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/expert/itype.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/expert/main.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/expert/restype.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/naive/compile.sh -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/naive/fmod.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/naive/fmod.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/naive/ftype.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/naive/imod.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/naive/imod.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/naive/itype.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/naive/main.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/wrong/compile.sh -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/wrong/fapply.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/wrong/fapply.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/wrong/fapplytype.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/wrong/fmod.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/wrong/fmod.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/wrong/ftype.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/wrong/imod.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/wrong/imod.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/wrong/itype.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/wrong/main.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/functors/wrong/restype.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/libraries/restriction/src/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/libraries/restriction/src/inside.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/libraries/restriction/src/inside.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/libraries/restriction/src/outside.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/libraries/restriction/src/outside.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/libraries/restriction/test/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/libraries/restriction/test/use_inside_my_lib.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/libraries/restriction/test/use_my_lib.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/module_inclusion/with_include/base_module.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/module_inclusion/with_include/base_module.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/module_inclusion/with_include/compile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/module_inclusion/with_include/doc -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/module_inclusion/with_include/module_aggregate.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/module_inclusion/with_include/module_aggregate.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/module_inclusion/with_include/module_backbone_link.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/module_inclusion/with_include/module_backbone_link.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/module_inclusion/with_include/module_chemical_group.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/module_inclusion/with_include/module_chemical_group.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/module_inclusion/with_include/module_formulae.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/module_inclusion/with_include/module_formulae.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/module_inclusion/with_include/module_lib_frames.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/module_inclusion/with_include/module_lib_frames.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/module_inclusion/with_include/module_types.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/module_inclusion/with_include/path.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/module_inclusion/with_include/path.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/modules/module_types/modtype_fun.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/math_expression/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/math_expression/README -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/math_expression/clean -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/math_expression/compile_fcn -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/math_expression/lexer.mll -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/math_expression/main_fcn.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/math_expression/parser.mly -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/math_expression/parsetree.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/math_expression/print_ast.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/math_expression/print_ast.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/math_expression/scoping.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/math_expression/scoping.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/math_expression/transl.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/math_expression/treat_fcn.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/math_expression/treat_fcn.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/.depend -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/Objs.mk -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/ast.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/ast_pprint.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/ast_pprint.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/ast_print.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/basics/hash_table.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/basics/hash_table.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/basics/hash_table_print.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/basics/hash_table_print.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/basics/ident.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/basics/ident.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/basics/lib_pp.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/basics/lib_pp.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/basics/mdl_basics.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/basics/mdl_basics_print.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/basics/name.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/basics/name.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/basics/path.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/basics/path.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/basics/ulist1.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/basics/ulist1.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/config/Caml.mk -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/config/Config.mk -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/config/Config.mk.in -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/config/configure -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/configure -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/deep_ast.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/deep_ast_pprint.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/deep_ast_pprint.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/deep_ast_print.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/exec.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/lexer.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/lexer.mll -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/main_polish.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/parser.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/parser.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/parser.mly -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/polish.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/print_polish.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/scoping.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/scoping.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/splice_ast.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/splice_ast_pprint.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/splice_ast_pprint.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/splice_ast_print.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/splicing.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/test/test0 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/test/test1 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/test/test10 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/test/test11 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/test/test2 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/test/test3 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/test/test4 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/test/test5 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/test/test6 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/test/test7 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/test/test8 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/test/test9 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/test/test91 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/test/test92 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/test/test93 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/test/testaleph0 -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/transl.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/treat_polish.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/matrix_expression/treat_polish.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/polish/README -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/polish/clean -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/polish/compile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/polish/lexer.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/polish/lexer.mll -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/polish/main.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/polish/parser.mly -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/polish/parsetree.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/polish/print_ast.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/polish/print_ast.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/polish/scoping.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/polish/scoping.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/polish/treat.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/parsing/polish/treat.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pascal/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pascal/compil.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pascal/compil.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pascal/cpascal.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pascal/envir.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pascal/envir.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pascal/fib1.p -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pascal/fib2.p -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pascal/interp.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pascal/interp.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pascal/ipascal.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pascal/lexuniv.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pascal/lexuniv.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pascal/loadall.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pascal/reines.p -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pascal/syntaxe.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pascal/syntaxe.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pascal/typage.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pascal/typage.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pascal/valeur.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pascal/valeur.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/picomach/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/picomach/asm.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/picomach/code.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/picomach/code.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/picomach/exec.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/picomach/fact.asm -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/picomach/lecture.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/picomach/lecture.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/picomach/lexuniv.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/picomach/lexuniv.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/picomach/loadall.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/picomach/simul.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/picomach/simul.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/picomach/stockage.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/picomach/stockage.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/showsort/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/showsort/loadall.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/showsort/showsort.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simples/date.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simples/date.pl -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simples/libperl.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simples/mots_islandais -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simples/reminder.pl -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simples/scan_list.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simples/test_chomp.pl -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simples/trad.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/simples/trad.pl -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/soli/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/soli/soli.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/soli/soli_opt.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spirals/Makefile -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spirals/loadall-bw.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spirals/loadall.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spirals/spir.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/spirals/spir_bw.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku/README -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku/clean -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku/compile.bin -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku/compile.byt -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku/main.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku/read.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku/resolve.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku/solve.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku/types.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku/utils.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/README -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/clean -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/compile.bin -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/compile.byt -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/example.txt -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/example100.txt -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/example101.txt -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/example400.txt -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/example401.txt -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/example51.txt -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/example81.txt -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/example82.txt -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/example83.txt -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/example93.txt -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/example94.txt -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/example95.txt -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/example96.txt -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/example97.txt -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/example98.txt -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/example99.txt -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/main.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/read.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/resolve.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/rules.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/sols.txt -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/solve.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/solve0.ml -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/types.mli -%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sudoku_general/utils.ml -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/asl -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/basics -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/calc -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/camltk/images -%%PORTEXAMPLES%%@dirrmtry %%EXAMPLESDIR%%/camltk -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/camltktutorial/servers -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/camltktutorial -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/colwheel -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/compress -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/config -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/demonstr -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/dlls/unix -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/dlls/windows -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/dlls -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/docteur -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/doctor -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/grep -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/hanoi -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/kb -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/minicaml -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/minilogo -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/modules/libraries/restriction/test -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/modules/libraries/restriction/src -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/modules/libraries/restriction/lib -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/modules/libraries/restriction -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/modules/libraries -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/modules/module_types -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/modules/functors/wrong -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/modules/functors/expert -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/modules/functors/naive -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/modules/functors -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/modules/module_inclusion/with_sharing -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/modules/module_inclusion/with_include -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/modules/module_inclusion -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/modules -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/parsing/math_expression -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/parsing/polish -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/parsing/matrix_expression/test -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/parsing/matrix_expression/config -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/parsing/matrix_expression/basics -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/parsing/matrix_expression -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/parsing -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/pascal -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/picomach -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/showsort -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/simples -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/soli -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/spirals -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/sudoku -%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/sudoku_general -%%PORTEXAMPLES%%@dirrmtry %%EXAMPLESDIR%% |