From: <cli...@li...> - 2010-07-04 12:03:57
|
Send clisp-cvs mailing list submissions to cli...@li... To subscribe or unsubscribe via the World Wide Web, visit https://lists.sourceforge.net/lists/listinfo/clisp-cvs or, via email, send a message with subject or body 'help' to cli...@li... You can reach the person managing the list at cli...@li... When replying, please edit your Subject line so it is more specific than "Re: Contents of clisp-cvs digest..." CLISP CVS commits for today Today's Topics: 1. clisp/src ChangeLog,1.7440,1.7441 makemake.in,1.923,1.924 (Bruno Haible) 2. clisp/src lispbibl.d, 1.908, 1.909 spvw.d, 1.537, 1.538 makemake.in, 1.924, 1.925 ChangeLog, 1.7441, 1.7442 (Bruno Haible) 3. clisp/src/m4 mmap.m4,1.6,1.7 (Bruno Haible) 4. clisp/src ChangeLog,1.7442,1.7443 (Bruno Haible) 5. clisp/src aclocal.m4,1.88,1.89 configure,1.267,1.268 (Sam Steingold) ---------------------------------------------------------------------- Message: 1 Date: Sat, 03 Jul 2010 16:37:38 +0000 From: Bruno Haible <ha...@us...> Subject: clisp/src ChangeLog,1.7440,1.7441 makemake.in,1.923,1.924 To: cli...@li... Message-ID: <E1O...@sf...> Update of /cvsroot/clisp/clisp/src In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv28276 Modified Files: ChangeLog makemake.in Log Message: Consistent indentation of if-then-else commands. Index: makemake.in =================================================================== RCS file: /cvsroot/clisp/clisp/src/makemake.in,v retrieving revision 1.923 retrieving revision 1.924 diff -u -d -r1.923 -r1.924 --- makemake.in 24 Jun 2010 19:07:39 -0000 1.923 +++ makemake.in 3 Jul 2010 16:37:36 -0000 1.924 @@ -675,8 +675,10 @@ # "lib-FOO.so: undefined symbol: module__FOO__init_function_1" # $ nm lib-FOO.so | grep module__FOO__init_function_1 # 000008f8 T _Z31module__FOO__init_function_1P8module_t - if [ "${CC_CPLUSPLUS}" = true ]; then with_dynamic_modules=no - else with_dynamic_modules=yes; + if [ "${CC_CPLUSPLUS}" = true ]; then + with_dynamic_modules=no + else + with_dynamic_modules=yes fi elif [ "${with_dynamic_modules}" = yes -a "${CC_CPLUSPLUS}" = true ]; then fail "dynamic modules do not work with C++ because of symbol mangling" @@ -839,7 +841,8 @@ esac elif test -r /etc/redhat-release; then fsstnd=redhat - else fsstnd=gnu_ext + else + fsstnd=gnu_ext fi ;; * ) fsstnd=gnu_ext; ;; esac @@ -1068,7 +1071,8 @@ # http://thread.gmane.org/gmane.comp.gnu.mingw.msys/1707/ if cygpath -v > /dev/null 2>&1; then HEREP=`cygpath -m \`pwd\`` - else HEREP=`pwd` + else + HEREP=`pwd` fi else TEXE='' @@ -1110,7 +1114,8 @@ *64) cpu=sparc64 ;; *) cpu=sparc ;; esac - else cpu=sparc64 + else + cpu=sparc64 fi fi case $TSYS in mips | r4000) @@ -2403,7 +2408,8 @@ elif [ $CROSS = true ]; then echol "# **HACK**: utilities must run locally" echol "UTILCC=cc" -else echol "UTILCC=\$(CC)" +else + echol "UTILCC=\$(CC)" fi UTILCOMPILE="\$(UTILCC) \$(CPPFLAGS) \$(CFLAGS) \$(CLFLAGS) ${EXTRAOBJ}" for util in ${UTILS} ; do @@ -2702,7 +2708,8 @@ XCC_CREATESHARED_=`echo ${XCC_CREATESHARED} | sed -e 's/\\${/\\\\$\\\\(/g' -e 's/}/\\\\)/g'` echotab "`eval \"lib=\$\@; libs=\$^\ \$\(LIBS\); echo ${XCC_CREATESHARED_}\"`" echol -else CLISP_DEF="" +else + CLISP_DEF="" fi FILES="${FILES}${CLISP_DEF}" @@ -2846,7 +2853,8 @@ # <http://article.gmane.org/gmane.lisp.clisp.devel/17589> # <http://article.gmane.org/gmane.lisp.clisp.devel/17895> SAFE_SRCDIR=`echo ${SRCDIR} | sed 's,/,\\\\\\\\,g'` - else SAFE_SRCDIR=${SRCDIR} + else + SAFE_SRCDIR=${SRCDIR} fi echol "interpreted.mem : lisp${LEXE} \$(LISPFILES) config.lisp" @@ -3008,9 +3016,10 @@ # http://article.gmane.org/gmane.lisp.clisp.devel/18967 echotab "(echo '(progn (setf (stream-element-type *standard-input*) (quote (unsigned-byte 8))) (exit 42))' | \$(RUN) -q -M lispinit.mem -; test \$\$? = 42) || exit 1" fi - if [ "${with_unicode}" = no ]; - then seq42="(map (quote (vector (unsigned-byte 8))) (function char-code) \"42\")" - else seq42='(convert-string-to-bytes "42" charset:ascii)' + if [ "${with_unicode}" = no ]; then + seq42="(map (quote (vector (unsigned-byte 8))) (function char-code) \"42\")" + else + seq42='(convert-string-to-bytes "42" charset:ascii)' fi echotab "test \`echo '(setf (stream-element-type *standard-output*) (quote (unsigned-byte 8))) (write-sequence ${seq42} *standard-output*) (setf (stream-element-type *standard-output*) (quote character)) (terpri)' | \$(RUN) -q -M lispinit.mem - ${TRCR}\` = 42 || exit 1" echotab "\$(RM) script.lisp; echo '(+ 11 99)' > script.lisp" @@ -3152,7 +3161,9 @@ lynx -connect_timeout=10 -source ${MYTESTURL} > id-href.map; \ elif curl --version >/dev/null 2>/dev/null ; then \ curl --max-time 10 --silent ${MYTESTURL} > id-href.map; \ - else false; fi }; then + else false; \ + fi; \ + }; then rm -f id-href.map CHECK_DEPS=${CHECK_DEPS}" check-doc" echol "check-doc: clisp${TEXE} base" @@ -3287,14 +3298,16 @@ # point it to modules/... in the original source tree echotab "if `newer configure config.status` ; then ( cd \$@ ; \$(RMRF) gllib;\\" echotab " cache="'`'"echo \$@/ | sed -e 's,[^/][^/]*//*,../,g'"'`'"config.cache; \\" -echotab " if test -f \$\${cache} ; then . \$\${cache}; \\" +echotab " if test -f \$\${cache} ; then \\" +echotab " . \$\${cache}; \\" for var in ${PRECIOUS_VARS}; do echotab " if test \"\$\${ac_cv_env_${var}_set}\" = set; then ${var}=\"\$\${ac_cv_env_${var}_value}\"; export ${var}; fi; \\" done # we must use $(SHELL) for sub-configures because when the top CONFIG_SHELL # is bash, config.cache may be unparsable with sh on Solaris echotab " \$(SHELL) \$\$m/configure --with-clisp=\"${HEREP}/clisp -K boot ${someflags}\" --cache-file=\$\${cache} --srcdir=\$\$m \$(MODULE_CONFIGURE_FLAGS);\\" -echotab " else \$(SHELL) \$\$m/configure --srcdir=\$\$m \$(MODULE_CONFIGURE_FLAGS); \\" +echotab " else \\" +echotab " \$(SHELL) \$\$m/configure --srcdir=\$\$m \$(MODULE_CONFIGURE_FLAGS); \\" echotab " fi ) ;\\" echotab "fi; \\" # srcdir must be correct in Makefile because clisp-link calls link.sh @@ -3336,9 +3349,10 @@ echol "base-mod-check : clisp${TEXE} ${TESTSDIR} # base" modcheck "./clisp" BASE_MODULES echol "full-mod-check : clisp${TEXE} ${TESTSDIR} # full" -if [ "${with_dynamic_modules}" = no ] -then modcheck "./clisp -K full" MODULES -else modcheck "./clisp" MODULES +if [ "${with_dynamic_modules}" = no ]; then + modcheck "./clisp -K full" MODULES +else + modcheck "./clisp" MODULES fi manual_print='' @@ -3425,9 +3439,10 @@ case $f in clisp.html | clisp.1 | clisp-1.html | \ clisp-link.html | clisp-link.1 | clisp-link-1.html ) - if [ $HOS = win32 ]; - then platform_line=" | sed -e \"s,@PLATFORM@,${TSYS},g\"" - else platform_line=" | sed -e \"s,@PLATFORM@,${host},g\"" + if [ $HOS = win32 ]; then + platform_line=" | sed -e \"s,@PLATFORM@,${TSYS},g\"" + else + platform_line=" | sed -e \"s,@PLATFORM@,${host},g\"" fi sourcedir=${SRCDOCDIR} ;; *) sourcedir=${SRCDIR} ;; @@ -3805,7 +3820,9 @@ else echotab " if test -f base/\$\$b; then \\" echotab " ${HLN} base/\$\$b \$(FULLTOPDIR)/${dir}/; \\" - echotab " else ${HLN} \$\$f \$(FULLTOPDIR)/${dir}/; fi; fi ;; \\" + echotab " else \\" + echotab " ${HLN} \$\$f \$(FULLTOPDIR)/${dir}/; fi; \\" + echotab " fi ;; \\" fi echotab "esac ; done" if test -n "$BINARY_DISTRIB"; then Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.7440 retrieving revision 1.7441 diff -u -d -r1.7440 -r1.7441 --- ChangeLog 2 Jul 2010 21:21:31 -0000 1.7440 +++ ChangeLog 3 Jul 2010 16:37:36 -0000 1.7441 @@ -1,3 +1,7 @@ +2010-07-03 Bruno Haible <br...@cl...> + + * makemake.in: Consistent indentation of if-then-else commands. + 2010-07-02 Sam Steingold <sd...@gn...> * init.lisp (load): add RETRY restart to SKIP and STOP ------------------------------ Message: 2 Date: Sat, 03 Jul 2010 16:54:20 +0000 From: Bruno Haible <ha...@us...> Subject: clisp/src lispbibl.d, 1.908, 1.909 spvw.d, 1.537, 1.538 makemake.in, 1.924, 1.925 ChangeLog, 1.7441, 1.7442 To: cli...@li... Message-ID: <E1O...@sf...> Update of /cvsroot/clisp/clisp/src In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv31392 Modified Files: lispbibl.d spvw.d makemake.in ChangeLog Log Message: Support for MacOS X in 64-bit mode. Index: spvw.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/spvw.d,v retrieving revision 1.537 retrieving revision 1.538 diff -u -d -r1.537 -r1.538 --- spvw.d 30 Jun 2010 16:57:43 -0000 1.537 +++ spvw.d 3 Jul 2010 16:54:18 -0000 1.538 @@ -1,6 +1,6 @@ /* * (SPVW = Speicherverwaltung): Memory Management for CLISP - * Bruno Haible 1990-2008 + * Bruno Haible 1990-2010 * Sam Steingold 1998-2010 * German comments translated into English: Stefan Kain 2002-03-24 @@ -3007,6 +3007,11 @@ #elif defined(UNIX_LINUX) && defined(WIDE_SOFT) && !defined(SPARC) mem.heaps[0].heap_limit = 0x2E000000; /* room until at least 0x40000000 */ mem.heaps[1].heap_limit = 0x7F000000; /* room until at least 0x64000000 */ + #elif defined(UNIX_DARWIN) && defined(WIDE_HARD) + /* On MacOS X 10.5 in 64-bit mode, the available addresses for mmap and + mach_vm_allocate are in the range 2^33...2^47. */ + mem.heaps[0].heap_limit = 0x000200000000UL; + mem.heaps[1].heap_limit = 0x400000000000UL; #else #ifdef TYPECODES var aint end = bitm(oint_addr_len+addr_shift); @@ -3034,6 +3039,13 @@ mem.heaps[0].heap_hardlimit = 0x40000000; mem.heaps[1].heap_limit = 0x64000000; /* room until at least 0x7F000000 */ mem.heaps[1].heap_hardlimit = 0x7F000000; + #elif defined(UNIX_DARWIN) && defined(WIDE_HARD) + /* On MacOS X 10.5 in 64-bit mode, the available addresses for mmap and + mach_vm_allocate are in the range 2^33...2^47. */ + mem.heaps[0].heap_limit = 0x000200000000UL; /* room until 0x200000000000 */ + mem.heaps[0].heap_hardlimit = 0x200000000000UL; + mem.heaps[1].heap_limit = 0x200000000000UL; /* room until at least 0x400000000000 */ + mem.heaps[1].heap_hardlimit = 0x400000000000UL; #elif defined(TYPECODES) && (oint_addr_len+addr_shift > pointer_bitsize) #ifdef UNIX_DARWIN /* 'vmmap' shows that there is room between the malloc area at 0x01...... or 0x02...... Index: makemake.in =================================================================== RCS file: /cvsroot/clisp/clisp/src/makemake.in,v retrieving revision 1.924 retrieving revision 1.925 diff -u -d -r1.924 -r1.925 --- makemake.in 3 Jul 2010 16:37:36 -0000 1.924 +++ makemake.in 3 Jul 2010 16:54:18 -0000 1.925 @@ -1124,6 +1124,12 @@ esac if [ "$host_cpu" = i386 -o "$host_cpu" = i486 -o "$host_cpu" = i586 -o "$host_cpu" = i686 -o "$host_cpu" = i786 -o $TSYS = i386 -o $TSYS = i486 -o $TSYS = i586 -o $TSYS = i686 -o $TSYS = i786 -o $TOS = win32 ] ; then cpu=i386 + # On MacOS X, 'uname -m' says i386, even when gcc runs in 64-bit mode. + if [ "${XCC_GCC}" = true ]; then + case `${XCC} -print-multi-os-directory` in + x86_64) cpu=x86_64 ;; + esac + fi fi case "$host_cpu" in hppa*) cpu=hppa ;; Index: lispbibl.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/lispbibl.d,v retrieving revision 1.908 retrieving revision 1.909 diff -u -d -r1.908 -r1.909 --- lispbibl.d 15 Jun 2010 22:10:46 -0000 1.908 +++ lispbibl.d 3 Jul 2010 16:54:18 -0000 1.909 @@ -1,6 +1,6 @@ /* * Main include-file for CLISP - * Bruno Haible 1990-2009 + * Bruno Haible 1990-2010 * Marcus Daniels 11.11.1994 * Sam Steingold 1998-2010 * German comments translated into English: Stefan Kain 2001-09-24 @@ -1913,12 +1913,13 @@ #endif #if !(defined(TYPECODES) || defined(HEAPCODES)) - /* Choose typecodes on 64-bit machines (because there's enough room for type - bits), but not on 32-bit machines (because a 16 MB limit is ridiculous + /* Choose TYPECODES on 64-bit machines (because there's enough room for type + bits), except on Darwin which has a restricted range of mmapable addresses. + Choose HEAPCODES on 32-bit machines (because a 16 MB limit is ridiculous today), except if the CPU cannot address more than 16 MB anyway. HEAPCODES will normally not work if alignof(subr_t) = alignof(long) < 4, but with egcs-1.1 or newer we can force alignof(subr_t) = 4. */ - #if defined(WIDE_HARD) || defined(WIDE_SOFT) || defined(MC68000) || ((alignment_long < 4) && !defined(GNU)) + #if (defined(WIDE_HARD) && !defined(UNIX_DARWIN)) || defined(WIDE_SOFT) || defined(MC68000) || ((alignment_long < 4) && !defined(GNU)) #define TYPECODES #else #define HEAPCODES @@ -2796,15 +2797,21 @@ #endif #if defined(AMD64) /* UNIX_LINUX: - CODE_ADDRESS_RANGE 0x0000000000000000UL - MALLOC_ADDRESS_RANGE 0x0000000000000000UL - SHLIB_ADDRESS_RANGE 0x00000034F5000000UL - STACK_ADDRESS_RANGE 0x0000007FBF000000UL - UNIX_FREEBSD - CODE_ADDRESS_RANGE 0x0000000000000000UL - MALLOC_ADDRESS_RANGE 0x0000000000000000UL - SHLIB_ADDRESS_RANGE 0x0000000800000000UL - STACK_ADDRESS_RANGE 0x00007FFFFF000000UL + CODE_ADDRESS_RANGE 0x0000000000000000UL + MALLOC_ADDRESS_RANGE 0x0000000000000000UL + SHLIB_ADDRESS_RANGE 0x00000034F5000000UL + STACK_ADDRESS_RANGE 0x0000007FBF000000UL + UNIX_FREEBSD: + CODE_ADDRESS_RANGE 0x0000000000000000UL + MALLOC_ADDRESS_RANGE 0x0000000000000000UL + SHLIB_ADDRESS_RANGE 0x0000000800000000UL + STACK_ADDRESS_RANGE 0x00007FFFFF000000UL + UNIX_DARWIN: + Virtual address limit: 2^33..2^47. + CODE_ADDRESS_RANGE 0x0000000100000000UL + MALLOC_ADDRESS_RANGE 0x0000000100000000UL + SHLIB_ADDRESS_RANGE 0x00007FFF70000000UL + STACK_ADDRESS_RANGE 0x00007FFF5F000000UL Bits 63..48 = type code, Bits 47..0 = address */ #define oint_type_shift 48 #define oint_type_len 16 Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.7441 retrieving revision 1.7442 diff -u -d -r1.7441 -r1.7442 --- ChangeLog 3 Jul 2010 16:37:36 -0000 1.7441 +++ ChangeLog 3 Jul 2010 16:54:18 -0000 1.7442 @@ -1,5 +1,13 @@ 2010-07-03 Bruno Haible <br...@cl...> + Support for MacOS X in 64-bit mode. + * lispbibl.d (HEAPCODES): Define by default on MacOS X in 64-bit mode. + * spvw.d (init_memory): Hardcode bounds for mmap on MacOS X in + 64-bit mode. + * makemake.in (cpu): On MacOS X in 64-bit mode, set it to x86_64. + +2010-07-03 Bruno Haible <br...@cl...> + * makemake.in: Consistent indentation of if-then-else commands. 2010-07-02 Sam Steingold <sd...@gn...> ------------------------------ Message: 3 Date: Sat, 03 Jul 2010 17:24:22 +0000 From: Bruno Haible <ha...@us...> Subject: clisp/src/m4 mmap.m4,1.6,1.7 To: cli...@li... Message-ID: <E1O...@sf...> Update of /cvsroot/clisp/clisp/src/m4 In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv4999/m4 Modified Files: mmap.m4 Log Message: Support for MacOS X in 64-bit mode. Index: mmap.m4 =================================================================== RCS file: /cvsroot/clisp/clisp/src/m4/mmap.m4,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- mmap.m4 31 May 2008 14:55:50 -0000 1.6 +++ mmap.m4 3 Jul 2010 17:24:19 -0000 1.7 @@ -1,5 +1,5 @@ dnl -*- Autoconf -*- -dnl Copyright (C) 1993-2008 Free Software Foundation, Inc. +dnl Copyright (C) 1993-2010 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program @@ -53,11 +53,17 @@ #define my_size 8192 /* hope that 8192 is a multiple of the page size */ /* i*8 KB for i=1..64 gives a total of 16.25 MB, which is close to what we need */ #endif +#if defined(__APPLE__) && defined(__MACH__) && defined(__x86_64__) +/* On MacOS X in 64-bit mode, mmapable addresses start at 2^33. */ +#define base_address 0x200000000UL +#else +#define base_address 0 +#endif {long i; #define i_ok(i) ((i) & (bits_to_avoid >> my_shift) == 0) for (i=my_low; i<=my_high; i++) if (i_ok(i)) - { caddr_t addr = (caddr_t)(i << my_shift); + { caddr_t addr = (caddr_t)(base_address + (i << my_shift)); /* Check for 8 MB, not 16 MB. This is more likely to work on Solaris 2. */ #if bits_to_avoid long size = i*my_size; @@ -66,7 +72,7 @@ #endif if (mmap(addr,size,PROT_READ|PROT_WRITE,flags|MAP_FIXED,fd,0) == (void*)-1) exit(1); } -#define x(i) *(unsigned char *) ((i<<my_shift) + (i*i)) +#define x(i) *(unsigned char *) (base_address + (i<<my_shift) + (i*i)) #define y(i) (unsigned char)((3*i-4)*(7*i+3)) for (i=my_low; i<=my_high; i++) if (i_ok(i)) { x(i) = y(i); } for (i=my_high; i>=my_low; i--) if (i_ok(i)) { if (x(i) != y(i)) exit(1); } ------------------------------ Message: 4 Date: Sat, 03 Jul 2010 17:24:22 +0000 From: Bruno Haible <ha...@us...> Subject: clisp/src ChangeLog,1.7442,1.7443 To: cli...@li... Message-ID: <E1O...@sf...> Update of /cvsroot/clisp/clisp/src In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv4999 Modified Files: ChangeLog Log Message: Support for MacOS X in 64-bit mode. Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.7442 retrieving revision 1.7443 diff -u -d -r1.7442 -r1.7443 --- ChangeLog 3 Jul 2010 16:54:18 -0000 1.7442 +++ ChangeLog 3 Jul 2010 17:24:20 -0000 1.7443 @@ -1,6 +1,8 @@ 2010-07-03 Bruno Haible <br...@cl...> Support for MacOS X in 64-bit mode. + * m4/mmap.m4 (CL_MMAP): On MacOS X in 64-bit mode, use a base address, + so that the test succeeds. * lispbibl.d (HEAPCODES): Define by default on MacOS X in 64-bit mode. * spvw.d (init_memory): Hardcode bounds for mmap on MacOS X in 64-bit mode. ------------------------------ Message: 5 Date: Sun, 04 Jul 2010 04:27:42 +0000 From: Sam Steingold <sd...@us...> Subject: clisp/src aclocal.m4,1.88,1.89 configure,1.267,1.268 To: cli...@li... Message-ID: <E1O...@sf...> Update of /cvsroot/clisp/clisp/src In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv11065/src Modified Files: aclocal.m4 configure Log Message: regenerate for mmap (MacOS X in 64-bit mode) Index: aclocal.m4 =================================================================== RCS file: /cvsroot/clisp/clisp/src/aclocal.m4,v retrieving revision 1.88 retrieving revision 1.89 diff -u -d -r1.88 -r1.89 --- aclocal.m4 24 Jun 2010 18:00:13 -0000 1.88 +++ aclocal.m4 4 Jul 2010 04:27:39 -0000 1.89 @@ -20799,7 +20799,7 @@ )]) dnl -*- Autoconf -*- -dnl Copyright (C) 1993-2008 Free Software Foundation, Inc. +dnl Copyright (C) 1993-2010 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program @@ -20853,11 +20853,17 @@ #define my_size 8192 /* hope that 8192 is a multiple of the page size */ /* i*8 KB for i=1..64 gives a total of 16.25 MB, which is close to what we need */ #endif +#if defined(__APPLE__) && defined(__MACH__) && defined(__x86_64__) +/* On MacOS X in 64-bit mode, mmapable addresses start at 2^33. */ +#define base_address 0x200000000UL +#else +#define base_address 0 +#endif {long i; #define i_ok(i) ((i) & (bits_to_avoid >> my_shift) == 0) for (i=my_low; i<=my_high; i++) if (i_ok(i)) - { caddr_t addr = (caddr_t)(i << my_shift); + { caddr_t addr = (caddr_t)(base_address + (i << my_shift)); /* Check for 8 MB, not 16 MB. This is more likely to work on Solaris 2. */ #if bits_to_avoid long size = i*my_size; @@ -20866,7 +20872,7 @@ #endif if (mmap(addr,size,PROT_READ|PROT_WRITE,flags|MAP_FIXED,fd,0) == (void*)-1) exit(1); } -#define x(i) *(unsigned char *) ((i<<my_shift) + (i*i)) +#define x(i) *(unsigned char *) (base_address + (i<<my_shift) + (i*i)) #define y(i) (unsigned char)((3*i-4)*(7*i+3)) for (i=my_low; i<=my_high; i++) if (i_ok(i)) { x(i) = y(i); } for (i=my_high; i>=my_low; i--) if (i_ok(i)) { if (x(i) != y(i)) exit(1); } Index: configure =================================================================== RCS file: /cvsroot/clisp/clisp/src/configure,v retrieving revision 1.267 retrieving revision 1.268 diff -u -d -r1.267 -r1.268 --- configure 24 Jun 2010 18:00:13 -0000 1.267 +++ configure 4 Jul 2010 04:27:39 -0000 1.268 @@ -27247,11 +27247,17 @@ #define my_size 8192 /* hope that 8192 is a multiple of the page size */ /* i*8 KB for i=1..64 gives a total of 16.25 MB, which is close to what we need */ #endif +#if defined(__APPLE__) && defined(__MACH__) && defined(__x86_64__) +/* On MacOS X in 64-bit mode, mmapable addresses start at 2^33. */ +#define base_address 0x200000000UL +#else +#define base_address 0 +#endif {long i; #define i_ok(i) ((i) & (bits_to_avoid >> my_shift) == 0) for (i=my_low; i<=my_high; i++) if (i_ok(i)) - { caddr_t addr = (caddr_t)(i << my_shift); + { caddr_t addr = (caddr_t)(base_address + (i << my_shift)); /* Check for 8 MB, not 16 MB. This is more likely to work on Solaris 2. */ #if bits_to_avoid long size = i*my_size; @@ -27260,7 +27266,7 @@ #endif if (mmap(addr,size,PROT_READ|PROT_WRITE,flags|MAP_FIXED,fd,0) == (void*)-1) exit(1); } -#define x(i) *(unsigned char *) ((i<<my_shift) + (i*i)) +#define x(i) *(unsigned char *) (base_address + (i<<my_shift) + (i*i)) #define y(i) (unsigned char)((3*i-4)*(7*i+3)) for (i=my_low; i<=my_high; i++) if (i_ok(i)) { x(i) = y(i); } for (i=my_high; i>=my_low; i--) if (i_ok(i)) { if (x(i) != y(i)) exit(1); } ------------------------------ ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first ------------------------------ _______________________________________________ clisp-cvs mailing list cli...@li... https://lists.sourceforge.net/lists/listinfo/clisp-cvs End of clisp-cvs Digest, Vol 51, Issue 3 **************************************** |