standards/175811: libstdc++ needs complex support in order use C99
Pedro Giffuni
pfg at FreeBSD.org
Mon Feb 4 03:20:00 UTC 2013
>Number: 175811
>Category: standards
>Synopsis: libstdc++ needs complex support in order use C99
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-standards
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon Feb 04 03:20:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator: Pedro Giffuni
>Release: 9.1 but the issue is verified in 10-current
>Organization:
>Environment:
FreeBSD pcbsd-8555 9.1-PRERELEASE FreeBSD 9.1-PRERELEASE #7: Sun Oct 7 00:05:03 COT 2012 Pedro at pcbsd-8555:/usr/src/sys/amd64/compile/GENERIC amd64
>Description:
>From a posting @toolchain by Dimitry Andric:
I took the original gcc 4.2.1 release tarball, modified a few autoconf
related scripts to cope with "freebsd10.0" being the current version,
and did a full three-stage build, though only targeting C and C++.
The libstdc++ configure script in 4.2.1 does detect a few new features
that are not in our shipping config.h, but is does not detect any
different settings regarding C99.
The reason it does not turn on _GLIBCXX_USE_C99, is that not all of the
C99 requirements are met, specifically <complex.h> checks fail:
checking for ISO C99 support in <math.h>... yes
checking for ISO C99 support in <complex.h>... no
checking for ISO C99 support in <stdio.h>... yes
checking for ISO C99 support in <stdlib.h>... yes
checking for ISO C99 support in <wchar.h>... yes
checking for fully enabled ISO C99 support... no
The exact failure testcase goes like this:
configure:7435: checking for ISO C99 support in <complex.h>
configure:7492: /home/dim/obj/gcc-4.2.1/./gcc/xgcc -shared-libgcc -B/home/dim/obj/gcc-4.2.1/./gcc -nostdinc++ -L/home/dim/obj/gcc-4.2.1/i386-unknown-freebsd10.0/libstdc++-v3/src -L/home/dim/obj/gcc-4.2.1/i386-unknown-freebsd10.0/libstdc++-v3/src/.libs -B/home/dim/ins/gcc-4.2.1/i386-unknown-freebsd10.0/bin/ -B/home/dim/ins/gcc-4.2.1/i386-unknown-freebsd10.0/lib/ -isystem /home/dim/ins/gcc-4.2.1/i386-unknown-freebsd10.0/include -isystem /home/dim/ins/gcc-4.2.1/i386-unknown-freebsd10.0/sys-include -c -g -O2 conftest.cc >&5
conftest.cc: In function 'int main()':
conftest.cc:41: error: 'clogf' was not declared in this scope
conftest.cc:47: error: 'cpowf' was not declared in this scope
conftest.cc:54: error: 'clog' was not declared in this scope
conftest.cc:60: error: 'cpow' was not declared in this scope
conftest.cc:64: error: 'ccosl' was not declared in this scope
conftest.cc:65: error: 'ccoshl' was not declared in this scope
conftest.cc:66: error: 'cexpl' was not declared in this scope
conftest.cc:67: error: 'clogl' was not declared in this scope
conftest.cc:68: error: 'csinl' was not declared in this scope
conftest.cc:69: error: 'csinhl' was not declared in this scope
conftest.cc:71: error: 'ctanl' was not declared in this scope
conftest.cc:72: error: 'ctanhl' was not declared in this scope
conftest.cc:73: error: 'cpowl' was not declared in this scope
configure:7498: $? = 1
So until we actually implement and declare those functions, we should
probably not enable _GLIBCXX_USE_C99_COMPLEX and _GLIBCXX_USE_C99.
>How-To-Repeat:
>Fix:
Just a reminder (I know .. shutup and code).
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-standards
mailing list