Trying to build SBCL 2.6.0 docker image on trixie
Robert Goldman <[email protected]>
| Newsgroups | gmane.lisp.steel-bank.devel |
|---|---|
| Message-ID | <[email protected]> |
On my M4 Mac, I've been trying to build AMD64 and ARM64 docker images
for SBCL 2.6.0. I'm doing this to try to fill the hole left by the
cl-docker-images on common-lisp.net after the maintainer's departure.
Unfortunately, since at least 2.4.9, I am unable to do the build inside
Docker on the Mac.
I *am* able to build on an AMD64 linux box but it's not able to build a
multi-platform image, so I would love to get this to work on my Mac.
Here's the error -- anyone know what I'm doing wrong? Dockerfile
appended below.
```
8.73 ; Math journal: wrote #P"obj/from-host/xfloat-math.lisp-expr" (6850
entries)
98.73 ctype cache metrics: Count LF Seek Hit maxPSL Mask
98.74 VALUES : 48409 73.9% 10 FFFF
98.74 List : 45127 68.9% 16 FFFF
98.74 Set : 26043 39.7% 6 FFFF
98.74 EQL : 19037 NIL %
98.74 NUMERIC-UNION : 18320 55.9% 7 7FFF
98.74 UNION : 17786 54.3% 7 7FFF
98.74 FUN : 9690 59.1% 7 3FFF
98.74 INTERSECTION : 8670 52.9% 6 3FFF
98.74 MEMBER : 5465 66.7% 7 1FFF
98.74 NEGATION : 5444 66.5% 13 1FFF
98.74 Key-Info : 1169 57.1% 7 7FF
98.74 ARRAY : 635 62.0% 5 3FF
98.74 CONS : 528 51.6% 5 3FF
98.74 Key-Info-Set : 390 38.1% 3 3FF
98.74 CHARACTER-SET : 229 44.7% 4 1FF
98.74 ALIEN-TYPE : 113 44.1% 4 FF
98.74 UNKNOWN : 70 54.7% 3 7F
98.74 CONSTANT : 66 51.6% 6 7F
98.74 HAIRY : 32 50.0% 3 3F
98.74 MEMBER/EQ : 16 25.0% 2 3F
98.74 FUN-DESIGNATOR : 5 7.8% 1 3F
98.74 Total : 207244
98.74 Alien:
98.74 FUN : 81 63.3% 4 7F
98.74 POINTER : 17 26.6% 3 3F
98.74 INTEGER : 8 12.5% 2 3F
98.74 ARRAY : 6 9.4% 1 3F
98.74 C-STRING : 3 4.7% 1 3F
98.74 BOOLEAN : 1 1.6% 1 3F
98.74 VALUES : 1 1.6% 1 3F
98.74 ENUM : 0 0.0% 0 3F
98.74 UNION : 0 0.0% 0 3F
98.74 STRUCT : 0 0.0% 0 3F
98.74 Total : 117
98.76 Math journal: replaced from
#P"obj/from-host/xfloat-math.lisp-expr"
98.78
98.78 Likely suspicious calls:
98.78 52 SB-C::LVAR-VALUE-IS
98.78 2 SB-IMPL::EQL-HASH
98.78 2 SB-IMPL::GETHASH3
98.78 1 SB-KERNEL:%CODE-FUN-OFFSET
98.78 1 SB-KERNEL:CLASSOID-OF
98.78 1 SB-KERNEL:%PUTHASH
98.78
98.78 Possibly suspicious calls:
98.78 242 SB-KERNEL:SPECIFIER-TYPE
98.78 200 SB-KERNEL:%COERCE-CALLABLE-TO-FUN
98.78 181 SB-KERNEL:%NEGATE
98.78 144 SB-KERNEL:%SINGLE-FLOAT
98.78 121 SB-KERNEL:%DOUBLE-FLOAT
98.78 28 (SETF SB-INT:INFO)
98.78 27 SB-KERNEL:ASH-LEFT-ADD
98.78 27 SB-KERNEL:%DPB
98.78 26 SB-KERNEL:%LDB
98.78 18 SB-KERNEL:RANGE<=
98.78 11 SB-INT:INFO
98.78 8 SB-KERNEL:VALUES-SPECIFIER-TYPE
98.78 6 SB-KERNEL:RANGE<
98.78 3 SB-KERNEL:%UNARY-ROUND
98.78 2 SB-KERNEL:FILL-POINTER-ERROR
98.78 1 SB-C::MASK-SIGNED-FIELD
98.78 1 SB-C::%STRUCTURE-IS-A
98.78 1 SB-SYS:FOREIGN-SYMBOL-SAP
98.78 1 SB-IMPL::%FAILED-AVER
98.78 1 SB-KERNEL:CHECK-TYPE-ERROR-TRAP
98.78 1 SB-KERNEL:DSD-INDEX
98.78 1 SB-C::FUN-INFO-TEMPLATES
99.06 mmap: wanted 271843328 bytes at 0x1000000000, actually mapped at
0xffff75600000
99.06 fatal error encountered in SBCL pid 662(tid 0xffff86262420):
99.06 remap_free_pages: page moved, 0x00000000 ==> 0x00000000
99.06
99.06 Error opening /dev/tty: No such device or address
99.06 Welcome to LDB, a low-level debugger for the Lisp runtime
environment.
```
```
#
# NOTE: THIS DOCKERFILE IS GENERATED VIA "update.sh"
#
# PLEASE DO NOT EDIT IT DIRECTLY.
#
FROM buildpack-deps:trixie
ENV SBCL_VERSION=2.6.0
ENV SBCL_SIGNING_KEY=D6839CA0A67F74D9DFB70922EBD595A9100D63CD
WORKDIR /usr/local/src/
# hadolint ignore=DL3003,DL3008
RUN set -x \
&& case "$(dpkg --print-architecture)" in \
armhf) SBCL_ARCH=arm; SBCL_BINARY_ARCH_CODE=armhf;
SBCL_BINARY_VERSION=1.4.11;; \
arm64) SBCL_ARCH=arm64; SBCL_BINARY_ARCH_CODE=arm64;
SBCL_BINARY_VERSION=1.4.2;; \
# Limit to 1.5.5 because that's when the glibc version used to
build was bumped
amd64) SBCL_ARCH=x86-64; SBCL_BINARY_ARCH_CODE=x86-64;
SBCL_BINARY_VERSION=1.5.5;; \
*) echo "Unknown arch" >&2; exit 1;; \
esac \
&& apt-get update \
&& apt-get install --no-install-recommends -y libzstd-dev \
&& rm -rf /var/lib/apt/lists/* \
&& export SBCL_ARCH \
&& export SBCL_BINARY_ARCH_CODE \
&& export SBCL_BINARY_VERSION \
&& download_and_validate_hashes() { \
curl -fsSL
"https://downloads.sourceforge.net/project/sbcl/sbcl/${1}/sbcl-${1}-crhodes.asc"
> "sbcl-${1}-crhodes.asc" \
&& gpg --batch --verify "sbcl-${1}-crhodes.asc" \
&& gpg --batch --decrypt "sbcl-${1}-crhodes.asc" >
"sbcl-${1}-crhodes.txt"; \
} \
&& download_and_unpack_binary() { \
url="https://downloads.sourceforge.net/project/sbcl/sbcl/${1}/sbcl-${1}-$SBCL_BINARY_ARCH_CODE-linux-binary.tar.bz2"
\
&& curl -fsSL "$url" >
"sbcl-${1}-$SBCL_BINARY_ARCH_CODE-linux-binary.tar.bz2" \
&& bunzip2
"sbcl-${1}-$SBCL_BINARY_ARCH_CODE-linux-binary.tar.bz2" \
&& if grep "sbcl-${1}-$SBCL_BINARY_ARCH_CODE-linux-binary.tar"
"sbcl-${1}-crhodes.txt" > "${1}-sum-file.txt"; then sha256sum -c
"${1}-sum-file.txt"; fi \
&& tar xf "sbcl-${1}-$SBCL_BINARY_ARCH_CODE-linux-binary.tar"
\
&& rm -rf "sbcl-${1}-$SBCL_BINARY_ARCH_CODE-linux-binary.tar";
\
} \
&& download_source() { \
url="https://downloads.sourceforge.net/project/sbcl/sbcl/${1}/sbcl-${1}-source.tar.bz2"
\
&& curl -fsSL "$url" > "sbcl-${1}-source.tar.bz2" \
&& bunzip2 "sbcl-${1}-source.tar.bz2" \
&& grep "sbcl-${1}-source.tar" "sbcl-${1}-crhodes.txt" >
"${1}-sum-file.txt" \
&& sha256sum -c "${1}-sum-file.txt" \
&& tar xf "sbcl-${1}-source.tar" \
&& mv "sbcl-$1" "sbcl"; \
} \
&& build_and_install_source() { \
cd "sbcl/" \
# Remove the hardcoding of armv5 as target arch. Use the
default
# provided by the base image.
&& sed -i -e "s/CFLAGS += -marm -march=armv5/CFLAGS += -marm/"
src/runtime/Config.arm-linux \
# Old versions of SBCL choke.
<https://sourceforge.net/p/sbcl/mailman/message/37640913/>
&& echo "(setf *debugger-hook* (lambda (c h) (declare (ignore
h)) (let ((restart (find-restart 'continue c))) (when restart
(invoke-restart restart)))))" > build-debugger-hook.lisp \
&& sh make.sh "--xc-host=${1}" --fancy \
&& sh install.sh \
&& sh clean.sh \
&& rm build-debugger-hook.lisp \
&& cd /usr/local/src; \
} \
&& GNUPGHOME="$(mktemp -d)" \
&& export GNUPGHOME \
&& gpg --batch --keyserver keyserver.ubuntu.com --recv-keys
${SBCL_SIGNING_KEY} \
&& download_and_validate_hashes "$SBCL_BINARY_VERSION" \
&& download_and_validate_hashes "$SBCL_VERSION" \
&& download_and_unpack_binary "$SBCL_BINARY_VERSION" \
&& download_source "$SBCL_VERSION" \
&& build_and_install_source
"/usr/local/src/sbcl-${SBCL_BINARY_VERSION}-$SBCL_BINARY_ARCH_CODE-linux/run-sbcl.sh
--load build-debugger-hook.lisp" \
&& rm -rf "$GNUPGHOME" "$SBCL_BINARY_VERSION-sum-file.txt"
"$SBCL_VERSION-sum-file.txt" "sbcl-$SBCL_BINARY_VERSION-crhodes."*
"sbcl-$SBCL_VERSION-crhodes."* "sbcl-$SBCL_VERSION-source.tar"
"sbcl-$SBCL_BINARY_VERSION-$SBCL_BINARY_ARCH_CODE-linux" \
&& sbcl --version
DOCKERFILE:
# Add the Quicklisp installer.
WORKDIR /usr/local/share/common-lisp/source/quicklisp/
ENV QUICKLISP_SIGNING_KEY=D7A3489DDEFE32B7D0E7CC61307965AB028B5FF7
RUN set -x \
&& curl -fsSL "https://beta.quicklisp.org/quicklisp.lisp" >
quicklisp.lisp \
&& curl -fsSL "https://beta.quicklisp.org/quicklisp.lisp.asc" >
quicklisp.lisp.asc \
&& GNUPGHOME="$(mktemp -d)" \
&& export GNUPGHOME \
&& gpg --batch --keyserver keyserver.ubuntu.com --recv-keys
"${QUICKLISP_SIGNING_KEY}" \
&& gpg --batch --verify "quicklisp.lisp.asc" "quicklisp.lisp" \
&& rm quicklisp.lisp.asc \
&& rm -rf "$GNUPGHOME"
# Add the script to trivially install Quicklisp
COPY install-quicklisp /usr/local/bin/install-quicklisp
# Install cl-launch and rlwrap. In the next release, move this up so
that all
# images can share it.
# hadolint ignore=DL3008
RUN set -x \
&& apt-get update \
&& apt-get install --no-install-recommends -y cl-launch rlwrap \
&& rm -rf /var/lib/apt/lists/*
# Add the entrypoint
WORKDIR /
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["sbcl"]
```
_______________________________________________
Sbcl-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sbcl-devel