Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 4 Feb 2013 03:15:53 GMT
From:      Pedro Giffuni <pfg@FreeBSD.org>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   standards/175811: libstdc++ needs complex support in order use C99
Message-ID:  <201302040315.r143Fra2026596@red.freebsd.org>
Resent-Message-ID: <201302040320.r143K0QK037923@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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@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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201302040315.r143Fra2026596>