other/2931: Link errors (undef. __gxx_personality_v0) during libstdc++-v3/configure
pcarlini@unitus.it
pcarlini@unitus.it
Thu May 24 16:46:00 GMT 2001
>Number: 2931
>Category: other
>Synopsis: Link errors (undef. __gxx_personality_v0) during libstdc++-v3/configure
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu May 24 16:46:01 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: Paolo Carlini
>Release: gcc-20010521
>Organization:
>Environment:
i686-linux2.4.4-glibc2.2.3-binutils2.11
No special settings in configure beyond a --prefix=/usr/local/gcc.
>Description:
During libstdc++-v3/configure many tests fail (i.e., strtoll, strtoull, llabs, lldiv, atoll, lldiv_t, wcstoll, wcstoull)
due to a link error (undefined reference to `__gxx_personality_v0') and the support for long long ends up being (wrongly) disabled.
For example:
configure:3183: checking for strtoll
configure:3214: /home/paolo/Gcc-Test/gcc-build-20010521/gcc/xgcc -B/home/paolo/Gcc-Test/gcc-build-20010521/gcc/ -nostdinc++ -L/home/paolo/Gcc-Test/gcc-build-20010521/i686-pc-linux-gnu/libstdc++-v3/src -L/home/paolo/Gcc-Test/gcc-build-20010521/i686-pc-linux-gnu/libstdc++-v3/src/.libs -B/usr/local/gcc/i686-pc-linux-gnu/bin/ -B/usr/local/gcc/i686-pc-linux-gnu/lib/ -isystem /usr/local/gcc/i686-pc-linux-gnu/include -o conftest -g -O2 -fvtable-thunks -D_GNU_SOURCE conftest.C 1>&5
cc1plus: warning: -fvtable-thunks is no longer supported
/tmp/ccwmt8Jq.o: In function `main':
/home/paolo/Gcc-Test/gcc-build-20010521/i686-pc-linux-gnu/libstdc++-v3/configure:3211: undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
configure: failed program was:
#line 3188 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char strtoll(); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char strtoll();
int main() {
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_strtoll) || defined (__stub___strtoll)
choke me
#else
strtoll();
#endif
; return 0; }
>How-To-Repeat:
gcc-2001514 positively checks for those functions.
>Fix:
Those testcases are all named conftest.C but not eh support is linked at all, as happens usually when compiling c++ programs (via -lstdc++), so the error seems unavoidable...
In practice, either adding a -fno-exceptions or using conftest.c fixes the problem, but I don't know exactly what is the rationale behind those tests...
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the Gcc-bugs
mailing list