[ clisp-Bugs-3512035 ] (require "linux") fails on undefined symbol rpl_ioctl

SourceForge.net <[email protected]>
Newsgroups gmane.lisp.clisp.devel
Message-ID <[email protected]>
Bugs item #3512035, was opened at 2012-03-27 10:36
Message generated for change (Comment added) made by sds
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=101355&aid=3512035&group_id=1355

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: modules
Group: lisp error
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Pascal J. Bourguignon (informatimago)
Assigned to: Bruno Haible (haible)
Summary: (require "linux") fails on undefined symbol rpl_ioctl 

Initial Comment:
On gentoo: 

$ uname -a
Linux kuiper 2.6.38-gentoo-r6-pjb-c9 #2 SMP Wed Jul 13 00:23:08 CEST 2011 x86_64 Intel(R) Core(TM) i7 CPU 950 @ 3.07GHz GenuineIntel GNU/Linux

I cannot load the linux module, because of some undefined symbol:

TEST> (lisp-implementation-version)
"2.49+ (2010-07-17) (built 3541129397) (memory 3541129660)"
TEST> (require "linux")
;; Loading file /data/languages/clisp-hg/lib/clisp-2.49+/dynmod/linux.lisp ...
;;  Loading module linux from /data/languages/clisp-hg/lib/clisp-2.49+/dynmod/lib-linux.so

*** - SYSTEM::DYNLOAD-MODULES: "dlopen" -> "/data/languages/clisp-hg/lib/clisp-2.49+/dynmod/lib-linux.so: undefined symbol: rpl_ioctl"
The following restarts are available:
SKIP           :R1      skip (DYNLOAD-MODULES # '#)
RETRY          :R2      retry (DYNLOAD-MODULES # '#)
STOP           :R3      stop loading file /data/languages/clisp-hg/lib/clisp-2.49+/dynmod/linux.lisp
RETRY          :R4      Retry SLIME REPL evaluation request.
PROCESS-INPUT  :R5      Continue reading input.
ABORT          :R6      Return to SLIME's top level.
CLOSE-CONNECTION :R7    Close SLIME connection.
ABORT          :R8      Abort main loop
C/Break 1 COM.INFORMATIMAGO.RUN-PROGRAM.TEST[2]> :bt



Indeed, there's a reference to rpl_ioctl in lib-linux.so:
[pjb@kuiper :0 tmp]$ nm /data/languages/clisp-hg/lib/clisp-2.49+/dynmod/lib-linux.so|grep rpl
                 U rpl_ioctl
[pjb@kuiper :0 tmp]$ ldd /data/languages/clisp-hg/lib/clisp-2.49+/dynmod/lib-linux.so
	linux-vdso.so.1 =>  (0x00007fff269ff000)
	libm.so.6 => /lib/libm.so.6 (0x00007f9738b13000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x00007f97388f5000)
	libc.so.6 => /lib/libc.so.6 (0x00007f973858f000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f9738fa2000)

But I can't find it in those libraries.

[pjb@kuiper :0 tmp]$ nm /lib64/ld-linux-x86-64.so.2 | grep rpl
nm: /lib64/ld-linux-x86-64.so.2: no symbols
[pjb@kuiper :0 tmp]$ nm /lib/libc.so.6 | grep rpl
nm: /lib/libc.so.6: no symbols

Sam says:

rpl_* come from gnulib, so it is in libgnu.a;
libgnu.a is linked into lisp.run
(all of them: boot, base, and full, so "clisp -K full" works);
but since rpl_ioctl is not used by base,
it is dropped from base/lisp.run;
so when you try to load lib-linux.so which uses rpl_ioctl, it fails.

This patch fixes the error, but I don't like the solution because it means that
every module which uses rpl_ioctl will come with its own implementation.

A better solution is welcome.


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

>Comment By: Sam Steingold (sds)
Date: 2012-03-27 11:15

Message:
at least rawsock needs a similar patch to fix require.
a better approach is necessary.

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

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=101355&aid=3512035&group_id=1355

------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
clisp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/clisp-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.