Subject: lang/gcc broken on 1.5.x
To: None <tech-pkg@NetBSD.org>
From: Klaus Heinz <k.heinz.feb.vier@onlinehome.de>
List: tech-pkg
Date: 02/29/2004 08:14:02
Hi,

I believe the build gcc-2.95.3nb5 is broken on 1.5.4_ALPHA, while 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

  ...

  /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/ -c -O2 -I/usr/pkg/include -fno-implicit-templates -I/var/tmp2/workobj-pkgsrc/lang/gcc/work.i386/gcc-2.95.3/libstdc++ -I/var/tmp2/workobj-pkgsrc/lang/gcc/work.i386/gcc-2.95.3/libstdc++/stl -I../libio -I/var/tmp2/workobj-pkgsrc/lang/gcc/work.i386/gcc-2.95.3/libstdc++/../libio -nostdinc++  -DLD `for N in EXTRACT INSERT; do echo " -D${N}"; done` \
    /var/tmp2/workobj-pkgsrc/lang/gcc/work.i386/gcc-2.95.3/libstdc++/cinst.cc -o ldcomio.o
  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.


I do not know whether this could be related, but the reason why I wanted
to rebuild gcc-2.95.3 was libgcc_pic.a as well. The old compiler package
(plain gcc-2.95) did not link the shared library of devel/smpeg with
libgcc_pic.a which seems to be required to resolve the symbol
__pure_virtual. Probably needless to mention that 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 later about the
missing symbol __pure_virtual.

The binary packages 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.


Should a PR for this be filed under pkg or toolchain?

ciao
     Klaus