diff --git a/mps/code/.p4ignore b/mps/code/.p4ignore index 016e58eef6a..7db90ebb062 100644 --- a/mps/code/.p4ignore +++ b/mps/code/.p4ignore @@ -5,6 +5,7 @@ anangc ananll ananmv fri3gc +fri3ll fri6gc fri6ll lii3gc @@ -50,3 +51,5 @@ tags 9 # Mac OS X Finder turds .DS_Store +# Emacs backups +*~ diff --git a/mps/code/mps.c b/mps/code/mps.c index 48b82ae675c..edf4b61fe26 100644 --- a/mps/code/mps.c +++ b/mps/code/mps.c @@ -137,9 +137,9 @@ #include "prmci6xc.c" /* 64-bit Intel for Mac OS X mutator context */ #include "span.c" /* generic stack probe */ -/* FreeBSD on 32-bit Intel built with GCC */ +/* FreeBSD on 32-bit Intel built with GCC or Clang */ -#elif defined(MPS_PF_FRI3GC) +#elif defined(MPS_PF_FRI3GC) || defined(MPS_PF_FRI3LL) #include "lockix.c" /* Posix locks */ #include "thix.c" /* Posix threading */ @@ -151,7 +151,7 @@ #include "prmci3fr.c" /* 32-bit Intel for FreeBSD mutator context */ #include "span.c" /* generic stack probe */ -/* FreeBSD on 64-bit Intel built with GCC */ +/* FreeBSD on 64-bit Intel built with GCC or Clang */ #elif defined(MPS_PF_FRI6GC) || defined(MPS_PF_FRI6LL) diff --git a/mps/code/mpstd.h b/mps/code/mpstd.h index a0a913b28c2..6147e2a40e7 100644 --- a/mps/code/mpstd.h +++ b/mps/code/mpstd.h @@ -261,6 +261,23 @@ #define MPS_PF_ALIGN 4 +#elif defined(__FreeBSD__) && defined (__i386__) && defined (__GNUC__) \ + && defined(__clang__) +#if defined(CONFIG_PF_STRING) && ! defined(CONFIG_PF_FRI3LL) +#error "specified CONFIG_PF_... inconsistent with detected fri3ll" +#endif +#define MPS_PF_FRI3LL +#define MPS_PF_STRING "fri3ll" +#define MPS_OS_FR +#define MPS_ARCH_I3 +#define MPS_BUILD_LL +#define MPS_T_WORD unsigned long +#define MPS_T_ULONGEST unsigned long +#define MPS_WORD_WIDTH 32 +#define MPS_WORD_SHIFT 5 +#define MPS_PF_ALIGN 4 + + #elif defined(__FreeBSD__) && defined (__x86_64__) && defined (__GNUC__) \ && !defined(__clang__) #if defined(CONFIG_PF_STRING) && ! defined(CONFIG_PF_FRI6GC) diff --git a/mps/code/scan.c b/mps/code/scan.c index d1d2e8b1bf8..b4c4eceae3f 100644 --- a/mps/code/scan.c +++ b/mps/code/scan.c @@ -13,7 +13,14 @@ */ #include "mps.h" -#include "mpstd.h" +#include "mpstd.h" /* for MPS_BUILD_MV */ + + +#ifdef MPS_BUILD_MV +/* MSVC warning 4127 = conditional expression is constant */ +/* Objects to: MPS_SCAN_AREA(1). */ +#pragma warning( disable : 4127 ) +#endif #define MPS_SCAN_AREA(test) \ @@ -36,13 +43,6 @@ } MPS_SCAN_END(ss); -#ifdef MPS_BUILD_MV -/* MSVC warning 4127 = conditional expression is constant */ -/* Objects to deliberate constant conditions in MPS_SCAN_AREA. */ -#pragma warning( disable : 4127 ) -#endif - - /* mps_scan_area -- scan contiguous area of references * * This is a convenience function for scanning the contiguous area diff --git a/mps/configure b/mps/configure index edbc7320304..2aa767cd2d5 100755 --- a/mps/configure +++ b/mps/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for Memory Pool System Kit release/1.114.0. +# Generated by GNU Autoconf 2.69 for Memory Pool System Kit release/1.115.0. # # Report bugs to . # @@ -580,8 +580,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Memory Pool System Kit' PACKAGE_TARNAME='mps-kit' -PACKAGE_VERSION='release/1.114.0' -PACKAGE_STRING='Memory Pool System Kit release/1.114.0' +PACKAGE_VERSION='release/1.115.0' +PACKAGE_STRING='Memory Pool System Kit release/1.115.0' PACKAGE_BUGREPORT='mps-questions@ravenbrook.com' PACKAGE_URL='http://www.ravenbrook.com/project/mps/' @@ -1245,7 +1245,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Memory Pool System Kit release/1.114.0 to adapt to many kinds of systems. +\`configure' configures Memory Pool System Kit release/1.115.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1310,7 +1310,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Memory Pool System Kit release/1.114.0:";; + short | recursive ) echo "Configuration of Memory Pool System Kit release/1.115.0:";; esac cat <<\_ACEOF @@ -1391,7 +1391,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Memory Pool System Kit configure release/1.114.0 +Memory Pool System Kit configure release/1.115.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1693,7 +1693,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Memory Pool System Kit $as_me release/1.114.0, which was +It was created by Memory Pool System Kit $as_me release/1.115.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3524,6 +3524,28 @@ $as_echo "FreeBSD x86_64" >&6; } CPP="$CC -I/usr/local/include -E" PFMCFLAGS="$CFLAGS_GC" ;; + i*86-*-freebsd*/yes) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: FreeBSD x86" >&5 +$as_echo "FreeBSD x86" >&6; } + MPS_OS_NAME=fr + MPS_ARCH_NAME=i3 + MPS_BUILD_NAME=ll + # Need /usr/local/include in order to find sqlite3.h + CFLAGS="-I/usr/local/include" + CPP="$CC -I/usr/local/include -E" + PFMCFLAGS="$CFLAGS_LL" + ;; + amd64-*-freebsd*/no | x86_64-*-freebsd*/no) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: FreeBSD x86_64" >&5 +$as_echo "FreeBSD x86_64" >&6; } + MPS_OS_NAME=fr + MPS_ARCH_NAME=i6 + MPS_BUILD_NAME=ll + # Need /usr/local/include in order to find sqlite3.h + CFLAGS="-I/usr/local/include" + CPP="$CC -I/usr/local/include -E" + PFMCFLAGS="$CFLAGS_LL" + ;; *) as_fn_error $? "MPS does not support this platform out of the box. See manual/build.txt" "$LINENO" 5 esac @@ -4144,7 +4166,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Memory Pool System Kit $as_me release/1.114.0, which was +This file was extended by Memory Pool System Kit $as_me release/1.115.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -4198,7 +4220,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -Memory Pool System Kit config.status release/1.114.0 +Memory Pool System Kit config.status release/1.115.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/mps/configure.ac b/mps/configure.ac index f6a276ad0cc..940ca852cc2 100644 --- a/mps/configure.ac +++ b/mps/configure.ac @@ -117,6 +117,26 @@ case $host/$CLANG in CPP="$CC -I/usr/local/include -E" PFMCFLAGS="$CFLAGS_GC" ;; + i*86-*-freebsd*/yes) + AC_MSG_RESULT([FreeBSD x86]) + MPS_OS_NAME=fr + MPS_ARCH_NAME=i3 + MPS_BUILD_NAME=ll + # Need /usr/local/include in order to find sqlite3.h + CFLAGS="-I/usr/local/include" + CPP="$CC -I/usr/local/include -E" + PFMCFLAGS="$CFLAGS_LL" + ;; + amd64-*-freebsd*/no | x86_64-*-freebsd*/no) + AC_MSG_RESULT([FreeBSD x86_64]) + MPS_OS_NAME=fr + MPS_ARCH_NAME=i6 + MPS_BUILD_NAME=ll + # Need /usr/local/include in order to find sqlite3.h + CFLAGS="-I/usr/local/include" + CPP="$CC -I/usr/local/include -E" + PFMCFLAGS="$CFLAGS_LL" + ;; *) AC_MSG_ERROR([MPS does not support this platform out of the box. See manual/build.txt]) esac