On fre, 2005-12-16 at 20:05 -0500, Ned Ludd wrote:
> On Fri, 2005-12-16 at 08:52 +0100, Natanael Copa wrote:
 
> > The romour says its possible to compile kde with uclibc++ so I was
> > hoping it would be possible to use uclibc++
> 
> It's true. You can replace most of your system with uclibc++. It just 
> takes some effort. 
> 
> I guess this is about as good time as any. Natanael if you can attempt 
> to swap out all your c++ needs with uclibc++ and report back if you 
> think we should make that the default for uclibc based profiles I/we 
> would be thankful.

It looks like uclibc++ would work for most packages. Here is what I did.

I added a

CXX=g++-uc

in /etc/make.conf

Then I did a:

revdep-rebuild --soname libstdc++.so.6

The packages that got recompiled was:
dev-lang/python
app-text/silvercity
dev-db/mysql
dev-libs/gmp
dev-libs/libpcre
dev-libs/libusb
media-libs/tiff
media-sound/ermixer
sys-apps/groff
sys-libs/db

(I had recompiled nmap manually before)

There are a few "problems.

* It looks like revdep-rebuild didnt find dansguardian and tripwire (its
in /usr/sbin). I'll get back to those later.

* There are no RDEPEND's to the packages. If you just install from
binaries the uclibc++ lib will not be installed. (not any other package
containing the libstdc++ runtime either btw) So there is some runtime
dependencies that needs to be resolved by hand.

* If you install the uclibc++ by hand, the executable will still fail
because the path to the ld.so.conf does not contain the path to
libuClibc++.so.0. Should uclibc have a symbolic link in /usr/lib where
it will be found by default?

* mysql is still linked against libstdc++.so.6:
mail ~ # readelf -d /usr/bin/mysql

Dynamic section at offset 0xfc68 contains 33 entries:
  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [libreadline.so.5]
 0x00000001 (NEEDED)                     Shared library: [libncurses.so.5]
 0x00000001 (NEEDED)                     Shared library: [libstdc++.so.6]
 0x00000001 (NEEDED)                     Shared library: [libmysqlclient.so.14]
 0x00000001 (NEEDED)                     Shared library: [libcrypt.so.0]
 0x00000001 (NEEDED)                     Shared library: [libnsl.so.0]
 0x00000001 (NEEDED)                     Shared library: [libm.so.0]
 0x00000001 (NEEDED)                     Shared library: [libssl.so.0.9.7]
 0x00000001 (NEEDED)                     Shared library: [libcrypto.so.0.9.7]
 0x00000001 (NEEDED)                     Shared library: [libz.so.1]
 0x00000001 (NEEDED)                     Shared library: [libuClibc++.so.0]
 0x00000001 (NEEDED)                     Shared library: [libc.so.0]

That happens to several (if not all) of the binaries of mysql. Wierd...

* Dansguardian does not seem to use CXX. I tried to set CPP but it
fails. It looks like the openwrt people have an ipkg with
dansguardian/uclibc++ so it should work... I looked at is shortly last
week and it *might* be a AC_PROG_CXX missing in configure.in, but I
don't really understand how dansguardian uses autoconf. The configure is
in a autoconf/ subdir.

I'll try to find the binaries in /usr/sbin manually now and recompile. 

--
Natanael Copa


-- 
[email protected] mailing list

Reply via email to