public inbox for gentoo-embedded@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-embedded] dansguardian and uclibc++
@ 2005-12-15 17:01 Natanael Copa
  2005-12-15 17:19 ` René Rhéaume
  0 siblings, 1 reply; 11+ messages in thread
From: Natanael Copa @ 2005-12-15 17:01 UTC (permalink / raw
  To: gentoo-embedded

Hi,

Has anyone been able to compile dansguardian against uclibc++ in
gentoo? 

I'm trying to avoid the gcc runtime dependency.

--
Natanael Copa

-- 
gentoo-embedded@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [gentoo-embedded] dansguardian and uclibc++
  2005-12-15 17:01 [gentoo-embedded] dansguardian and uclibc++ Natanael Copa
@ 2005-12-15 17:19 ` René Rhéaume
  2005-12-16  7:52   ` Natanael Copa
  0 siblings, 1 reply; 11+ messages in thread
From: René Rhéaume @ 2005-12-15 17:19 UTC (permalink / raw
  To: gentoo-embedded

2005/12/15, Natanael Copa <mlists@tanael.org>:
> I'm trying to avoid the gcc runtime dependency.
What do you mean ? libgcc or libstdc++ ?

-- 
gentoo-embedded@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [gentoo-embedded] dansguardian and uclibc++
  2005-12-15 17:19 ` René Rhéaume
@ 2005-12-16  7:52   ` Natanael Copa
  2005-12-17  1:05     ` Ned Ludd
  2005-12-19 12:28     ` Peter S. Mazinger
  0 siblings, 2 replies; 11+ messages in thread
From: Natanael Copa @ 2005-12-16  7:52 UTC (permalink / raw
  To: gentoo-embedded

On tor, 2005-12-15 at 12:19 -0500, René Rhéaume wrote:
> 2005/12/15, Natanael Copa <mlists@tanael.org>:
> > I'm trying to avoid the gcc runtime dependency.
> What do you mean ? libgcc or libstdc++ ?

libstc++-v3 has like 23MB sources. It takes a while to compile.
(Besides, it failed to compile.)


# emerge -s libgcc
Searching...
[ Results for search key : libgcc ]
[ Applications found : 0 ]

libgcc? where can i find it?

I would be much better if I could get it work with uclibc++. Its much
smaller.

I managed to get nmap to compile agains uclibc with

CXX=g++-uc emerge nmap

The romour says its possible to compile kde with uclibc++ so I was
hoping it would be possible to use uclibc++

--
Natanael Copa

-- 
gentoo-embedded@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [gentoo-embedded] dansguardian and uclibc++
  2005-12-16  7:52   ` Natanael Copa
@ 2005-12-17  1:05     ` Ned Ludd
  2005-12-19 10:33       ` [gentoo-embedded] uclibc++ as default for embedded (was: dansguardian and uclibc++) Natanael Copa
  2005-12-19 12:33       ` [gentoo-embedded] dansguardian and uclibc++ Peter S. Mazinger
  2005-12-19 12:28     ` Peter S. Mazinger
  1 sibling, 2 replies; 11+ messages in thread
