Re: gcc3 "millicode" problems with sh3 (toolchain/22452)
"Valeriy E. Ushakov" <[email protected]> Wed, 3 Sep 2003 20:51:40 +0400
| Newsgroups | gmane.os.netbsd.ports.sh3,gmane.os.netbsd.devel.toolchain |
|---|---|
| Message-ID | <[email protected]> |
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
%{!symbolic:%{!shared:-lgcc}%{shared:-lgcc_pic}}
# 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
--
[email protected] | Zu Grunde kommen
http://www.ptc.spbu.ru/~uwe/ | Ist zu Grunde gehen