SBCL enomem on 686

  • Open
  • quality assurance status badge
Details
One participant
  • Christopher Howard
Owner
unassigned
Submitted by
Christopher Howard
Severity
normal
C
C
Christopher Howard wrote on 13 Feb 17:22 +0100
(name . Bug Guix)(address . bug-guix@gnu.org)
ZcuXR_kJF1FLV-rq@theoden
Hi, I was trying to run SBCL on an older 32-bit laptop, using guix on foreign distro. When I launch SBCL, the REPL dies immediately with this error:

```
os_alloc_gc_space(1,0x9000000,3221225472) failed with ENOMEM
fatal error encountered in SBCL pid 4657 tid 4657:
Can't allocate 0xc0000000 bytes for space 1
```

However, the program does work if I pass in a --dynamic-space-size argument when I launch sbcl. E.g.

```
sbcl --dynamic-space-size 2000
```

So, it seems like some allocation value or define is not being set correctly in the build for 686. SBCL manual only says:

```
‘--dynamic-space-size MEGABYTES’
Size of the dynamic space reserved on startup in megabytes.
Default value is platform dependent.
```

My system information:

```
christopher@q4os-desktop
------------------------
OS: Debian GNU/Linux 10 (buster) i686
Host: CF-30CTQAZBM 001
Kernel: 4.19.0-26-686-pae
Uptime: 21 hours, 54 mins
Packages: 2357 (dpkg), 4 (guix-user)
Shell: bash 5.1.16
Resolution: 1024x768
Terminal: /dev/pts/1
CPU: Genuine Intel L2400 (2) @ 1.667GHz
GPU: Intel Mobile 945GM/GMS, 943/940GML Express
Memory: 219MiB / 3020MiB
```

```
$ guix describe
Generation 2 Feb 12 2024 12:22:05 (current)
guix bb92a4d
branch: master
commit: bb92a4d7bc71197a51eea9075387c5313f299085
```

--
? Christopher Howard
? gemini://gem.librehacker.com

?????? ??? ????? ?? ????? ??? ????
C
C
Christopher Howard wrote on 13 Feb 19:28 +0100
(address . 69106@debbugs.gnu.org)
Zcu06NcU5KCZzUT3@theoden
Just noticed, poking around in the debian sid package, that Debian had to explicitly set

```
export SBCL_ARCH=x86
```

For their i386 build. Wonder if that might be relevant here.

--
Christopher Howard
C
C
Christopher Howard wrote on 13 Feb 21:48 +0100
(address . 69106@debbugs.gnu.org)
ZcvVmLg703F8CbZt@theoden
Hi, the problem is with these lines:

```
,@(if (target-ppc32?)
;; 3072 is too much for this architecture.
`("--dynamic-space-size=2048")
`("--dynamic-space-size=3072"))
```

Package definition simply assumes that all non-ppc32 architectures can handle the larger dynamic space, but apparently not x86. Through experiment, I see the largest dynamic space that works on my old laptop is 2810, but 2048 seems like a more sensible number.

--
Christopher Howard
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 69106@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 69106
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch