Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 117701 - SBCL Fails to Launch on Command Line for AMD64
Summary: SBCL Fails to Launch on Command Line for AMD64
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Common Lisp Bugs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-01-03 23:14 UTC by AJ Armstrong
Modified: 2006-01-04 20:04 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description AJ Armstrong 2006-01-03 23:14:38 UTC
Somewhat related to bug #13970, opening new one because it looks arch-specific.

Emerging dev-lisp/sbcl-0.9.8 and using it with slime works fine.  However, when launching sbcl in the CL, it fails with:

aja@oberon% sbcl                                                                                                                                          ~
fatal error encountered in SBCL pid 30570:
can't find core file

--------------------------------------------------------------
sbcl --core /usr/lib/sbcl/sbcl.core works properly.

--------------------------------------------------------------

strace sbcl is productive, with the following near the failure:

stat("/usr/lib6464/sbcl//sbcl.core", 0x7fffff895880) = -1 ENOENT (No such file or directory)
write(2, "fatal error encountered in SBCL "..., 41fatal error encountered in SBCL pid 30575) = 41
write(2, ":\n", 2:
)                      = 2
write(2, "can\'t find core file\n", 21can't find core file
) = 21
write(2, "\n", 1
)                       = 1
exit_group(1)                           = ?

---------------------------------------------------------------
Note the oddity in the path: 

"/usr/lib6464/sbcl//sbcl.core"  <---------------- lib6464 looks like a typo

----------------------------------------------------------------

aja@oberon% emerge info                                                                                                                                   ~
Portage 2.1_pre3-r1 (default-linux/amd64/2005.1, gcc-4.0.2, glibc-2.3.6-r1, 2.6.14-gentoo-r5 x86_64)
=================================================================
System uname: 2.6.14-gentoo-r5 x86_64 AMD Athlon(tm) 64 Processor 3500+
Gentoo Base System version 1.12.0_pre12
dev-lang/python:     2.3.5-r2, 2.4.2
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.59-r7
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1
sys-devel/binutils:  2.16.1-r1
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.11-r3
ACCEPT_KEYWORDS="amd64 ~amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=k8 -O2 -pipe -fweb -ftracer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib64/mozilla/defaults/pref /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/texmf/web2c /etc/env.d"
CXXFLAGS="-march=k8 -O2 -pipe -fweb -ftracer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig ccache distlocks multilib-strict sandbox sfperms strict"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/etc/portage/overlay"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="amd64 X alsa apache2 audiofile avi berkdb bitmap-fonts bzip2 cddb cdr cli crypt cups dba directfb dts dv dvd dvdr dvdread eds emacs emboss encode esd exif expat fam fame fbcon ffmpeg firefox foomaticdb fortran gcj gd gdbm gif glut gmp gpm gstreamer gtk gtk2 idn ieee1394 imagemagick imlib ipv6 java jikes jpeg junit lcms ldap libwww lirc live lzw lzw-tiff mad mjpeg mng motif mozilla mp3 mpeg ncurses nls nptl nptlonly nsplugin nvidia ogg oggvorbis opengl pam pcre pdflib perl png python qt quicktime readline real rtc ruby sdl spell ssl tcpd tetex theora tiff truetype truetype-fonts type1-fonts udev unicode usb userlocales v4l v4l2 vorbis xine xml2 xmms xpm xv xvid zlib elibc_glibc kernel_linux userland_GNU"
Unset:  ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS
Comment 1 Matthew Kennedy (RETIRED) gentoo-dev 2006-01-04 12:41:16 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().
Comment 2 Herbie Hopkins (RETIRED) gentoo-dev 2006-01-04 15:51:02 UTC
$ 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.
Comment 3 AJ Armstrong 2006-01-04 19:19:52 UTC
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.
Comment 4 Jory A. Pratt 2006-01-04 20:04:24 UTC
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.