Subject: Re: gcc3 "millicode" problems with sh3 (toolchain/22452)
To: None <,>
From: Valeriy E. Ushakov <>
List: tech-toolchain
Date: 09/03/2003 20:51:40
On Wed, Sep 03, 2003 at 12:18:18 -0400, Todd Vierling wrote:

> On Wed, 3 Sep 2003, Valeriy E. Ushakov wrote:
> : > This part should already be happening.  NetBSD's gcc LIBGCC_SPEC will use
> : > -lgcc_pic in place of -lgcc when invoking "gcc -shared" for link.
> :
> : I don't see anything like that in our tree.  I also don't see
> : -lgcc_pic in my build logs for either gcc2 or gcc3 world builds.
> When you link anything with "cc -o foo ...", -lgcc is implicitly added (see
> LIBGCC_SPEC in the gcc sources, or do "gcc -dumpspecs" and look at the line
> after "*libgcc:").  When -shared is specified in the link, -lgcc_pic should
> be used instead.  This was the case at least for gcc 2.95 as in NetBSD 1.6,
> and I believe its behavior should have been carried over to gcc3.

Apparently it was not:

# gcc2
$ /usr/nb/tools/bin/shle--netbsdelf-gcc -dumpspecs | grep -e -lgcc

# gcc3
$ /usr/nb3/tools/bin/shle--netbsdelf-gcc -dumpspecs | grep -e -lgcc
%{!shared:%{!symbolic: -lgcc}}

If linking -lgcc_pic into shlibs is ok, we won't need a special
library, just move __udivsi3 &c into libgcc and mark the .hidden.

PS: While we are at the topic of libc vs. libgcc why do we have our
own softfloat in libc and also have gcc's softfloat in libgcc?

SY, Uwe
--                         |       Zu Grunde kommen            |       Ist zu Grunde gehen