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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.