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