scsh-hackers
[Top] [All Lists]

[Scsh-hackers] [ scsh-Bugs-407062 ] Static linker not working

To: noreply@sourceforge.net
Subject: [Scsh-hackers] [ scsh-Bugs-407062 ] Static linker not working
From: noreply@sourceforge.net
Date: Mon, 28 May 2001 14:06:57 -0700
List-id: Discussion among the implementors <scsh-hackers.lists.sourceforge.net>
Sender: scsh-hackers-admin@lists.sourceforge.net
Bugs item #407062, was updated on 2001-03-08 08:28
You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=110493&aid=407062&group_id=10493

Category: None
Group: None
Status: Open
Resolution: None
Priority: 2
Submitted By: Olin Shivers (olin-shivers)
Assigned to: Brian D. Carlstrom (bdc)
Summary: Static linker not working

Initial Comment:
Static linker doesn't work in either 0.5.2, 0.5.3 or
0.6 tree.

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

>Comment By: Brian D. Carlstrom (bdc)
Date: 2001-05-28 14:06

Message:
Logged In: YES 
user_id=27364

From: Bruno.Verlyck@inria.fr
To: Eric Marsden <emarsden@mail.dotcom.fr>
CC: scsh-bugs@zurich.ai.mit.edu
Subject: Re: problems with static linker
Subject: Re: problems with static linker
Date: Thu, 18 May 2000 12:39:46 +0200 (MET DST)

> >>>>> "bv" == Bruno Verlyck <Bruno.Verlyck@inria.fr> 
writes:
> bv> On Solaris, I get problems while compiling the 
scripts; for example:
> bv>    Error: unknown #\ name
> bv>        space
> bv>        #{Input-port}

> bv> On Linux, static linking fails with some undefined 
symbols:
> bv>    (gcc -rdynamic -o
> bv>    /afs/inria.fr/common/usr/local/src/scsh-
0.5.2/scsh/scsh.vm
> bv>    static-p0.o static-i0.o [...] static-p336.o static-
i336.o static.o
> bv>    -L /usr/local/lib/scsh -lscshvm -ldl -lelf -lnsl -
lm -lc)
> bv>    static-i51.o(.data+0x5c8): undefined reference to 
`df_compile_re'
> bv>    static-i51.o(.data+0x764): undefined reference to 
`df_free_re'

> are you sure the symptoms aren't the other way round?
(I might misinterpret your question, but..)

It just happens that I compiled scsh on Solaris first, 
where static linking
scsh.image worked, but the resulting heap image couldn't 
interpret my
scripts in the byte-compilation phase.

Then I tried to compile scsh on Linux, where I couldn't 
even static-link
scsh.image.  I described my two problems in chronological 
order, but to me,
they are unrelated.

