| Summary: | SBCL Fails to Launch on Command Line for AMD64 | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | AJ Armstrong <aja> |
| Component: | New packages | Assignee: | Common Lisp Bugs <common-lisp> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | amd64 |
| Priority: | High | ||
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
|
Description
AJ Armstrong
2006-01-03 23:14:38 UTC
Do you have any kind of override for get_libdir in effect?
Is SBCL_HOME set in your environment when you execute /usr/bin/sbcl? If possible,
please provide the environment context you can sbcl in (eg. "set
>env-for-matt.txt")
Try putting noclean in your make.conf FEATURES so that /var/tmp/portage/sbcl-0.9.8
is not wiped out at the end of the emerge (or "ebuild sbcl-0.9.8.ebuild
unpack") Then examine,
/var/tmp/portage/sbcl-0.9.8/work/sbcl-0.9.8/src/runtime/runtime.c
A little way down there should be
#ifndef SBCL_HOME
#define SBCL_HOME "/usr/lib/sbcl/"
#endif
For your error, it should look like SBCL_HOME "/usr/lib6464/sbcl/" ?
If not, then is you SBCL_HOME environment variable set to /usr/lib6464/sbcl/"?
I think the stat in your strace occurs around line 287, in the call to
copied_existing_filename_or_null().
$ ebuild sbcl-0.9.8.ebuild unpack $ grep /lib /var/tmp/portage/sbcl-0.9.8/work/sbcl-0.9.8/src/runtime/runtime.c #define SBCL_HOME "/usr/lib6464/sbcl/" The problem seems to be in the that you are calling sed twice. The first one does s/lib/lib64 on sbcl-gentoo.patch, the patch then gets applied and you s/lib/lib64 on the patched file (runtime.c) resulting in lib6464. I would think the sed on runtime.c can safely be removed which should fix this issue. The following patch:
aja@oberon% diff -audN /usr/portage/dev-lisp/sbcl/sbcl-0.9.8.ebuild /etc/portage/overlay/dev-lisp/sbcl/sbcl-0.9.8.ebuild ~
--- /usr/portage/dev-lisp/sbcl/sbcl-0.9.8.ebuild 2006-01-03 11:31:51.000000000 -0700
+++ /etc/portage/overlay/dev-lisp/sbcl/sbcl-0.9.8.ebuild 2006-01-04 19:59:04.000000000 -0700
@@ -64,7 +64,7 @@
unpack ${P}-source.tar.bz2
epatch ${MY_WORK}/sbcl-gentoo.patch || die
sed -i "s,/lib,/$(get_libdir),g" ${S}/install.sh
- sed -i "s,\\(.*SBCL_HOME.*\\)/usr/lib,\\1/usr/$(get_libdir),g" ${S}/src/runtime/runtime.c
+# sed -i "s,\\(.*SBCL_HOME.*\\)/usr/lib,\\1/usr/$(get_libdir),g" ${S}/src/runtime/runtime.c
cp ${MY_WORK}/customize-target-features.lisp-prefix \
${S}/customize-target-features.lisp
Does seem to fix the issue.
The problem comes from the sed as aja has pointed out. it automatically sets /usr/lib64 already so when sed runs it sets /lib/lib6464 I have removed the line in ebuild as it does not effect any other arch and commited to the tree already. |