[PPL-devel] dependency within libppl.so

Basile STARYNKEVITCH basile at starynkevitch.net
Tue Nov 14 15:30:21 CET 2006


Dear PPL developpers

I am starting to hack the GCC compiler to enhance it with program wide
static analysis. Sebastian Pop suggested me to consider using the PPL
library. FWIW, We are both working within the GlobalGCC project (ITEA
programme) http://gcc.gnu.org/ml/gcc/2006-10/msg00676.html

May I suggest a tiny enhancenment to PPL (I compiled and install PP 0.9 on
Linux/Debian/Sid AMD64 using gcc-4.1.2)?

I did a ./configure, make, sudo make install, and also tried with 

My suggestion is to update the build process so that dependencies are
recorded in the libppl.so and libppl_c.so shared object ELF files.

Currently I've got 

 % ldd /usr/local/lib/libppl.so /usr/local/lib/libppl_c.so
/usr/local/lib/libppl.so:
        libstdc++.so.6 => /usr/local/lib64/libstdc++.so.6 (0x00002b87d3802000)
        libm.so.6 => /lib/libm.so.6 (0x00002b87d3a04000)
        libc.so.6 => /lib/libc.so.6 (0x00002b87d3b86000)
        libgcc_s.so.1 => /usr/local/lib64/libgcc_s.so.1 (0x00002b87d3dc3000)
        /lib64/ld-linux-x86-64.so.2 (0x0000555555554000)
/usr/local/lib/libppl_c.so:
        libstdc++.so.6 => /usr/local/lib64/libstdc++.so.6 (0x00002b1daeca6000)
        libm.so.6 => /lib/libm.so.6 (0x00002b1daeea8000)
        libc.so.6 => /lib/libc.so.6 (0x00002b1daf02a000)
        libgcc_s.so.1 => /usr/local/lib64/libgcc_s.so.1 (0x00002b1daf267000)
        /lib64/ld-linux-x86-64.so.2 (0x0000555555554000)


The dpkg-buildpackage don't give much better results
 % ldd **/*.so
debian/tmp/usr/lib/libppl.so:
        libstdc++.so.6 => /usr/local/lib64/libstdc++.so.6 (0x00002b86acc64000)
        libm.so.6 => /lib/libm.so.6 (0x00002b86ace66000)
        libc.so.6 => /lib/libc.so.6 (0x00002b86acfe8000)
        libgcc_s.so.1 => /usr/local/lib64/libgcc_s.so.1 (0x00002b86ad225000)
        /lib64/ld-linux-x86-64.so.2 (0x0000555555554000)
debian/tmp/usr/lib/libppl_c.so:
        libstdc++.so.6 => /usr/local/lib64/libstdc++.so.6 (0x00002ba7b8ee7000)
        libm.so.6 => /lib/libm.so.6 (0x00002ba7b90e9000)
        libc.so.6 => /lib/libc.so.6 (0x00002ba7b926b000)
        libgcc_s.so.1 => /usr/local/lib64/libgcc_s.so.1 (0x00002ba7b94a8000)
        /lib64/ld-linux-x86-64.so.2 (0x0000555555554000)
debian/tmp/usr/lib/libpwl.so:
        libstdc++.so.6 => /usr/local/lib64/libstdc++.so.6 (0x00002b53ef135000)
        libm.so.6 => /lib/libm.so.6 (0x00002b53ef337000)
        libc.so.6 => /lib/libc.so.6 (0x00002b53ef4b9000)
        libgcc_s.so.1 => /usr/local/lib64/libgcc_s.so.1 (0x00002b53ef6f6000)
        /lib64/ld-linux-x86-64.so.2 (0x0000555555554000)

I believe that libppl_c.so should depend upon libppl.so, which should also
depend upon libmpfr.so (of course, version numbers are needed
in dependencies). For you information on my system, 
% ldd /usr/lib/libmpfr.so
        libgmp.so.3 => /usr/lib/libgmp.so.3 (0x00002af215670000)
        libc.so.6 => /lib/libc.so.6 (0x00002af2157af000)
        /lib64/ld-linux-x86-64.so.2 (0x0000555555554000)


To achieve such dependencies you might build the shared libraries with
appropriate -l and -rpath flags

See also http://www.tldp.org/HOWTO/Program-Library-HOWTO/index.html
http://www.gnu.org/software/libtool/manual.html#Inter_002dlibrary-dependencies

I do agree that the above dependencies issues are minor, and PPL0.9 seems to
be a very good software.


I'm not familiar enough with PPL or libtool to propose a patch. (I guess
that recent libtool claim to adress such issues).


A big thanks for your library!

PS please reply to me also, as I don't subscribe to the ppl devel list

-- 
Basile STARYNKEVITCH         http://starynkevitch.net/Basile/ 
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359 
8, rue de la Faïencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***



More information about the PPL-devel mailing list