> I get similar strange string-related errors on Linux 
(calls to
> `make-string' of length -1 for example), and link errors 
for all the
> syscalls on Solaris (though for me on Solaris 2.7 it 
links fine but fails
> upon execution in unix.c:lookup_external_name).
(Just in case..) I remember I had to use this #! line:
   #!/usr/local/lib/scsh/scsh.vm \
   -o /usr/local/lib/scsh/scsh.vm -- <other options>
   !#
The -o /usr/local/lib/scsh/scsh.vm was mandatory under 
Solaris only (on
other systems it worked, and a little faster, without it).

> The link problem is fixed for me by removing the line in
> scsh/machine/sysdep.h which #undefs HAVE_DLOPEN
My machine/sysdep.h is empty :-(.

> Then I reach similar string errors to on Linux: no idea 
where these come
> from.
So I'm not alone.

The manual says:
 `In spite of .. we are providing the static linker .. so 
that people may
 get some experience with it.'
Then my experience is that it worked better in scsh 5.0.1.

Any reaction from the scsh maintainers ? (even to say I'll 
have to wait :-)

Bruno.









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

Comment By: Brian D. Carlstrom (bdc)
Date: 2001-05-28 14:06

Message:
Logged In: YES 
user_id=27364

From: Bruno.Verlyck@inria.fr
To: scsh-bugs@zurich.ai.mit.edu
Subject: problems with static linker
Date: Wed, 10 May 2000 14:51:01 +0200 (MET DST)

I recently decided to install scsh 0.5.2 on Solaris (5.6) 
and Linux
(RH 6.1, kernel 2.2.12-20).  Everything compiled fine (with 
gcc).

But, as I had static-linked scsh.image with scsh 0.5.1, and 
changed
the #! .. !# lines of my scripts accordingly, I had to do 
the same
with 0.5.2.

On Solaris, I get problems while compiling the scripts; for 
example:
   Error: unknown #\ name
       space
       #{Input-port}
If I replace #\space with #\ , compilation fails a little 
later:
   Error: exception
       (car 'else)
This particular piece of code works under the standard 
scsh.image.

On Linux, static linking fails with some undefined symbols:
   (gcc -rdynamic -o
   /afs/inria.fr/common/usr/local/src/scsh-
0.5.2/scsh/scsh.vm
   static-p0.o static-i0.o [...] static-p336.o static-
i336.o static.o
   -L /usr/local/lib/scsh -lscshvm -ldl -lelf -lnsl -lm -lc)
   static-i51.o(.data+0x5c8): undefined reference to 
`df_compile_re'
   static-i51.o(.data+0x764): undefined reference to 
`df_free_re'
   static-i51.o(.data+0xb18): undefined reference to 
`df_scheme_tcgetattrB'
   static-i51.o(.data+0xb28): undefined reference to 
`df_re_search'
   static-i51.o(.data+0xb5c): undefined reference to 
`df_re_errint2str'
   collect2: ld returned 1 exit status

In both cases, I used this command to do the link:
   time ./scsh/static.scm --cc gcc --temp /tmp -o 
scsh/scsh.vm -i scsh/scsh.ima\
ge
(.. that worked for scsh 0.5.1).  I didn't find anything 
resembling
the scsh-hlink command referred to near the pages 173-175 
of the new
manual, so I used the same recipe than with 0.5.1.  I can 
give you
more specific details if you need them.

Have you heard of anything like this ?  Can you give me 
some advice ?

Thanks in advance,

Bruno.


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

Comment By: Brian D. Carlstrom (bdc)
Date: 2001-05-28 14:05

Message:
Logged In: YES 
user_id=27364

From: Bruno.Verlyck@inria.fr
To: scsh-bugs@zurich.ai.mit.edu
Subject: problems with static linker
Date: Wed, 10 May 2000 14:51:01 +0200 (MET DST)

I recently decided to install scsh 0.5.2 on Solaris (5.6) 
and Linux
(RH 6.1, kernel 2.2.12-20).  Everything compiled fine (with 
gcc).

But, as I had static-linked scsh.image with scsh 0.5.1, and 
changed
the #! .. !# lines of my scripts accordingly, I had to do 
the same
with 0.5.2.

On Solaris, I get problems while compiling the scripts; for 
example:
   Error: unknown #\ name
       space
       #{Input-port}
If I replace #\space with #\ , compilation fails a little 
later:
   Error: exception
       (car 'else)
This particular piece of code works under the standard 
scsh.image.

On Linux, static linking fails with some undefined symbols:
   (gcc -rdynamic -o
   /afs/inria.fr/common/usr/local/src/scsh-
0.5.2/scsh/scsh.vm
   static-p0.o static-i0.o [...] static-p336.o static-
i336.o static.o
   -L /usr/local/lib/scsh -lscshvm -ldl -lelf -lnsl -lm -lc)
   static-i51.o(.data+0x5c8): undefined reference to 
`df_compile_re'
   static-i51.o(.data+0x764): undefined reference to 
`df_free_re'
   static-i51.o(.data+0xb18): undefined reference to 
`df_scheme_tcgetattrB'
   static-i51.o(.data+0xb28): undefined reference to 
`df_re_search'
   static-i51.o(.data+0xb5c): undefined reference to 
`df_re_errint2str'
   collect2: ld returned 1 exit status

In both cases, I used this command to do the link:
   time ./scsh/static.scm --cc gcc --temp /tmp -o 
scsh/scsh.vm -i scsh/scsh.ima\
ge
(.. that worked for scsh 0.5.1).  I didn't find anything 
resembling
the scsh-hlink command referred to near the pages 173-175 
of the new
manual, so I used the same recipe than with 0.5.1.  I can 
give you
more specific details if you need them.

Have you heard of anything like this ?  Can you give me 
some advice ?

Thanks in advance,

Bruno.



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

You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=110493&aid=407062&group_id=10493


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