From: Ned Ludd @ 2005-12-17  1:05 UTC (permalink / raw
  To: gentoo-embedded

On Fri, 2005-12-16 at 08:52 +0100, Natanael Copa wrote:
> On tor, 2005-12-15 at 12:19 -0500, René Rhéaume wrote:
> > 2005/12/15, Natanael Copa <mlists@tanael.org>:
> > > I'm trying to avoid the gcc runtime dependency.
> > What do you mean ? libgcc or libstdc++ ?
> 
> libstc++-v3 has like 23MB sources. It takes a while to compile.
> (Besides, it failed to compile.)
> 
> 
> # emerge -s libgcc
> Searching...
> [ Results for search key : libgcc ]
> [ Applications found : 0 ]
> 
> libgcc? where can i find it?
> 
> I would be much better if I could get it work with uclibc++. Its much
> smaller.
> 
> I managed to get nmap to compile agains uclibc with
> 
> CXX=g++-uc emerge nmap
> 
> 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.


> 
> --
> Natanael Copa
> 
-- 
Ned Ludd <solar@gentoo.org>
Gentoo Linux

-- 
gentoo-embedded@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [gentoo-embedded] uclibc++ as default for embedded (was: dansguardian and uclibc++)
  2005-12-17  1:05     ` Ned Ludd
@ 2005-12-19 10:33       ` Natanael Copa
  2005-12-19 12:33       ` [gentoo-embedded] dansguardian and uclibc++ Peter S. Mazinger
  1 sibling, 0 replies; 11+ messages in thread
From: Natanael Copa @ 2005-12-19 10:33 UTC (permalink / raw
  To: gentoo-embedded

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


-- 
gentoo-embedded@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [gentoo-embedded] dansguardian and uclibc++
  2005-12-16  7:52   ` Natanael Copa
  2005-12-17  1:05     ` Ned Ludd
@ 2005-12-19 12:28     ` Peter S. Mazinger
  2005-12-19 22:23       ` Natanael Copa
  1 sibling, 1 reply; 11+ messages in thread
From: Peter S. Mazinger @ 2005-12-19 12:28 UTC (permalink / raw
  To: gentoo-embedded

On Fri, 16 Dec 2005, Natanael Copa wrote:

> On tor, 2005-12-15 at 12:19 -0500, René Rhéaume wrote:
> > 2005/12/15, Natanael Copa <mlists@tanael.org>:
> > > I'm trying to avoid the gcc runtime dependency.
> > What do you mean ? libgcc or libstdc++ ?
> 
> libstc++-v3 has like 23MB sources. It takes a while to compile.
> (Besides, it failed to compile.)
> 
> 
> # emerge -s libgcc
> Searching...
> [ Results for search key : libgcc ]
> [ Applications found : 0 ]
> 
> libgcc? where can i find it?
> 
> I would be much better if I could get it work with uclibc++. Its much
> smaller.
> 
> I managed to get nmap to compile agains uclibc with
> 
> CXX=g++-uc emerge nmap
> 
> The romour says its possible to compile kde with uclibc++ so I was
> hoping it would be possible to use uclibc++
> -- > Natanael Copa

the rumours are right, I have built the whole kde suite (emerge kde) 
against uclibc++ (though not all uclibc++ related patches are in kde 
upstream probably - these patches are general c++ failures mostly in kde, 
not uclibc++ specific one, only libstdc++ tolerates some that are not 
allowed by specs).

I haven't done it your way though.
I have installed libuClibc++.so into the same dir where libstdc++.so sits, 
I have created an include/uclibcxx for headers at same location as 
include/g++-v3, I have created a new profile in /etc/env.d/gcc that uses 
the same config as the gcc used to build libuClibc++. I have created a new 
dir /usr/arch-*-uclibc/gcc-bin/<gcc-ver>-uclibcxx/ where every app is 
symlinked to /usr/arch-*-uclibc/gcc-bin/<gcc-ver>/, the only change is
arch-*-linux-uclibc-c++, that is the uClibc++ wrapper
in /etc/env.d/gcc/ I have copied the config of used build gcc to 
arch-*-linux-uclibc-<gcc-ver>-uclibcxx and replaced 
PATH/ROOTPATH/STDCXX_INCDIR w/ new locations (STDCXX_INCDIR is useless, 
don't rely on that, because it is not used -correctly-, you have to use 
the correct path in the wrapper)
Now I can switch w/ gcc-config to the profile using uclibc++ as with any 
other gcc one.
Currently it is heavily dependant on the gcc version used to build 
uClibc++, don't try to use it w/ other gcc.

Peter

-- 
Peter S. Mazinger <ps dot m at gmx dot net>           ID: 0xA5F059F2
Key fingerprint = 92A4 31E1 56BC 3D5A 2D08  BB6E C389 975E A5F0 59F2

-- 
gentoo-embedded@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [gentoo-embedded] dansguardian and uclibc++
  2005-12-17  1:05     ` Ned Ludd
  2005-12-19 10:33       ` [gentoo-embedded] uclibc++ as default for embedded (was: dansguardian and uclibc++) Natanael Copa
@ 2005-12-19 12:33       ` Peter S. Mazinger
  2005-12-20  7:55         ` Natanael Copa
  1 sibling, 1 reply; 11+ messages in thread
From: Peter S. Mazinger @ 2005-12-19 12:33 UTC (permalink / raw
  To: gentoo-embedded

On Fri, 16 Dec 2005, Ned Ludd wrote:

> On Fri, 2005-12-16 at 08:52 +0100, Natanael Copa wrote:
> > On tor, 2005-12-15 at 12:19 -0500, René Rhéaume wrote:
> > > 2005/12/15, Natanael Copa <mlists@tanael.org>:
> > > > I'm trying to avoid the gcc runtime dependency.
> > > What do you mean ? libgcc or libstdc++ ?
> > 
> > libstc++-v3 has like 23MB sources. It takes a while to compile.
> > (Besides, it failed to compile.)
> > 
> > 
> > # emerge -s libgcc
> > Searching...
> > [ Results for search key : libgcc ]
> > [ Applications found : 0 ]
> > 
> > libgcc? where can i find it?
> > 
> > I would be much better if I could get it work with uclibc++. Its much
> > smaller.
> > 
> > I managed to get nmap to compile agains uclibc with
> > 
> > CXX=g++-uc emerge nmap
> > 
> > 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.

dansguardian builds w/ the method I described earlier, it needs only in 
src/dansguardian.cpp commenting setlocale(...) at line 162 (if locales are 
not enabled)

Peter 

-- 
Peter S. Mazinger <ps dot m at gmx dot net>           ID: 0xA5F059F2
Key fingerprint = 92A4 31E1 56BC 3D5A 2D08  BB6E C389 975E A5F0 59F2

-- 
gentoo-embedded@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [gentoo-embedded] dansguardian and uclibc++
  2005-12-19 12:28     ` Peter S. Mazinger
@ 2005-12-19 22:23       ` Natanael Copa
  2005-12-28 13:16         ` Peter S. Mazinger
  0 siblings, 1 reply; 11+ messages in thread
From: Natanael Copa @ 2005-12-19 22:23 UTC (permalink / raw
  To: gentoo-embedded

On man, 2005-12-19 at 13:28 +0100, Peter S. Mazinger wrote:
> On Fri, 16 Dec 2005, Natanael Copa wrote:
> 
> > On tor, 2005-12-15 at 12:19 -0500, René Rhéaume wrote:
> > > 2005/12/15, Natanael Copa <mlists@tanael.org>:
> > > > I'm trying to avoid the gcc runtime dependency.
> > > What do you mean ? libgcc or libstdc++ ?
> > 
> > libstc++-v3 has like 23MB sources. It takes a while to compile.
> > (Besides, it failed to compile.)
> > 
> > 
> > # emerge -s libgcc
> > Searching...
> > [ Results for search key : libgcc ]
> > [ Applications found : 0 ]
> > 
> > libgcc? where can i find it?
> > 
> > I would be much better if I could get it work with uclibc++. Its much
> > smaller.
> > 
> > I managed to get nmap to compile agains uclibc with
> > 
> > CXX=g++-uc emerge nmap
> > 
> > The romour says its possible to compile kde with uclibc++ so I was
> > hoping it would be possible to use uclibc++
> > -- > Natanael Copa
> 
> the rumours are right, I have built the whole kde suite (emerge kde) 
> against uclibc++ (though not all uclibc++ related patches are in kde 
> upstream probably - these patches are general c++ failures mostly in kde, 
> not uclibc++ specific one, only libstdc++ tolerates some that are not 
> allowed by specs).
> 
> I haven't done it your way though.
> I have installed libuClibc++.so into the same dir where libstdc++.so sits, 
> I have created an include/uclibcxx for headers at same location as 
> include/g++-v3, I have created a new profile in /etc/env.d/gcc that uses 
> the same config as the gcc used to build libuClibc++. I have created a new 
> dir /usr/arch-*-uclibc/gcc-bin/<gcc-ver>-uclibcxx/ where every app is 
> symlinked to /usr/arch-*-uclibc/gcc-bin/<gcc-ver>/, the only change is
> arch-*-linux-uclibc-c++, that is the uClibc++ wrapper

Are you really sure that you mean "arch-*-linux-uclibc-c++" and not
"arch-*-linux-uclibc-g++"? Or both?

When I like arch-*-linux-uclibc-c++ to g++-uc dansguardan gets compiled
but it is still linked against libstdc++.so.6

> in /etc/env.d/gcc/ I have copied the config of used build gcc to 
> arch-*-linux-uclibc-<gcc-ver>-uclibcxx and replaced 
> PATH/ROOTPATH/STDCXX_INCDIR w/ new locations (STDCXX_INCDIR is useless, 
> don't rely on that, because it is not used -correctly-, you have to use 
> the correct path in the wrapper)
> Now I can switch w/ gcc-config to the profile using uclibc++ as with any 
> other gcc one.
> Currently it is heavily dependant on the gcc version used to build 
> uClibc++, don't try to use it w/ other gcc.
> 
> Peter
> 
> -- 
> Peter S. Mazinger <ps dot m at gmx dot net>           ID: 0xA5F059F2
> Key fingerprint = 92A4 31E1 56BC 3D5A 2D08  BB6E C389 975E A5F0 59F2
> 

-- 
gentoo-embedded@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [gentoo-embedded] dansguardian and uclibc++
  2005-12-19 12:33       ` [gentoo-embedded] dansguardian and uclibc++ Peter S. Mazinger
@ 2005-12-20  7:55         ` Natanael Copa
  2005-12-28 13:17           ` Peter S. Mazinger
  0 siblings, 1 reply; 11+ messages in thread
From: Natanael Copa @ 2005-12-20  7:55 UTC (permalink / raw
  To: gentoo-embedded

On man, 2005-12-19 at 13:33 +0100, Peter S. Mazinger wrote:
> On Fri, 16 Dec 2005, Ned Ludd wrote:
> 
> > On Fri, 2005-12-16 at 08:52 +0100, Natanael Copa wrote:
> > > On tor, 2005-12-15 at 12:19 -0500, René Rhéaume wrote:
> > > > 2005/12/15, Natanael Copa <mlists@tanael.org>:
> > > > > I'm trying to avoid the gcc runtime dependency.
> > > > What do you mean ? libgcc or libstdc++ ?
> > > 
> > > libstc++-v3 has like 23MB sources. It takes a while to compile.
> > > (Besides, it failed to compile.)
> > > 
> > > 
> > > # emerge -s libgcc
> > > Searching...
> > > [ Results for search key : libgcc ]
> > > [ Applications found : 0 ]
> > > 
> > > libgcc? where can i find it?
> > > 
> > > I would be much better if I could get it work with uclibc++. Its much
> > > smaller.
> > > 
> > > I managed to get nmap to compile agains uclibc with
> > > 
> > > CXX=g++-uc emerge nmap
> > > 
> > > 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.
> 
> dansguardian builds w/ the method I described earlier, it needs only in 
> src/dansguardian.cpp commenting setlocale(...) at line 162 (if locales are 
> not enabled)

Could you please verify that dansguardian really gets linked against
libuClibc++.so.0?

When I did exactly as you said (only symblinking
i386-gentoo-linux-uclibc-c++ -> g++-uc) dansguardian still got compiled
with gcc's g++ and it was linked against libstdc++.so.6. When I also had
a g++ -> g++-uc it really used g++-uc from uclibc++, but then the
compile failed.

...
creating ./config.status
g++  -march=i386 -Os -pipe -fomit-frame-pointer -Wall -c String.cpp
g++  -march=i386 -Os -pipe -fomit-frame-pointer -Wall -c
OptionContainer.cpp
/usr/lib/gcc/i386-gentoo-linux-uclibc/3.4.4/../../../../i386-gentoo-linux-uclibc/include/string_iostream: In function `std::basic_istream<charT, traits>& std::getline(std::basic_istream<charT, traits>&, std::basic_string<Ch, Tr, A>&, charT) [with charT = char, traits = std::char_traits<char>, Allocator = std::allocator<char>]':
/usr/lib/gcc/i386-gentoo-linux-uclibc/3.4.4/../../../../i386-gentoo-linux-uclibc/include/string_iostream:110:   instantiated from `std::basic_istream<charT, traits>& std::getline(std::basic_istream<charT, traits>&, std::basic_string<Ch, Tr, A>&) [with charT = char, traits = std::char_traits<char>, Allocator = std::allocator<char>]'
OptionContainer.cpp:84:   instantiated from here
/usr/lib/gcc/i386-gentoo-linux-uclibc/3.4.4/../../../../i386-gentoo-linux-uclibc/include/string_iostream:93: warning: comparison between signed and unsigned integer expressions
g++  -march=i386 -Os -pipe -fomit-frame-pointer -Wall -c FDTunnel.cpp
g++  -march=i386 -Os -pipe -fomit-frame-pointer -Wall -c
ConnectionHandler.cpp
ConnectionHandler.cpp: In member function `void
ConnectionHandler::doTheLogMan(std::string, std::string, std::string,
std::string, std::string, int, timeval*, bool, int, std::string)':
ConnectionHandler.cpp:672: error: `time' undeclared (first use this
function)
ConnectionHandler.cpp:672: error: (Each undeclared identifier is
reported only once for each function it appears in.)
ConnectionHandler.cpp:673: error: `localtime' undeclared (first use this
function)
ConnectionHandler.cpp:674: error: invalid use of undefined type `struct
tm'
ConnectionHandler.cpp:671: error: forward declaration of `struct tm'
ConnectionHandler.cpp:675: error: invalid use of undefined type `struct
tm'
ConnectionHandler.cpp:671: error: forward declaration of `struct tm'
ConnectionHandler.cpp:676: error: invalid use of undefined type `struct
tm'
ConnectionHandler.cpp:671: error: forward declaration of `struct tm'
ConnectionHandler.cpp:677: error: invalid use of undefined type `struct
tm'
ConnectionHandler.cpp:671: error: forward declaration of `struct tm'
ConnectionHandler.cpp:678: error: invalid use of undefined type `struct
tm'
ConnectionHandler.cpp:671: error: forward declaration of `struct tm'
ConnectionHandler.cpp:681: error: invalid use of undefined type `struct
tm'
ConnectionHandler.cpp:671: error: forward declaration of `struct tm'
ConnectionHandler.cpp: In member function `String
ConnectionHandler::hashedURL(String*, int, std::string*)':
ConnectionHandler.cpp:1180: error: `time' undeclared (first use this
function)
make: *** [ConnectionHandler.o] Error 1

