[Ecls-list] unnecessary (?) glibc dependencies

Juan Jose Garcia-Ripoll worm at arrakis.es
Tue Jul 1 04:51:08 UTC 2003


On Tuesday 01 July 2003 11:29, Edi Weitz wrote:
> Ooops! That does mean 0.9 doesn't work for Solaris? Good to know. But
> I take it that I should grab the nightly CVS tarball next week and try
> this one, right?

No, 0.9 did not work for Solaris; 0.9b will. I had to solve several problems: 
missing functions (setenv), different integer type names (u_int8_t -> 
uint8_t), and some other tweaks. However, this port revealed one memory leak 
in "dpp", and I am glad to see that the source code of ECL slowly converges 
to something really portable. You will have to wait, though, until I announce 
the port, because I still have to make sure that I did not break anything in 
the other supported platforms.

> > I don't know where this dependency comes from :-/ I suppose that
> > glibc 2.2.* and 2.1.* are binary incompatible and the system
> > therefore complains. Lacking a better solution, I would recommend
> > building a statically linked image:
> >
> > LDFLAGS="-static" ../src/configure --prefix=$HOME --disable-shared
> > --enable-local-gmp
>
> Does that mean I should already build ECL itself with these flags?
> I'll try that.

Yes. --disable-shared tells ECL that it should not produce dynamically linked 
libraries for lisp code; the LDFLAG="-static" ensures that all other 
libraries (i.e. non-lisp) are statically linked in the program.

> I don't mind if the image I work with is large as long as the binaries
> built with BUILD-PROGRAM aren't dozens of megabytes big.

They will not be: ECL itself is just about 800k; ECL plus the C library is 
about 1200k in my SuSe 8.2 (i586); the compiler adds an overhead of about 
300k.


jlr at mpq3p32:~/src/ecls-new/build> ./ecl
;;; Warning: PROCLAIM is being redefined.
;;; Warning: COMPILE-FILE-PATHNAME is being redefined.
;;; Warning: COMPILE-FILE is being redefined.
;;; Warning: COMPILE is being redefined.
;;; Warning: DISASSEMBLE is being redefined.
;;; Warning: WITH-COMPILATION-UNIT is being redefined.
;;; Loading "/home/jlr/.ecl"
ECL (Embeddable Common-Lisp) 0.9
Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya
Copyright (C) 1993 Giuseppe Attardi
Copyright (C) 2000 Juan J. Garcia-Ripoll
        ECL is free software, and you are welcome to redistribute it
under certain conditions; see file 'Copyright' for details.
Type :h for Help.  Top level.
> (c::build-program "myecl")
[...]
jlr at mpq3p32:~/src/ecls-new/build> size ecl
   text    data     bss     dec     hex filename
1545378   37696   57452 1640526  19084e ecl
jlr at mpq3p32:~/src/ecls-new/build> size myecl
   text    data     bss     dec     hex filename
1262812   36188   57292 1356292  14b204 myecl
jlr at mpq3p32:~/src/ecls-new/build> ldd myecl
        not a dynamic executable

Regards,

Juanjo




More information about the ecl-devel mailing list