I narrowed the problem down to sbcl crashing in a pretty standard libc call: nl_langinfo. This seems related to the fact that on 2.6 glibc uses futex'es to lock non-re-entrant functions, but on 2.4 it uses signals but I fail to see how this could create a simple crash. Trying to investigate it is rather difficult because the problems changes if you use ltrace or strace, actually the crash location moves sometimes.
So in the end I decided:
- To make sbcl-with-threading die on a 2.4 kernel or if NPTL is not available.
- make separate sbcl images without threading for people that are still using 2.4
So now we have multiple cl-debian repositories:
deb http://people.debian.org/~pvaneynd/cl-sarge-packages ./
for sarge 2.6 kerneldeb http://people.debian.org/~pvaneynd/cl-sarge24-packages ./
for sarge 2.4 kerneldeb http://people.debian.org/~pvaneynd/cl-hoary-packages ./
for hoary 2.6 kerneldeb http://people.debian.org/~pvaneynd/cl-hoary24-packages ./
for hoary 2.4 kerneldeb http://people.debian.org/~pvaneynd/cl-breezy-packages ./
for breezy (only 2.6 kernel)deb http://people.debian.org/~pvaneynd/cl-packages ./
for sid (only 2.6 kernel)
Regarding my darcs repository (at http://cl-debian.alioth.debian.org/repository/pvaneynd: for now it is rather nice to work with darcs. The only problem I'm having is with large changes like moving lazy-sbcl from version 0.9.0 to 0.9.3 with all the changes involved. But going step by step also seems to work well.
No comments:
Post a Comment