rpm cpio error: prelink and SBCL

Jerry James loganjerry at gmail.com
Thu Dec 17 18:24:59 UTC 2009


On Thu, Dec 17, 2009 at 10:12 AM, yersinia <yersinia.spiros at gmail.com> wrote:
> You probably have a prelinked file in BUILD ROOT (objdump -s <file> |
> grep prelink) . Try to get rid of this in %install with prelink -u

Oh ho!  The sbcl executable has already been prelinked.  When
save-lisp-and-die is called (at least with :executable t), the sbcl
executable itself is dumped with the Lisp core written into it.  So we
wind up with a prelinked image in the build directory, like so:

------------------------------------------------------------------------------
$ objdump -s /usr/bin/sbcl | grep -F prelink
Contents of section .gnu.prelink_undo:
$ sbcl
This is SBCL 1.0.30-2.fc12, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.
* (defun my-fun () "Isn't this fun?")

MY-FUN
* (save-lisp-and-die "sbcl-test" :executable t)
[undoing binding stack and other enclosing state... done]
[saving current Lisp image into sbcl-test:
writing 6176 bytes from the read-only space at 0x20000000
writing 4064 bytes from the static space at 0x20100000
writing 42983424 bytes from the dynamic space at 0x1000000000
done]
$ objdump -s sbcl-test | grep -F prelink
Contents of section .gnu.prelink_undo:
------------------------------------------------------------------------------

So this is going to hit anybody who tries to package up an executable
produced by SBCL.  Perhaps this should be noted on
https://fedoraproject.org/wiki/Packaging:Lisp.
-- 
Jerry James
http://www.jamezone.org/




More information about the devel mailing list