stephenm@employees.org (Stephen Ma) writes:
> Hi.
>
> I've noticed the following two problems on 0.6.4. I don't have 0.6.5
> handy, but from the looks of the CVS repository, the relevant bits
> haven't changed, so they're still likely to be problems in 0.6.5 and
> the repository head.
>
> Firstly, select-ports fails when the timeout value is 0:
>
> $ scsh
> Welcome to scsh 0.6.4 (Olin Shivers)
> Type ,? for help.
>> (select-ports 0 (current-input-port))
>
> Error: exception
> wrong-number-of-arguments
> (call-with-values #{Procedure 12346 (unnamed in
> really-select-port-channels in scsh-level-0)} (0))
>
> select-port-channels gives the same error. I've traced this as far as
> the wait-for-channels function in scheme/rts/channel-io.scm.
Yes, wait-for-channels is bogus for a zero timeout argument. Mike will
take care of this.
> Secondly, on a very recent NetBSD, in the configure script, LDFLAGS
> need -rdynamic for dynamic-load to work properly. This link flag is
> already set for linux, and is needed by NetBSD for the same
> reason. (Strangely enough, dynamic-load seemed to be working with scsh
> compiled on an earlier NetBSD. I think a new linker on NetBSD (or
> maybe a new compiler) has changed a few defaults, so it's is now
> needed). I suspect the flag is probably needed on several other ELF
> platforms, but I don't have any other handy boxes on which to test.
>
> Let me know if you need more info on either of the two problems
> (e.g. testing with 0.6.5).
Do you (or anybody else) know if there is a generic way to test for
-rdynamic? The scsh configure.in has this code to decide whether to
link with -rdynamic or not:
dnl Linux/ELF systems need the -rdynamic flag when linking so that
dnl dlsym() can find symbols in the executable.
dnl Note, on some Sun's, you can link with -rdynamic but the resulting
dnl a.out always core dumps.
define(S48_RDYNAMIC, [dnl
AC_MSG_CHECKING([link with -rdynamic])
AC_TRY_COMPILE([],
[#if defined(__linux__) && defined(__ELF__)
this must not compile
#endif],
[AC_MSG_RESULT(no)],
[AC_MSG_RESULT(yes)
LDFLAGS="$LDFLAGS -rdynamic"])
])
How should I extend this to work on NetBSD?
--
Martin
|