------- Comment #18 from armand dot potter at free dot fr  2009-12-19 15:44 
-------
Configure is as follow:

/tmp/gcc-4.4.2/configure --enable-shared --enable-clocale=gnu
--enable-__cxa_atexit --libexecdir=/usr/lib --enable-threads=posix
--enable-languages=c,c++ --build=i686-pc-linux-gnu --host=x86_64-mine-linux-gnu
--target=x86_64-mine-linux-gnu

Here is the error:
make[2]: Entering directory `/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3'
make "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CC_FOR_TARGET=x86_64-mine-linux-gnu-gcc
" "CFLAGS=-g -O2 -pipe -march=athlon64  " "CXXFLAGS=-O2 -pipe -march=athlon64  
-D_GNU_SOUR
CE  " "CFLAGS_FOR_BUILD=" "CFLAGS_FOR_TARGET=-g -O2 -pipe -march=athlon64"
"INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644"
"INSTALL_PROGRAM=/usr/b
in/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-g
-O2 -pipe -march=athlon64  " "LIBCFLAGS_FOR_TARGET=-g -O2 -pipe
-march=athlon64" "MAKE=make" 
"MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 " "PICFLAG="
"PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/usr"
"infodir=/usr/share/inf
o" "libdir=/usr/lib" "includedir=/usr/include" "prefix=/usr"
"tooldir=/usr/x86_64-mine-linux-gnu" "gxx_include_dir=/usr/include/c++/4.4.2"
"AR=/usr/lib/gcc/x86_64-mine-li
nux-gnu/4.4.2/../../../../x86_64-mine-linux-gnu/bin/ar"
"AS=/usr/lib/gcc/x86_64-mine-linux-gnu/4.4.2/../../../../x86_64-mine-linux-gnu/bin/as"
"LD=/usr/lib/gcc/x86_64-min
e-linux-gnu/4.4.2/../../../../x86_64-mine-linux-gnu/bin/ld"
"RANLIB=/usr/lib/gcc/x86_64-mine-linux-gnu/4.4.2/../../../../x86_64-mine-linux-gnu/bin/ranlib"
"NM=/usr/lib/gc
c/x86_64-mine-linux-gnu/4.4.2/../../../../x86_64-mine-linux-gnu/bin/nm"
"NM_FOR_BUILD="
"NM_FOR_TARGET=/usr/lib/gcc/x86_64-mine-linux-gnu/4.4.2/../../../../x86_64-mine-li
nux-gnu/bin/nm" "DESTDIR=" "WERROR=" all-recursive
make[3]: Entering directory `/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3'
Making all in include
make[4]: Entering directory
`/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include'
mkdir -p ./x86_64-mine-linux-gnu/bits/stdtr1c++.h.gch
x86_64-mine-linux-gnu-c++  -x c++-header -O2 -pipe -march=athlon64  
-D_GNU_SOURCE  
-I/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/x86_64-mine-linux-gnu
-I/
tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include
-I/tmp/gcc-4.4.2/libstdc++-v3/libsupc++ -O2 -g
/tmp/gcc-4.4.2/libstdc++-v3/include/precompiled/stdtr1c++.h -o x86
_64-mine-linux-gnu/bits/stdtr1c++.h.gch/O2g.gch
In file included from
/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1/cfenv:46,
                 from
/tmp/gcc-4.4.2/libstdc++-v3/include/precompiled/stdtr1c++.h:33:
/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1_impl/cfenv:49:
error: '::fenv_t' has not been declared
/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1_impl/cfenv:50:
error: '::fexcept_t' has not been declared
/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1_impl/cfenv:53:
error: '::feclearexcept' has not been declared
/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1_impl/cfenv:54:
error: '::fegetexceptflag' has not been declared
/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1_impl/cfenv:55:
error: '::feraiseexcept' has not been declared
/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1_impl/cfenv:56:
error: '::fesetexceptflag' has not been declared
/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1_impl/cfenv:57:
error: '::fetestexcept' has not been declared
/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1_impl/cfenv:59:
error: '::fegetround' has not been declared
/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1_impl/cfenv:60:
error: '::fesetround' has not been declared
/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1_impl/cfenv:62:
error: '::fegetenv' has not been declared
/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1_impl/cfenv:63:
error: '::feholdexcept' has not been declared
/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1_impl/cfenv:64:
error: '::fesetenv' has not been declared
/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1_impl/cfenv:65:
error: '::feupdateenv' has not been declared
make[4]: *** [x86_64-mine-linux-gnu/bits/stdtr1c++.h.gch/O2g.gch] Error 1
make[4]: Leaving directory
`/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3'
make[1]: *** [all-target-libstdc++-v3] Error 2
make[1]: Leaving directory `/tmp/gcc-build'
make: *** [all] Error 2

And with -E | grep -i fenv:
subway:/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include$
x86_64-mine-linux-gnu-c++  -x c++-header -O2 -pipe -march=athlon64  
-D_GNU_SOURCE  
-I/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/x86_64-mine-linux-gnu
-I/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include
-I/tmp/gcc-4.4.2/libstdc++-v3/libsupc++ -O2 -g
/tmp/gcc-4.4.2/libstdc++-v3/include/precompiled/stdtr1c++.h -E | grep -i fenv
# 1 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1/cfenv" 1
# 32 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1/cfenv"
# 33 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1/cfenv" 3
# 1 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/fenv.h" 1 3
# 32 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/fenv.h" 3
# 33 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/fenv.h" 3
# 1
"/usr/lib/gcc/x86_64-mine-linux-gnu/4.4.2/../../../../x86_64-mine-linux-gnu/include/c++/4.4.2/fenv.h"
1 3
# 37 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/fenv.h" 2 3
# 37 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1/cfenv" 2 3
# 46 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1/cfenv" 3
# 1 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1_impl/cfenv"
1 3
# 44 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1_impl/cfenv"
3
  using ::fenv_t;
# 47 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1/cfenv" 2 3

And with -nostdinc++ added (compilation runs ok):
subway:/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include$
x86_64-mine-linux-gnu-c++ -nostdinc++ -x c++-header -O2 -pipe -march=athlon64  
-D_GNU_SOURCE  
-I/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/x86_64-mine-linux-gnu
-I/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include
-I/tmp/gcc-4.4.2/libstdc++-v3/libsupc++ -O2 -g
/tmp/gcc-4.4.2/libstdc++-v3/include/precompiled/stdtr1c++.h -E | grep -i fenv
# 1 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1/cfenv" 1
# 32 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1/cfenv"
# 33 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1/cfenv" 3
# 1 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/fenv.h" 1 3
# 32 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/fenv.h" 3
# 33 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/fenv.h" 3
# 1 "/new-system/usr/include/fenv.h" 1 3 4
# 58 "/new-system/usr/include/fenv.h" 3 4
# 1 "/new-system/usr/include/bits/fenv.h" 1 3 4
# 23 "/new-system/usr/include/bits/fenv.h" 3 4
# 24 "/new-system/usr/include/bits/fenv.h" 2 3 4
fenv_t;
# 59 "/new-system/usr/include/fenv.h" 2 3 4
extern int fegetenv (fenv_t *__envp) throw ();
extern int feholdexcept (fenv_t *__envp) throw ();
extern int fesetenv (__const fenv_t *__envp) throw ();
extern int feupdateenv (__const fenv_t *__envp) throw ();
# 1 "/new-system/usr/include/bits/fenvinline.h" 1 3 4
# 116 "/new-system/usr/include/fenv.h" 2 3 4
# 37 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/fenv.h" 2 3
# 37 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1/cfenv" 2 3
# 46 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1/cfenv" 3
# 1 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1_impl/cfenv"
1 3
# 44 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1_impl/cfenv"
3
  using ::fenv_t;
# 47 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1/cfenv" 2 3

/new-system being the sysroot dir used by gcc and where target glibc headers
are. Adding "-I/usr/include" also works even if wrong header is picked this
time:

subway:/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include$
x86_64-mine-linux-gnu-c++ -x c++-header -O2 -pipe -march=athlon64  
-D_GNU_SOURCE  
-I/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/x86_64-mine-linux-gnu
-I/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include
-I/tmp/gcc-4.4.2/libstdc++-v3/libsupc++ -I/usr/include -O2 -g
/tmp/gcc-4.4.2/libstdc++-v3/include/precompiled/stdtr1c++.h -E | grep fenv      
# 1 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1/cfenv" 1
# 32 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1/cfenv"
# 33 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1/cfenv" 3
# 1 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/fenv.h" 1 3
# 32 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/fenv.h" 3
# 33 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/fenv.h" 3
# 1 "/usr/include/fenv.h" 1 3
# 58 "/usr/include/fenv.h" 3
# 1 "/usr/include/bits/fenv.h" 1 3
# 26 "/usr/include/bits/fenv.h" 3
fenv_t;
# 59 "/usr/include/fenv.h" 2 3
extern int fegetenv (fenv_t *__envp) throw ();
extern int feholdexcept (fenv_t *__envp) throw ();
extern int fesetenv (__const fenv_t *__envp) throw ();
extern int feupdateenv (__const fenv_t *__envp) throw ();
# 1 "/usr/include/bits/fenvinline.h" 1 3
# 116 "/usr/include/fenv.h" 2 3
# 37 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/fenv.h" 2 3
# 37 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1/cfenv" 2 3
# 46 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1/cfenv" 3
# 1 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1_impl/cfenv"
1 3
# 44 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1_impl/cfenv"
3
  using ::fenv_t;
# 47 "/tmp/gcc-build/x86_64-mine-linux-gnu/libstdc++-v3/include/tr1/cfenv" 2 3

As a side note changing the "C" header model from c_global to c_std in
libstdc++-v3/configure.host file solves the problem as fenv.h is no longer
installed by gcc along with three other headers (two of them being also
provided by glibc).

Thanks for your time.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40974

Reply via email to