Subject: pkg/24775: build of gcc-2.95.3nb5 and gcc-2.95.3nb4 broken on 1.5.4_ALPHA
To: None <gnats-bugs@gnats.netbsd.org>
From: Klaus Heinz <k.heinz.maer.vier@onlinehome.de>
List: netbsd-bugs
Date: 03/14/2004 10:00:39
>Number:         24775
>Category:       pkg
>Synopsis:       build of gcc-2.95.3nb5 and gcc-2.95.3nb4 broken on 1.5.4_ALPHA
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Mar 14 09:05:00 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator:     Klaus Heinz
>Release:        NetBSD 1.5.4_ALPHA
>Organization:
none
>Environment:
System: NetBSD silence.homedns.org 1.5.4_ALPHA NetBSD 1.5.4_ALPHA (SILENCE) #0: Tue Feb 3 22:46:26 MET 2004 heinz@silence.homedns.org:/var/tmp2/src-1.5.4_ALPHA/src/sys/arch/i386/compile/SILENCE i386
Architecture: i386
Machine: i386
>Description:
	I believe the build gcc-2.95.3nb5 is broken on 1.5.4_ALPHA. It
	builds fine on 1.6.
	With pkgsrc from a few hours ago it stops here:

===> Checking for vulnerabilities in gcc-2.95.3nb5
=> Checksum OK for gcc-2.95.3.tar.gz.
=> Checksum OK for gcc-2.95.3-diff-2002-08-29.gz.
work.i386 -> /var/tmp2/workobj-pkgsrc/lang/gcc/work.i386
===> Extracting for gcc-2.95.3nb5
===> Required installed package gmake>=3.78: gmake-3.80nb2 found

...

touch bigstmp-complx
rm -f tlist
touch tlist
echo *.o >> tlist
for f in `cat ../libio/iostream.list` ; do \
  echo "../libio/$f" >> tlist ; \
done
for f in `cat ../libiberty/needed-list` strerror.o ; do \
  echo "../libiberty/$f" >> tlist ; \
done
mv tlist stdlist
rm -f tlibstdc++.a.4.0
ar rc tlibstdc++.a.4.0 `cat stdlist`
mv tlibstdc++.a.4.0 libstdc++.a.4.0
ranlib libstdc++.a.4.0
rm -f libstdc++.a
ln -s libstdc++.a.4.0 libstdc++.a || cp libstdc++.a.4.0 libstdc++.a
rm -f tlist
cp stdlist tlist
if [ x"yes" = xyes ]; then \
  sed 's,\([A-Za-z_]*\.o\),pic/\1,g' tlist > tlist2 ; \
  mv tlist2 tlist ; \
else true ; fi
mv tlist piclist
/var/tmp2/workobj-pkgsrc/lang/gcc/work.i386/objdir/gcc/xgcc -B/var/tmp2/workobj-pkgsrc/lang/gcc/work.i386/objdir/gcc/ -B/usr/pkg/gcc-2.95.3/i386--netbsdelf/bin/ -O2 -I/usr/pkg/include -fno-implicit-templates  -shared -o libstdc++.so.4.0 `cat piclist`
/usr/bin/ld: cannot open -lgcc_pic: No such file or directory
collect2: ld returned 1 exit status
gmake[1]: *** [libstdc++.so.4.0] Error 1
gmake[1]: Leaving directory `/var/tmp2/workobj-pkgsrc/lang/gcc/work.i386/objdir/i386--netbsdelf/libstdc++'
gmake: *** [all-target-libstdc++] Error 2
*** Error code 2

Stop.
*** Error code 1

Stop.

	The same problem occurs if I try to build gcc-2.95.3nb4. The
	build of gcc-2.95.3nb3 succeeds but does _not_ include
	libgcc_pic.a, only libgcc.a.

	I do not know whether this is related to the problem, but the reason
	why I wanted to rebuild gcc-2.95.3 was libgcc_pic.a as well. My old
	compiler package (plain gcc-2.95) did not link the shared library
	of devel/smpeg with libgcc_pic.a or libgcc.a which seem to be
	required to resolve the symbol __pure_virtual. The system compiler
	on 1.5.x (egcs-1.1.2) could not compile the library correctly, either.
	At least one package depending on libsmpeg.so complained about the
	missing symbol __pure_virtual.
	The binary packages on ftp.NetBSD.org for 1.5.1 (smpeg-0.4.1 and
	smpeg-0.4.1) miss the symbol as well, while binary packages for
	1.6* (smpeg-0.4.3 and smpeg-0.4.4*) provide it.

>How-To-Repeat:
	$ uname -sr
	NetBSD 1.5.4_ALPHA
	$ cd /usr/pkgsrc/lang/gcc
        $ make
>Fix:
	None.
>Release-Note:
>Audit-Trail:
>Unformatted: