Re: 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]> |
Thanks! I'm looking at the code in the template and there are three architectures, and for each a specific binary version to use as the host SBCL: 1. `armhf` `SBCL_BINARY_VERSION=1.4.1` 2. `arm64` `SBCL_BINARY_VERSION=1.4.2` 3. `amd64` `SBCL_BINARY_VERSION=1.5.5` Comment says "Limit to 1.5.5 because that's when the glibc version used to build was bumped" Are you able to recommend more sensible versions to use? Looks like 1.5.5 is not bad, since I'm able to build on the linux/amd64 host, but can't build either on the Mac. Unfortunately, there's no explanation for the original `SBCL_BINARY_VERSION` choices nor any guidance in how to update them. Thanks again, R On 9 Jan 2026, at 10:35, Stas Boukarev wrote: > That's the host SBCL falling. Try something newer. > > On Fri, Jan 9, 2026 at 7:14 PM Robert Goldman <[email protected]> > wrote: >> >> 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 _______________________________________________ Sbcl-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/sbcl-devel