scsh-users
[Top] [All Lists]

Re: two quick bug reports

To: stephenm@employees.org (Stephen Ma)
Subject: Re: two quick bug reports
From: Martin Gasbichler <gasbichl@informatik.uni-tuebingen.de>
Date: Fri, 05 Dec 2003 14:52:44 +0100
Cc: scsh-bugs@zurich.csail.mit.edu
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

<Prev in Thread] Current Thread [Next in Thread>