On Wed, 16 Aug 2000, Ross A. Towle wrote:
> Problem 1: segfault
> I suspect it is really a kernel problem. Does other IA-32 apps also
> fail? I think a newer kernel will fix the problem.
It seems that it was a transient problem. Now I can run the compilers
on a native ia64 system, but I have a linking problem with sgiCC:
pc64-016:~ 0 31> sgiCC cpptest.cpp
/usr/lib/gcc-lib/ia64-redhat-linux/2.9-ia64-000216-final/libstdc++.a(filebuf.o):../../../libio/filebuf.cc:98:
undefined reference to `__throw'
/usr/lib/gcc-lib/ia64-redhat-linux/2.9-ia64-000216-final/libstdc++.a(filebuf.o):
In function `filebuf::filebuf(int)':
filebuf.o(.text+0x282): undefined reference to `__throw'
/usr/lib/gcc-lib/ia64-redhat-linux/2.9-ia64-000216-final/libstdc++.a(filebuf.o):
In function `filebuf::filebuf(int, char *, int)':
filebuf.o(.text+0x432): undefined reference to `__throw'
collect2: ld returned 1 exit status
The problem is caused by a mismatch between
/usr/lib/gcc-lib/ia64-redhat-linux/2.9-ia64-000216-final/libstdc++.a
and /usr/lib/gcc-lib/ia64-sgi-linux/sgicc-1.0/libgcc.a.
The former uses the __throw symbol, expecting the latter to define
it, which is not the case.
The libgcc.a supplied by RedHat does define __throw:
pc64-016:~ 1 36> nm
/usr/lib/gcc-lib/ia64-redhat-linux/2.9-ia64-000216-final/libgcc.a | grep
__throw$ | head -1
0000000000001120 T __throw
Unfortunately, this libgcc.a cannot be used as a replacement for the one
supplied with the SGI compilers, because of other incompatibilities.
Probably the best fix would be to include libstdc++.a in the Pro64
package, to ensure its compatibility with libgcc.a.
Dan
|