I have also tried the ~x86 2.9.3.0_alpha version with similar results.
(time missing)

(I just discovered there is a dansguardian 2.9.3.1 out so I will have to
submit a bug report for an updated ebuild)



-- 
gentoo-embedded@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [gentoo-embedded] dansguardian and uclibc++
  2005-12-19 22:23       ` Natanael Copa
@ 2005-12-28 13:16         ` Peter S. Mazinger
  0 siblings, 0 replies; 11+ messages in thread
From: Peter S. Mazinger @ 2005-12-28 13:16 UTC (permalink / raw
  To: gentoo-embedded

On Mon, 19 Dec 2005, Natanael Copa wrote:

> On man, 2005-12-19 at 13:28 +0100, Peter S. Mazinger wrote:
> > On Fri, 16 Dec 2005, Natanael Copa wrote:
> > 
> > > On tor, 2005-12-15 at 12:19 -0500, René Rhéaume wrote:
> > > > 2005/12/15, Natanael Copa <mlists@tanael.org>:
> > > > > I'm trying to avoid the gcc runtime dependency.
> > > > What do you mean ? libgcc or libstdc++ ?
> > > 
> > > libstc++-v3 has like 23MB sources. It takes a while to compile.
> > > (Besides, it failed to compile.)
> > > 
> > > 
> > > # emerge -s libgcc
> > > Searching...
> > > [ Results for search key : libgcc ]
> > > [ Applications found : 0 ]
> > > 
> > > libgcc? where can i find it?
> > > 
> > > I would be much better if I could get it work with uclibc++. Its much
> > > smaller.
> > > 
> > > I managed to get nmap to compile agains uclibc with
> > > 
> > > CXX=g++-uc emerge nmap
> > > 
> > > The romour says its possible to compile kde with uclibc++ so I was
> > > hoping it would be possible to use uclibc++
> > > -- > Natanael Copa
> > 
> > the rumours are right, I have built the whole kde suite (emerge kde) 
> > against uclibc++ (though not all uclibc++ related patches are in kde 
> > upstream probably - these patches are general c++ failures mostly in kde, 
> > not uclibc++ specific one, only libstdc++ tolerates some that are not 
> > allowed by specs).
> > 
> > I haven't done it your way though.
> > I have installed libuClibc++.so into the same dir where libstdc++.so sits, 
> > I have created an include/uclibcxx for headers at same location as 
> > include/g++-v3, I have created a new profile in /etc/env.d/gcc that uses 
> > the same config as the gcc used to build libuClibc++. I have created a new 
> > dir /usr/arch-*-uclibc/gcc-bin/<gcc-ver>-uclibcxx/ where every app is 
> > symlinked to /usr/arch-*-uclibc/gcc-bin/<gcc-ver>/, the only change is
> > arch-*-linux-uclibc-c++, that is the uClibc++ wrapper
> 
> Are you really sure that you mean "arch-*-linux-uclibc-c++" and not
> "arch-*-linux-uclibc-g++"? Or both?

both, g++ is a link to c++ in my 
/etc/i386-gentoo-linux-uclibc/gcc-bin/3.4.5-uclibcxx/ dir
c++ is the wrapper

> 
> When I like arch-*-linux-uclibc-c++ to g++-uc dansguardan gets compiled
> but it is still linked against libstdc++.so.6

well, then your wrapper/setup is somehow wrong. It would be "easier" if 
an embedded dev would opt to add proper uClibc++ support to 
toolchain.eclass maybe, we could build along libstdc++ uClibc++ too and 
install both versions for !nocxx.
The only problem I encountered is that the you can have only one version 
of uClibc++ installed, I tried slotting it (it should have the same 
slotting as gcc), but the only way out of this missery is to add it too 
the gcc pkg. What we also will encounter as problem is the 
SPLIT_SPECS=true case, how do we then use libstdc++/uClibc++ switching
Maybe gcc-config/eselect* has to be improved to support changing the 
underlaying uClibc++.
There would also be another way to do the setup:
soname libuClibc++.so.0 as libstdc++.so.0 and switch only the 
libstdc++.so link from .so.[5,6] to libstdc++.so.0 or leave the soname as 
it is and create libuClibc++.so libstdc++.so link. Then we do not need the 
wrapper at all (the same has to happen with the include dir too, having 
g++-v3 a link either to the gcc/libstdc++ version or the uclibc++ header 
versions (STDCXX_INCDIR is ignored)

Peter 

-- 
Peter S. Mazinger <ps dot m at gmx dot net>           ID: 0xA5F059F2
Key fingerprint = 92A4 31E1 56BC 3D5A 2D08  BB6E C389 975E A5F0 59F2

-- 
gentoo-embedded@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [gentoo-embedded] dansguardian and uclibc++
  2005-12-20  7:55         ` Natanael Copa
@ 2005-12-28 13:17           ` Peter S. Mazinger
  0 siblings, 0 replies; 11+ messages in thread
From: Peter S. Mazinger @ 2005-12-28 13:17 UTC (permalink / raw
  To: gentoo-embedded

On Tue, 20 Dec 2005, Natanael Copa wrote:

> On man, 2005-12-19 at 13:33 +0100, Peter S. Mazinger wrote:
> > On Fri, 16 Dec 2005, Ned Ludd wrote:
> > 
> > > On Fri, 2005-12-16 at 08:52 +0100, Natanael Copa wrote:
> > > > On tor, 2005-12-15 at 12:19 -0500, René Rhéaume wrote:
> > > > > 2005/12/15, Natanael Copa <mlists@tanael.org>:
> > > > > > I'm trying to avoid the gcc runtime dependency.
> > > > > What do you mean ? libgcc or libstdc++ ?
> > > > 
> > > > libstc++-v3 has like 23MB sources. It takes a while to compile.
> > > > (Besides, it failed to compile.)
> > > > 
> > > > 
> > > > # emerge -s libgcc
> > > > Searching...
> > > > [ Results for search key : libgcc ]
> > > > [ Applications found : 0 ]
> > > > 
> > > > libgcc? where can i find it?
> > > > 
> > > > I would be much better if I could get it work with uclibc++. Its much
> > > > smaller.
> > > > 
> > > > I managed to get nmap to compile agains uclibc with
> > > > 
> > > > CXX=g++-uc emerge nmap
> > > > 
> > > > 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.
> > 
> > dansguardian builds w/ the method I described earlier, it needs only in 
> > src/dansguardian.cpp commenting setlocale(...) at line 162 (if locales are 
> > not enabled)
> 
> Could you please verify that dansguardian really gets linked against
> libuClibc++.so.0?
> 
> When I did exactly as you said (only symblinking
> i386-gentoo-linux-uclibc-c++ -> g++-uc) dansguardian still got compiled
> with gcc's g++ and it was linked against libstdc++.so.6. When I also had
> a g++ -> g++-uc it really used g++-uc from uclibc++, but then the
> compile failed.
> 
> ...
> creating ./config.status
> g++  -march=i386 -Os -pipe -fomit-frame-pointer -Wall -c String.cpp
> g++  -march=i386 -Os -pipe -fomit-frame-pointer -Wall -c
> OptionContainer.cpp
> /usr/lib/gcc/i386-gentoo-linux-uclibc/3.4.4/../../../../i386-gentoo-linux-uclibc/include/string_iostream: In function `std::basic_istream<charT, traits>& std::getline(std::basic_istream<charT, traits>&, std::basic_string<Ch, Tr, A>&, charT) [with charT = char, traits = std::char_traits<char>, Allocator = std::allocator<char>]':
> /usr/lib/gcc/i386-gentoo-linux-uclibc/3.4.4/../../../../i386-gentoo-linux-uclibc/include/string_iostream:110:   instantiated from `std::basic_istream<charT, traits>& std::getline(std::basic_istream<charT, traits>&, std::basic_string<Ch, Tr, A>&) [with charT = char, traits = std::char_traits<char>, Allocator = std::allocator<char>]'
> OptionContainer.cpp:84:   instantiated from here
> /usr/lib/gcc/i386-gentoo-linux-uclibc/3.4.4/../../../../i386-gentoo-linux-uclibc/include/string_iostream:93: warning: comparison between signed and unsigned integer expressions
> g++  -march=i386 -Os -pipe -fomit-frame-pointer -Wall -c FDTunnel.cpp
> g++  -march=i386 -Os -pipe -fomit-frame-pointer -Wall -c

probably you use the libstdc++ headers instead of the uClibc++ versions

Peter
> ConnectionHandler.cpp
> ConnectionHandler.cpp: In member function `void
> ConnectionHandler::doTheLogMan(std::string, std::string, std::string,
> std::string, std::string, int, timeval*, bool, int, std::string)':
> ConnectionHandler.cpp:672: error: `time' undeclared (first use this
> function)
> ConnectionHandler.cpp:672: error: (Each undeclared identifier is
> reported only once for each function it appears in.)
> ConnectionHandler.cpp:673: error: `localtime' undeclared (first use this
> function)
> ConnectionHandler.cpp:674: error: invalid use of undefined type `struct
> tm'
> ConnectionHandler.cpp:671: error: forward declaration of `struct tm'
> ConnectionHandler.cpp:675: error: invalid use of undefined type `struct
> tm'
> ConnectionHandler.cpp:671: error: forward declaration of `struct tm'
> ConnectionHandler.cpp:676: error: invalid use of undefined type `struct
> tm'
> ConnectionHandler.cpp:671: error: forward declaration of `struct tm'
> ConnectionHandler.cpp:677: error: invalid use of undefined type `struct
> tm'
> ConnectionHandler.cpp:671: error: forward declaration of `struct tm'
> ConnectionHandler.cpp:678: error: invalid use of undefined type `struct
> tm'
> ConnectionHandler.cpp:671: error: forward declaration of `struct tm'
> ConnectionHandler.cpp:681: error: invalid use of undefined type `struct
> tm'
> ConnectionHandler.cpp:671: error: forward declaration of `struct tm'
> ConnectionHandler.cpp: In member function `String
> ConnectionHandler::hashedURL(String*, int, std::string*)':
> ConnectionHandler.cpp:1180: error: `time' undeclared (first use this
> function)
> make: *** [ConnectionHandler.o] Error 1
> 
> I have also tried the ~x86 2.9.3.0_alpha version with similar results.
> (time missing)
> 
> (I just discovered there is a dansguardian 2.9.3.1 out so I will have to
> submit a bug report for an updated ebuild)
> 
> 
> 
> 

-- 
Peter S. Mazinger <ps dot m at gmx dot net>           ID: 0xA5F059F2
Key fingerprint = 92A4 31E1 56BC 3D5A 2D08  BB6E C389 975E A5F0 59F2

-- 
gentoo-embedded@gentoo.org mailing list



^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2005-12-28 13:19 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-12-15 17:01 [gentoo-embedded] dansguardian and uclibc++ Natanael Copa
2005-12-15 17:19 ` René Rhéaume
2005-12-16  7:52   ` Natanael Copa
2005-12-17  1:05     ` Ned Ludd
2005-12-19 10:33       ` [gentoo-embedded] uclibc++ as default for embedded (was: dansguardian and uclibc++) Natanael Copa
2005-12-19 12:33       ` [gentoo-embedded] dansguardian and uclibc++ Peter S. Mazinger
2005-12-20  7:55         ` Natanael Copa
2005-12-28 13:17           ` Peter S. Mazinger
2005-12-19 12:28     ` Peter S. Mazinger
2005-12-19 22:23       ` Natanael Copa
2005-12-28 13:16         ` Peter S. Mazinger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox