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
