From: Douglas Philips <dgou@ma...> - 2003-09-15 00:59:14
> I am trying to do a staticly linked version of clisp. Has anyone ever
> tried this?
> If so, is there any kind of hint out there?
No, but I am very interested in your results!
I have to say, I don't like, and don't understand, why installing the
binaries needs to link anything. It would seem that either the binaries
should reference standard shared system libraries (and cross your
fingers that the systems library version checking works), or should
There is a thread on c.l.l about this for CLISP on Mac OS/X. Seems that
libiconv isn't always on the system. Bleah.
From: Douglas Philips <dgou@ma...> - 2003-09-15 03:42:23
On Sunday, Sep 14, 2003, at 23:33 US/Eastern, Fred Cohen wrote:
> I did the compilation with static linking and found that the executable
> will not run. I just set gcc to add the -static switch to all
> It core dumps.
I took a different tact, at least to solve "my" problem. It seems that
deep in makemake.in there is a decision made about whether to
distribute (make distrib) as a binary or not. I just slammed that flag
on (BINARY_DISTRIB=1), reconfigured (not knowing how much would be
affected), built, tested and did a 'make distrib'. I hope the person
having their problem with this finds this will work, I'm waiting to
hear back. It worked for me....
Given that Mac OS/X does not come with developer tools, and
installing them is not easy, can you change makemake.in to make it a
binary distribution platform?
What are the pros/cons of binary distribution? Why is anything not
In any event, the OS/X distrib I sent you is flawed. The Makefile
didn't know that /usr/lib/libiconv.dylib doesn't live in base (or
full), so it generates a link command that references
base//usr/lib/libiconv.dylib (I don't have the log to quote exactly,
but you get the idea).
When I hear that the distrib I generated is working, I'll send you a
From: Bruno Haible <bruno@cl...> - 2003-09-16 15:12:35
> > What are the pros/cons of binary distribution? Why is anything
> > not binary distribution?
> for improved usability of distributions, I guess.
> (a distribution linked on the target host is more reliable)
There is no general pro or cons of distributing an executable versus a
static library, except for the unavailability of the compiler and linker
on some platforms.
Other than that, it mostly depends on whether the host you are building
on has a recent or an old set of system shared libraries. Old is better
here, since vendors usually only add functions to libc and rarely remove
some functions. If the host you use for the build is not the oldest OS
version, then distributing the static library is better: when you distribute
a Unix executable, it is _certain_ to not run on older versions of the OS
(thanks to the shared library versioning check), whereas when you distribute
a static library, it has good chances to link and work fine on older versions
of the OS.
So the general rule is:
IF platform frequently comes without compiler and linker
THEN use BINARY_DISTRIB
IF platform has strict libc version checking
THEN use static library distribution
ELSE use BINARY_DISTRIB