[plt-scheme] NetBSD, extensions, and underscores
[Anyone who isn't trying to run the PLT suite on NetBSD and doesn't want
to hear about symbol tables can safely skip this message, I think.]
NetBSD doesn't prefix global symbols with underscores when using ELF
(as opposed to a.out); on the i386 port, this means "since 1.5, which
was released over 5 years ago". Thus, in order for native-code
extensions (is that the right term?) to work, something like the
very small patch attached below is needed.
But, in order for extension-loading to get even that far, the
configure script has to be run with --enable-shared, as otherwise the
mzscheme executable isn't linked with -E and thus important-sounding
symbols like "scheme_make_prim_w_arity" and "scheme_intern_symbol"
don't get exported therefrom for use by loaded objects, which thus
don't load.
So, if I do those things (and raise the datasize limit -- for those
unfamiliar, I suggest "unlimit datasize" or "ulimit -d `ulimit -Hd`",
depending on shell), the install process completes normally.
This may also apply to OpenBSD, if it's having similar problems.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: plt-underscore.diff
Type: text/x-patch
Size: 362 bytes
Desc: not available
URL: <http://lists.racket-lang.org/users/archive/attachments/20060309/c4573e04/attachment.bin>
-------------- next part --------------
--
(let ((C call-with-current-continuation)) (apply (lambda (x y) (x y)) (map
((lambda (r) ((C C) (lambda (s) (r (lambda l (apply (s s) l)))))) (lambda
(f) (lambda (l) (if (null? l) C (lambda (k) (display (car l)) ((f (cdr l))
(C k))))))) '((#\J #\d #\D #\v #\s) (#\e #\space #\a #\i #\newline)))))