Raymond Toy pushed to branch issue-355-solaris-x86-fp-trap-handler at cmucl / cmucl
Commits:
-
39c8b616
by Raymond Toy at 2024-09-01T14:24:21+00:00
-
c1514a66
by Raymond Toy at 2024-09-01T14:24:22+00:00
-
4fce8c07
by Raymond Toy at 2024-09-01T15:13:49+00:00
-
40e553b6
by Raymond Toy at 2024-09-01T15:13:50+00:00
-
e20f2727
by Raymond Toy at 2024-09-09T19:04:53+00:00
-
bca25992
by Raymond Toy at 2024-09-09T19:04:58+00:00
-
56f2d8fd
by Raymond Toy at 2024-09-09T20:36:09+00:00
-
c8020846
by Raymond Toy at 2024-09-09T20:36:12+00:00
-
133f2970
by Raymond Toy at 2024-09-09T13:42:36-07:00
6 changed files:
- .gitlab-ci.yml
- bin/make-dist.sh
- bin/make-extra-dist.sh
- bin/make-main-dist.sh
- bin/make-src-dist.sh
- src/compiler/x86/float-sse2.lisp
Changes:
... | ... | @@ -98,6 +98,18 @@ linux:test: |
98 | 98 | script:
|
99 | 99 | - bin/run-unit-tests.sh -l dist/bin/lisp 2>&1 | tee test.log
|
100 | 100 | |
101 | +linux:exec-test:
|
|
102 | + stage: test
|
|
103 | + tags:
|
|
104 | + - linux
|
|
105 | + needs:
|
|
106 | + - job: linux:build
|
|
107 | + artifacts: true
|
|
108 | + script:
|
|
109 | + # Create an executable and test it by printing the version.
|
|
110 | + - dist/bin/lisp -eval '(save-lisp "saved-lisp-executable" :executable t)'
|
|
111 | + - ./saved-lisp-executable --version
|
|
112 | + |
|
101 | 113 | linux:cross-test:
|
102 | 114 | stage: test
|
103 | 115 | tags:
|
... | ... | @@ -202,6 +214,18 @@ osx:test: |
202 | 214 | - echo LANG = $LANG
|
203 | 215 | - bin/run-unit-tests.sh -l dist/bin/lisp 2>&1 | tee test.log
|
204 | 216 | |
217 | +osx:exec-test:
|
|
218 | + stage: test
|
|
219 | + tags:
|
|
220 | + - macos-virtualbox
|
|
221 | + needs:
|
|
222 | + - job: osx:build
|
|
223 | + artifacts: true
|
|
224 | + script:
|
|
225 | + # Create an executable and test it by printing the version.
|
|
226 | + - dist/bin/lisp -eval '(save-lisp "saved-lisp-executable" :executable t)'
|
|
227 | + - ./saved-lisp-executable --version
|
|
228 | +
|
|
205 | 229 | osx:ansi-test:
|
206 | 230 | stage: ansi-test
|
207 | 231 | tags:
|
... | ... | @@ -12,10 +12,10 @@ |
12 | 12 | # $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/tools/make-dist.sh,v 1.20 2011/04/11 16:34:49 rtoy Exp $
|
13 | 13 | |
14 | 14 | usage() {
|
15 | - echo "make-dist.sh: [-hbg] [-G group] [-O owner] [-I destdir] [-M mandir] [-A arch] [-V version] [-o OS] dir"
|
|
15 | + echo "make-dist.sh: [-h] [-C compress] [-G group] [-O owner] [-I destdir] [-M mandir] [-A arch] [-V version] [-o OS] dir"
|
|
16 | 16 | echo " -h This help"
|
17 | - echo " -b Use bzip2 compression"
|
|
18 | - echo " -g Use gzip compression"
|
|
17 | + echo " -C compress Compression method to use for the tar archives. Must be one of"
|
|
18 | + echo " bzip2, xz, or gzip. The default depends on the OS"
|
|
19 | 19 | echo " -G group Group to use"
|
20 | 20 | echo " -O owner Owner to use"
|
21 | 21 | echo " -I destdir Install directly to given directory instead of creating a tarball"
|
... | ... | @@ -109,15 +109,20 @@ if expr "X${GIT_HASH}" : 'X[0-9][0-9][a-f]' > /dev/null; then |
109 | 109 | DEFAULT_VERSION="${GIT_HASH}"
|
110 | 110 | fi
|
111 | 111 | |
112 | -while getopts "G:O:I:M:bghSA:o:V:?" arg
|
|
112 | +# Default compression is -J (xz). These variables are passed to the
|
|
113 | +# other scripts via the environmen, so export them.
|
|
114 | +COMPRESS=-J
|
|
115 | +COMPRESS_EXT=xz
|
|
116 | +COMPRESS_NAME=xz
|
|
117 | + |
|
118 | +while getopts "C:G:O:I:M:hSA:o:V:?" arg
|
|
113 | 119 | do
|
114 | 120 | case $arg in
|
121 | + C) COMPRESS_ARG=$OPTARG ;;
|
|
115 | 122 | G) GROUP=$OPTARG ;;
|
116 | 123 | O) OWNER=$OPTARG ;;
|
117 | 124 | I) INSTALL_DIR=$OPTARG ;;
|
118 | 125 | M) MANDIR=$OPTARG ;;
|
119 | - b) ENABLE_BZIP=-b ;;
|
|
120 | - g) ENABLE_GZIP=-g ;;
|
|
121 | 126 | S) MAKE_SRC_DIST=yes ;;
|
122 | 127 | A) ARCH=$OPTARG ;;
|
123 | 128 | o) OS=$OPTARG ;;
|
... | ... | @@ -133,6 +138,27 @@ if [ $# -lt 1 ]; then |
133 | 138 | usage
|
134 | 139 | fi
|
135 | 140 | |
141 | +# Verify that the -C option is valid
|
|
142 | +if [ -n "$COMPRESS_ARG" ]; then
|
|
143 | + case $COMPRESS_ARG in
|
|
144 | + bzip2)
|
|
145 | + COMPRESS=-j
|
|
146 | + COMPRESS_EXT=bz2
|
|
147 | + COMPRESS_NAME=bzip2
|
|
148 | + ;;
|
|
149 | + xz) # Defaults work
|
|
150 | + ;;
|
|
151 | + gzip)
|
|
152 | + COMPRESS=-z
|
|
153 | + COMPRESS_EXT=gz
|
|
154 | + COMPRESS_NAME=gzip
|
|
155 | + ;;
|
|
156 | + *) echo '-C option "'$COMPRESS_ARG'" must be one of bzip2, xz or gzip'
|
|
157 | + exit 1
|
|
158 | + ;;
|
|
159 | + esac
|
|
160 | +fi
|
|
161 | + |
|
136 | 162 | if [ -z "$VERSION" ]; then
|
137 | 163 | # If a default version exists, use it. Otherwise this is an
|
138 | 164 | # error---at least one of these must not be empty.
|
... | ... | @@ -171,21 +197,17 @@ fi |
171 | 197 | echo cmucl-$VERSION-$ARCH-$OS
|
172 | 198 | ROOT=`dirname $0`
|
173 | 199 | |
174 | -# If no compression options given, default to bzip
|
|
175 | -if [ -z "$ENABLE_GZIP" -a -z "$ENABLE_BZIP" ]; then
|
|
176 | - ENABLE_BZIP="-b"
|
|
177 | -fi
|
|
178 | - |
|
179 | -OPTIONS="${GROUP:+ -G ${GROUP}} ${OWNER:+ -O ${OWNER}} ${INSTALL_DIR:+ -I ${INSTALL_DIR}} $ENABLE_GZIP $ENABLE_BZIP"
|
|
200 | +GTAR_OPTS="-t ${GTAR:-tar}"
|
|
201 | +EXTRA_OPTS="${GROUP:+ -G ${GROUP}} ${OWNER:+ -O ${OWNER}}"
|
|
202 | +INSTALL_OPTS="${INSTALL_DIR:+ -I ${INSTALL_DIR}}"
|
|
180 | 203 | MANDIR="${MANDIR:+ -M ${MANDIR}}"
|
204 | +OPTIONS="${GTAR_OPTS} ${EXTRA_OPTS} ${INSTALL_OPTS} ${MANDIR}"
|
|
181 | 205 | |
206 | +set -x
|
|
182 | 207 | echo Creating distribution for $ARCH $OS
|
183 | -$ROOT/make-main-dist.sh $OPTIONS ${MANDIR} $TARGET $VERSION $ARCH $OS || exit 1
|
|
184 | -$ROOT/make-extra-dist.sh $OPTIONS $TARGET $VERSION $ARCH $OS || exit 2
|
|
208 | +$ROOT/make-main-dist.sh -C $COMPRESS -E $COMPRESS_EXT $OPTIONS ${MANDIR} $TARGET $VERSION $ARCH $OS || exit 1
|
|
209 | +$ROOT/make-extra-dist.sh -C $COMPRESS -E $COMPRESS_EXT $OPTIONS $TARGET $VERSION $ARCH $OS || exit 2
|
|
185 | 210 | |
186 | 211 | if [ X"$MAKE_SRC_DIST" = "Xyes" ]; then
|
187 | - # If tar is not GNU tar, set the environment variable GTAR to
|
|
188 | - # point to GNU tar.
|
|
189 | - OPTIONS="${INSTALL_DIR:+ -I ${INSTALL_DIR}} $ENABLE_GZIP $ENABLE_BZIP"
|
|
190 | - $ROOT/make-src-dist.sh $OPTIONS -t ${GTAR:-tar} $VERSION
|
|
212 | + $ROOT/make-src-dist.sh -C $COMPRESS -E $COMPRESS_EXT ${GTAR_OPTS} ${INSTALL_OPTS} $VERSION
|
|
191 | 213 | fi |
1 | 1 | #!/bin/sh
|
2 | 2 | |
3 | -while getopts "G:O:I:bgh?" arg
|
|
3 | +usage() {
|
|
4 | + cat <<EOF
|
|
5 | +`basename $0` -C option -E ext [-t tar] [-I destdir] [-G group] [-O owner]
|
|
6 | + -h This help
|
|
7 | + -? This help
|
|
8 | + -t tar Tar program to use
|
|
9 | + -C option Tar option for compressing the tarball; required.
|
|
10 | + -E ext Extension to use for the tarball. Must be consistent with
|
|
11 | + -C option. Required.
|
|
12 | + -I destdir Install directly to given directory instead of creating a tarball
|
|
13 | + -G group Group to use
|
|
14 | + -O owner Owner to use
|
|
15 | + |
|
16 | +This is generally called by make-dist.sh and not normally invoked by the user
|
|
17 | + |
|
18 | +Create a tarball of the extra components for cmucl. This includes things like
|
|
19 | +CLX; Hemlock; CLM; contrib library not already included in the main
|
|
20 | +distribution; locale messages.
|
|
21 | +EOF
|
|
22 | + exit 1
|
|
23 | +}
|
|
24 | + |
|
25 | +GTAR=tar
|
|
26 | +while getopts "C:E:G:O:I:t:h?" arg
|
|
4 | 27 | do
|
5 | 28 | case $arg in
|
29 | + C) COMPRESS=$OPTARG ;;
|
|
30 | + E) COMPRESS_EXT=$OPTARG ;;
|
|
6 | 31 | G) GROUP="-g $OPTARG" ;;
|
7 | 32 | O) OWNER="-o $OPTARG" ;;
|
8 | 33 | I) INSTALL_DIR=$OPTARG ;;
|
9 | - b) ENABLE_BZIP=-b ;;
|
|
10 | - g) ENABLE_GZIP=-g ;;
|
|
34 | + t) GTAR=$OPTARG ;;
|
|
11 | 35 | h | \?) usage; exit 1 ;;
|
12 | 36 | esac
|
13 | 37 | done
|
14 | 38 | |
15 | 39 | shift `expr $OPTIND - 1`
|
16 | 40 | |
41 | +# -C and -E options are required
|
|
42 | +if [ -z "$COMPRESS" ]; then
|
|
43 | + echo "-C option is required"
|
|
44 | + exit 2
|
|
45 | +fi
|
|
46 | + |
|
47 | +if [ -z "$COMPRESS_EXT" ]; then
|
|
48 | + echo "-E option is required"
|
|
49 | + exit 2
|
|
50 | +fi
|
|
51 | + |
|
17 | 52 | if [ "$1" = "" -o "$2" = "" -o "$3" = "" -o "$4" = "" ]
|
18 | 53 | then
|
19 | - echo "Usage: $0 target-directory version arch os"
|
|
20 | - exit 1
|
|
54 | + usage
|
|
21 | 55 | fi
|
22 | 56 | |
23 | 57 | if [ ! -d "$1" ]
|
... | ... | @@ -134,16 +168,7 @@ done |
134 | 168 | if [ -z "$INSTALL_DIR" ]; then
|
135 | 169 | sync ; sleep 1 ; sync ; sleep 1 ; sync
|
136 | 170 | echo Tarring extra components
|
137 | - if [ -n "$ENABLE_GZIP" ]; then
|
|
138 | - echo " Compressing with gzip"
|
|
139 | - ( cd $DESTDIR >/dev/null ; tar cf - lib ) | \
|
|
140 | - gzip -c > cmucl-$VERSION-$ARCH-$OS.extra.tar.gz
|
|
141 | - fi
|
|
142 | - if [ -n "$ENABLE_BZIP" ]; then
|
|
143 | - echo " Compressing with bzip"
|
|
144 | - ( cd $DESTDIR >/dev/null ; tar cf - lib ) | \
|
|
145 | - bzip2 > cmucl-$VERSION-$ARCH-$OS.extra.tar.bz2
|
|
146 | - fi
|
|
171 | + $GTAR -C $DESTDIR $COMPRESS -cf cmucl-$VERSION-$ARCH-$OS.extra.tar.$COMPRESS_EXT lib
|
|
147 | 172 | |
148 | 173 | echo Cleaning $DESTDIR
|
149 | 174 | [ -d $DESTDIR ] && rm -rf $DESTDIR
|
1 | 1 | #!/bin/sh
|
2 | 2 | |
3 | -# set -x
|
|
4 | -while getopts "G:O:I:M:bgh?" arg
|
|
3 | +usage() {
|
|
4 | + cat <<EOF
|
|
5 | +`basename $0` -C option -E ext [-h?] [-t tar][-I destdir] [-G group] [-O owner] [-M mandir]
|
|
6 | + target-directory version arch os
|
|
7 | + -h This help
|
|
8 | + -? This help
|
|
9 | + -t tar Tar program to use
|
|
10 | + -C option Tar option for compressing the tarball; required.
|
|
11 | + -E ext Extension to use for the tarball. Must be consistent with
|
|
12 | + -C option. Required.
|
|
13 | + -I destdir Install directly to given directory instead of creating a tarball
|
|
14 | + -G group Group to use
|
|
15 | + -O owner Owner to use
|
|
16 | + -M mandir Install manpages in this subdirectory. Default is man/man1
|
|
17 | + |
|
18 | +This is generally called by make-dist.sh and not normally invoked by the user
|
|
19 | + |
|
20 | +Create a tarball consisting of the main components needed to distribute
|
|
21 | +a binary installation of cmucl. This includes the C executable and support
|
|
22 | +libraries; the subsystems like Gray streams, and simple streams; external
|
|
23 | +formats; contribs like asdf and defsystem; manpages and READMEs."
|
|
24 | +EOF
|
|
25 | + exit 1
|
|
26 | +}
|
|
27 | +
|
|
28 | +GTAR=tar
|
|
29 | +while getopts "C:E:G:O:I:M:t:h?" arg
|
|
5 | 30 | do
|
6 | 31 | case $arg in
|
32 | + C) COMPRESS=$OPTARG ;;
|
|
33 | + E) COMPRESS_EXT=$OPTARG ;;
|
|
7 | 34 | G) GROUP="-g $OPTARG" ;;
|
8 | 35 | O) OWNER="-o $OPTARG" ;;
|
9 | 36 | I) INSTALL_DIR=$OPTARG ;;
|
10 | 37 | M) MANDIR=$OPTARG ;;
|
11 | - b) ENABLE_BZIP=-b ;;
|
|
12 | - g) ENABLE_GZIP=-g ;;
|
|
38 | + t) GTAR=$OPTARG ;;
|
|
13 | 39 | h | \?) usage; exit 1 ;;
|
14 | 40 | esac
|
15 | 41 | done
|
16 | 42 | |
17 | 43 | shift `expr $OPTIND - 1`
|
18 | 44 | |
45 | +# -C and -E options are required
|
|
46 | +if [ -z "$COMPRESS" ]; then
|
|
47 | + echo "-C option is required"
|
|
48 | + exit 2
|
|
49 | +fi
|
|
50 | + |
|
51 | +if [ -z "$COMPRESS_EXT" ]; then
|
|
52 | + echo "-E option is required"
|
|
53 | + exit 2
|
|
54 | +fi
|
|
55 | + |
|
19 | 56 | if [ "$1" = "" -o "$2" = "" -o "$3" = "" -o "$4" = "" ]
|
20 | 57 | then
|
21 | - echo "Usage: $0 target-directory version arch os"
|
|
22 | - exit 1
|
|
58 | + usage
|
|
23 | 59 | fi
|
24 | 60 | |
25 | 61 | if [ ! -d "$1" ]
|
... | ... | @@ -178,16 +214,7 @@ fi |
178 | 214 | if [ -z "$INSTALL_DIR" ]; then
|
179 | 215 | sync ; sleep 1 ; sync ; sleep 1 ; sync
|
180 | 216 | echo Tarring main components
|
181 | - if [ -n "$ENABLE_GZIP" ]; then
|
|
182 | - echo " Compressing with gzip"
|
|
183 | - ( cd $DESTDIR >/dev/null ; tar cf - . ) | \
|
|
184 | - gzip -c > cmucl-$VERSION-$ARCH-$OS.tar.gz
|
|
185 | - fi
|
|
186 | - if [ -n "$ENABLE_BZIP" ]; then
|
|
187 | - echo " Compressing with bzip"
|
|
188 | - ( cd $DESTDIR >/dev/null ; tar cf - . ) | \
|
|
189 | - bzip2 > cmucl-$VERSION-$ARCH-$OS.tar.bz2
|
|
190 | - fi
|
|
217 | + $GTAR -C $DESTDIR $COMPRESS -cf cmucl-$VERSION-$ARCH-$OS.tar.$COMPRESS_EXT .
|
|
191 | 218 | |
192 | 219 | echo Cleaning $DESTDIR
|
193 | 220 | [ -d $DESTDIR ] && rm -rf $DESTDIR
|
1 | 1 | #!/bin/sh
|
2 | 2 | |
3 | 3 | usage() {
|
4 | - echo "make-src-dist.sh: [-bgh] [-t gnutar] [-I destdir] version"
|
|
5 | - echo " -h This help"
|
|
6 | - echo " -b Use bzip2 compression"
|
|
7 | - echo " -g Use gzip compression"
|
|
8 | - echo " -t tar Name/path to GNU tar"
|
|
9 | - echo " -I destdir Install directly to given directory instead of creating a tarball"
|
|
10 | - echo ""
|
|
11 | - echo 'Create a tar ball of the cmucl sources. The tarball is named '
|
|
12 | - echo 'cmucl-src-$version.tar.bz2 (or gz if using gzip compression)'
|
|
4 | + cat <<EOF
|
|
5 | +`basename $0` -C option -E ext [-h?] [-t gnutar] [-I destdir] [version]
|
|
6 | + -h This help
|
|
7 | + -? This help
|
|
8 | + -t tar Name/path to GNU tar
|
|
9 | + -C option Tar option for compressing the tarball; required.
|
|
10 | + -E ext Extension to use for the tarball. Must be consistent with
|
|
11 | + -C option. Required.
|
|
12 | + -I destdir Install directly to given directory instead of creating a tarball
|
|
13 | + version The version. Defaults to the current date
|
|
14 | + |
|
15 | +This is generally called by make-dist.sh and not normally invoked by the user
|
|
16 | + |
|
17 | +Create a tar ball of the cmucl sources."
|
|
18 | +EOF
|
|
19 | + exit 1
|
|
13 | 20 | }
|
14 | 21 | |
15 | -while getopts "bgh?t:I:" arg
|
|
22 | +GTAR=tar
|
|
23 | + |
|
24 | +while getopts "C:E:h?t:I:" arg
|
|
16 | 25 | do
|
17 | 26 | case $arg in
|
18 | - b) ENABLE_BZIP=-b ;;
|
|
19 | - g) ENABLE_GZIP=-g ;;
|
|
27 | + C) COMPRESS=$OPTARG ;;
|
|
28 | + E) COMPRESS_EXT=$OPTARG ;;
|
|
20 | 29 | t) GTAR=$OPTARG ;;
|
21 | 30 | I) INSTALL_DIR=$OPTARG ;;
|
22 | 31 | h | \?) usage; exit 1 ;;
|
... | ... | @@ -25,10 +34,15 @@ done |
25 | 34 | |
26 | 35 | shift `expr $OPTIND - 1`
|
27 | 36 | |
28 | -# If no compression given, default to gzip (on the assumption that
|
|
29 | -# that is available everywhere.)
|
|
30 | -if [ -z "$ENABLE_BZIP" -a -z "$ENABLE_GZIP" ]; then
|
|
31 | - ENABLE_GZIP=-b
|
|
37 | +# -C and -E options are required
|
|
38 | +if [ -z "$COMPRESS" ]; then
|
|
39 | + echo "-C option is required"
|
|
40 | + exit 2
|
|
41 | +fi
|
|
42 | + |
|
43 | +if [ -z "$COMPRESS_EXT" ]; then
|
|
44 | + echo "-E option is required"
|
|
45 | + exit 2
|
|
32 | 46 | fi
|
33 | 47 | |
34 | 48 | # If no version is given, default to today's date
|
... | ... | @@ -39,20 +53,11 @@ else |
39 | 53 | fi
|
40 | 54 | |
41 | 55 | echo Creating source distribution
|
42 | -if [ -n "$ENABLE_GZIP" ]; then
|
|
43 | - ZIP="gzip -c"
|
|
44 | - ZIPEXT="gz"
|
|
45 | -fi
|
|
46 | -if [ -n "$ENABLE_BZIP" ]; then
|
|
47 | - ZIP="bzip2"
|
|
48 | - ZIPEXT="bz2"
|
|
49 | -fi
|
|
50 | - |
|
51 | 56 | GTAR_OPTIONS="--exclude=.git --exclude='*.pot.~*~'"
|
52 | 57 | if [ -z "$INSTALL_DIR" ]; then
|
53 | - echo " Compressing with $ZIP"
|
|
54 | - ${GTAR:-tar} ${GTAR_OPTIONS} -cf - bin src tests | ${ZIP} > cmucl-src-$VERSION.tar.$ZIPEXT
|
|
58 | + # echo " Compressing with $ZIP"
|
|
59 | + ${GTAR} ${GTAR_OPTIONS} ${COMPRESS} -cf cmucl-src-$VERSION.tar.$COMPRESS_EXT bin src tests
|
|
55 | 60 | else
|
56 | 61 | # Install in the specified directory
|
57 | - ${GTAR:-tar} ${GTAR_OPTIONS} -cf - bin src tests | (cd $INSTALL_DIR; ${GTAR:-tar} xf -)
|
|
62 | + ${GTAR} ${GTAR_OPTIONS} -cf - bin src tests | (cd $INSTALL_DIR; ${GTAR:-tar} xf -)
|
|
58 | 63 | fi |
... | ... | @@ -1399,7 +1399,8 @@ |
1399 | 1399 | (inst xor sw-reg #x3f) ; invert exception mask
|
1400 | 1400 | (move res sw-reg)
|
1401 | 1401 | ;; Put status word in the low 16 bits and the control word in the
|
1402 | - ;; high 16 bits.
|
|
1402 | + ;; high 16 bits. This is to match the SSE2 mxcsr register that has
|
|
1403 | + ;; the status bits (sticky bits) in lowest part of the word.
|
|
1403 | 1404 | (inst rol res 16)))
|
1404 | 1405 | |
1405 | 1406 | ;; Set the control and status words from the FPU. The low 16 bits
|