[BL] /lib/cpp error compiling in BL2 with libc-2.2.5 upgrade

sindi keesan keesan at sdf.lonestar.org
Fri Jan 6 15:34:04 EST 2006


On Fri, 6 Jan 2006, David Moberg wrote:

> sindi keesan wrote:
>
>> ldd libc.so.5 - statically compiled, does not need ld-linux, which I
>> probably did not need to even include in my netpbmt-for-bl2 package.
>> ls -l libc.so.5 580K
>
> Try removing ld-linux.so.1 from /lib. Does the libc5 netpbm still work?
> I predict that it won't.

I will try this some other time, in BL3, because I have already renamed 
(to .bak) all the other libc5 libraries for netpbm.

None of the libc5 netpbm programs have ld-linux as a dependency and all 
the libc6 ones do.

I just discovered that libc.so.5 had not been renamed and I could still 
compile without getting it as a dependency, but I had renamed libnetpbm 
and libtiff and ld-linux.

>
> ...
>
>> The tiff programs would not compile against my old libtiff.so because I
>> did not have the header files.  I will get the libtiff developer's
>> packages from SW81 if I can't compile libtiff, for which I might need a
>> newer gcc-g++.  With luck, nobody will send me any tiffs for a while.
>
> You might want the SW71 libtiff-devel instead of SW81.

I already upgraded to SW81 glibc and am using the newer libtiff package 
from SW81.  Instead of installing it, I extracted the tiff*.h files and 
libtiff.so.3.5.7 (which I symlinked to libtiff.so.3) by mounting the cd on 
/cd then looking at the contents with tar -ztvf libtiff*.tgz|less
then cd'ing to / and extracting just those files:
tar -zxvf /cd/slackware/l/libtiff*.tgz usr/lib/libtiff.so.3.5.7
tar -zxvf /cd/slackware/l/libtiff*.tgz usr/include/tiff*.h


>
>> Could I just do a make tiffpnm and make pnmtiff or is there some other way
>> to compile just those two files?
>
> cd netpbm-10.31/converter/other/
> make tifftopnm
> make pnmtotiff

Thanks, that worked, but at first I got the error message (on exit): 
cannot find -ltiff.so (which I think means it cannot find libtiff.so.3) I 
had told Makefile to look for libtiff.so.3, because there was no 
libtiff.so.  I had to create a symlink to libtiff.so and edit Makefile.

ldd says it needs libtiff.so.3 and libjpeg.so.62 but in Makefile I needed 
libtiff.so and libjpeg.so - why?


> This might fail if you have not already built libnetpbm.so or .a with
> 'make' or 'make -k'.

I have that already, make clean did not remove it.

> There might be other programs which failed to build. You should
> compare what you have with what is in the netpbm-libc5 package.

I ran it 'make' without -k and it got stuck on tiff before, but with these 
five files from libtiff package it seems to have all compiled and make 
package has not found anything missing like it did when I did make -k 
without tiff.

ls |wc lists 315 files for libc6 and 298 for libc5.  Only 17 more, and 
this is a later version of netpbm too, with a large cameratopam (converts 
camera raw image file to pam, and can also modify it).  pbmtonokia is also 
new.  There are 48 pam* in libc6 and only 38 in libc5, and since pam is 
the newer format they may be recently added programs (or else they were 
written more recently and designed to need libc6).  5 pam* vs 4.  So all 
but 6 of the files you did not compile are for pam.

Why did it make a lot of /lib/*.h files?  This time I told it not to build 
static libnetbpm.*.a and it did not, so do I need the header files?

It comes with an rgb.txt.

>> When doing make package, I got an error message that I have no echo.
>> busybox 1.01 has echo.  I put busybox 1.01 on the path on this computer
>> ahead of the previous busybox (which I had updated to BL3 busybox).
>
> You can also install echo from slackware. It's probably in shutils.tgz.
> The package may be larger, but the echo binary itself is smaller than
> busybox.

I also found it there, but I already have busybox-1.01 on my path instead 
of BL3 busybox, which did not work with your busybox 1.sh script because 
two programs were not fully functional.  So I ran the script and now have 
echo.  It seems to have made the package without it, anyway.

>
>> glibc-2.2.25 bloat:
>>
>> While tracking down libc.so.5-dependent libraries, I noticed that I have
>> in /usr/lib about 70MB of libraries which I think are used only for static
>> compiling.
>>
>> Can I safely delete at least anything in _p.a, such as a 25MB libc_p.a
>> files? The newer libraries no longer come in these pairs, just plain .a
>> (p = panel?)
>
> _p.a is for profiling. Profiling is for C programmers who want to figure
> out what part of their programs need to be optimized. The rest of us
> can safely delete the libraries ending in _p.a.
Thanks.>

>> There is also a 25MB libc.a.  If I used this to compile something
>> statically so it could be used on a non-upgraded SW71-based BL2, how much
>> would it add to the result?
>
> A lot. Possibly an average of half a megabyte for each netpbm
> program.
>
>> Should I bother trying to do this, or can other list members upgrade to glibc
>> 2.2.5 or 2.3.1 instead?
>
> It does not make much sense to do this unless you use the 'merge' build
> option for netpbm.

That would give a very big single program with a lot of things I have no 
use for.

>
> If you want BL2 users to not have to upgrade, then build with the SW71
> libraries.

I can't use the SW81 compiler and binutils with SW71 libraries and I don't 
know how to compile with them if I have glibc 2.1.3 and 2.2.5 on the same 
computer.  I will probably just compile dynamically instead of adding half 
a megabyte of libc, and require 2.2.5.  I can include any dependencies 
other than libc, ld-linux, and libm in my packages, but they will all need 
these first three.

>> Then there is a gconv directory with 8MB of things like MACINTOSH.so
>> GEORGIAN_ACADEMY.so qand libJIS.so and EBCDIC_PT.so.  Do I need anything
>> in here other than gconv-modules, ISO8859-*.so, and IBM*.so, EBCDIC_US.so?
>> BL3 does not even have this directory - what does it convert? A web search
>> suggests it does something with locale (the contents of which I deleted
>> since I read English).
>
> It is some kind of character set conversion. You usually do not need it if you
> read English.
>
>> Do I need any of these to display other character sets with loadfont?
>
> Maybe. Does loadfont work without it?

Yes.  I renamed it to .bak and loadfont/showfont works.  If everything 
else keeps working for a while I will delete it.  I am deleting older 
libpng and libtiff (and eventually all the libc5 stuff when I install 
netpbm).  Can you figure out what gconv is for?  No man page for it or 
iconv here.  Maybe only used by non-English-readers?

>> Should I add any programs to what I selected for libc5?
>
> No.
>
> I look forward to trying this new netpbm package out.
>
> David


Would you like a .tgz of all the bin files (1.2MB) and libnetpbm and
libtiff, libpng, and zlib?  (libjpeg has not changed since 1998 - you can 
get it from Slackware 7.1).

You will need libc6 basic files, and to make symlinks to all the 
libraries.  You explained how to make doinstall.sh with the symlinks but I 
need to find that email before doing the package.

Should tifftopnm still work if I can manage to replace libtiff.so.3.5.7 
with libtiff.so.3.8.0 later?

Two successes in 24 hours (lpr and netpbm).  Next fb.modes.



More information about the BasLinux mailing list