Bug 39238 - trunk revision 144279 - cfenv:54: error: ‘::fenv_t’ has not been declared
trunk revision 144279 - cfenv:54: error: ‘::fenv_t’ has not been declared
Status: RESOLVED FIXED
Product: gcc
Classification: Unclassified
Component: libstdc++
4.4.0
: P3 blocker
: ---
Assigned To: Not yet assigned to anyone
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2009-02-19 02:13 UTC by Rob
Modified: 2010-08-10 22:01 UTC (History)
4 users (show)

See Also:
Host: i386-pc-solaris2.11
Target: i386-pc-solaris2.11
Build: i386-pc-solaris2.11
Known to work:
Known to fail:
Last reconfirmed:


Attachments
proposed patch for the problem resolution on gcc-4_4-branch (2.53 KB, patch)
2009-08-27 15:59 UTC, Vladimir Zapolskiy
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Rob 2009-02-19 02:13:13 UTC
I am getting this Warning: "O0g.gch: created and used with differing settings of '-momit-leaf-frame-pointer'"

and this error:

# gcc/xgcc -v
Using built-in specs.
Target: i386-pc-solaris2.11
Configured with: ../gcc_trunk/configure --prefix=/usr/local/gcc4 --enable-languages=ada,c,c++,fortran,java,objc,obj-c++ --enable-shared --disable-static --enable-multilib --enable-decimal-float --with-long-double-128 --with-included-gettext --enable-stage1-checking --enable-checking=release --with-tune=k8 --with-cpu=k8 --with-arch=k8 --with-gnu-as --with-as=/usr/local/bin/as --with-gnu-ld --with-ld=/usr/local/bin/ld --with-gmp=/usr/local --with-mpfr=/usr/local --without-ppl
Thread model: posix
gcc version 4.4.0 20090218 (experimental) [trunk revision 144279] (GCC) 

# gmake
...
Making all in include
gmake[4]: Entering directory `/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include'
mkdir -p ./i386-pc-solaris2.11/bits/stdtr1c++.h.gch
g++ -Winvalid-pch -x c++-header -g -O2   -I/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include/i386-pc-solaris2.11 -I/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include -I/usr/share/src/gcc_trunk/libstdc++-v3/libsupc++ -O2 -g /usr/share/src/gcc_trunk/libstdc++-v3/include/precompiled/stdtr1c++.h -o i386-pc-solaris2.11/bits/stdtr1c++.h.gch/O2g.gch
/usr/share/src/gcc_trunk/libstdc++-v3/include/precompiled/stdtr1c++.h:34:25: warning: /usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include/i386-pc-solaris2.11/bits/stdc++.h.gch/O0g.gch: created and used with differing settings of '-momit-leaf-frame-pointer'
In file included from /usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include/tr1/cfenv:51,
                 from /usr/share/src/gcc_trunk/libstdc++-v3/include/precompiled/stdtr1c++.h:38:
/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include/tr1_impl/cfenv:54: error: ‘::fenv_t’ has not been declared
/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include/tr1_impl/cfenv:55: error: ‘::fexcept_t’ has not been declared
/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include/tr1_impl/cfenv:58: error: ‘::feclearexcept’ has not been declared
/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include/tr1_impl/cfenv:59: error: ‘::fegetexceptflag’ has not been declared
/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include/tr1_impl/cfenv:60: error: ‘::feraiseexcept’ has not been declared
/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include/tr1_impl/cfenv:61: error: ‘::fesetexceptflag’ has not been declared
/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include/tr1_impl/cfenv:62: error: ‘::fetestexcept’ has not been declared
/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include/tr1_impl/cfenv:64: error: ‘::fegetround’ has not been declared
/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include/tr1_impl/cfenv:65: error: ‘::fesetround’ has not been declared
/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include/tr1_impl/cfenv:67: error: ‘::fegetenv’ has not been declared
/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include/tr1_impl/cfenv:68: error: ‘::feholdexcept’ has not been declared
/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include/tr1_impl/cfenv:69: error: ‘::fesetenv’ has not been declared
/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include/tr1_impl/cfenv:70: error: ‘::feupdateenv’ has not been declared
gmake[4]: *** [i386-pc-solaris2.11/bits/stdtr1c++.h.gch/O2g.gch] Error 1
gmake[4]: Leaving directory `/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include'
gmake[3]: *** [all-recursive] Error 1
gmake[3]: Leaving directory `/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3'
gmake[2]: *** [all] Error 2
gmake[2]: Leaving directory `/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3'
gmake[1]: *** [all-target-libstdc++-v3] Error 2
gmake[1]: Leaving directory `/usr/share/src/gcc_build'
gmake: *** [all] Error 2

All was well last week ...


Looking back at an old Build Log I tried this command:

/usr/share/src/gcc_build/./gcc/xgcc -shared-libgcc -B/usr/share/src/gcc_build/./gcc -nostdinc++ -L/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/src -L/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/src/.libs -B/usr/local/i386-pc-solaris2.11/bin/ -B/usr/local/i386-pc-solaris2.11/lib/ -isystem /usr/local/i386-pc-solaris2.11/include -isystem /usr/local/i386-pc-solaris2.11/sys-include -Winvalid-pch -x c++-header -g -O2   -I/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include/i386-pc-solaris2.11 -I/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include -I/usr/share/src/gcc_trunk/libstdc++-v3/libsupc++ -O2 -g /usr/share/src/gcc_trunk/libstdc++-v3/include/precompiled/stdtr1c++.h -o i386-pc-solaris2.11/bits/stdtr1c++.h.gch/O2g.gch


works without error, but ...


# gmake
(short wait)
...
i386-pc-solaris2.11/libstdc++-v3/include/i386-pc-solaris2.11/bits/stdtr1c++.h.gch/O2g.gch: created by a different GCC executable
In file included from /usr/share/src/gcc_trunk/libstdc++-v3/include/precompiled/extc++.h:34:
/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include/i386-pc-solaris2.11/bits/stdtr1c++.h:34:25: warning: /usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include/i386-pc-solaris2.11/bits/stdc++.h.gch/O0g.gch: created and used with differing settings of '-momit-leaf-frame-pointer'
...

Now it believes that xgcc is "different GCC executable", investigating ...

Rob
Comment 1 Rob 2009-02-19 02:21:06 UTC
New warning "different GCC executable" was just 'xgcc' instead of 'g++'.


Next error in 'extc++.h.gch/O2g.gch' is fixed by:

/usr/share/src/gcc_build/./gcc/xgcc -shared-libgcc -B/usr/share/src/gcc_build/./gcc -nostdinc++ -L/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/src -L/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/src/.libs -B/usr/local/i386-pc-solaris2.11/bin/ -B/usr/local/i386-pc-solaris2.11/lib/ -isystem /usr/local/i386-pc-solaris2.11/include -isystem /usr/local/i386-pc-solaris2.11/sys-include -Winvalid-pch -x c++-header -g -O2   -I/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include/i386-pc-solaris2.11 -I/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/include -I/usr/share/src/gcc_trunk/libstdc++-v3/libsupc++ -O2 -g /usr/share/src/gcc_trunk/libstdc++-v3/include/precompiled/extc++.h -o i386-pc-solaris2.11/bits/extc++.h.gch/O2g.gch

Rob
Comment 2 Rob 2009-02-19 02:30:51 UTC
That worked.

The build continues until it fails here:

# gmake
(5 minutes)
...
Making all in src
gmake[4]: Entering directory `/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/src'
...
 -DPIC -o .libs/parallel_settings.o
/bin/sh ../libtool --tag CXX --mode=link g++ -Wl,-O1 -Wl,-z,relro  -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual  -fdiagnostics-show-location=once  -ffunction-sections -fdata-sections   -o libstdc++.la -rpath /usr/local/gcc4/lib -version-info 6:11:0  -lm  atomic.lo bitmap_allocator.lo pool_allocator.lo mt_allocator.lo codecvt.lo compatibility.lo complex_io.lo ctype.lo debug.lo functexcept.lo hash.lo hash_c++0x.lo globals_io.lo hashtable.lo hashtable_c++0x.lo ios.lo ios_failure.lo ios_init.lo ios_locale.lo limits.lo limits_c++0x.lo list.lo debug_list.lo locale.lo locale_init.lo locale_facets.lo localename.lo math_stubs_float.lo math_stubs_long_double.lo stdexcept.lo strstream.lo system_error.lo tree.lo allocator-inst.lo concept-inst.lo fstream-inst.lo ext-inst.lo ios-inst.lo iostream-inst.lo istream-inst.lo istream.lo locale-inst.lo misc-inst.lo ostream-inst.lo sstream-inst.lo streambuf-inst.lo streambuf.lo string-inst.lo valarray-inst.lo wlocale-inst.lo wstring-inst.lo mutex.lo condition_variable.lo chrono.lo thread.lo atomicity.lo codecvt_members.lo collate_members.lo ctype_members.lo messages_members.lo monetary_members.lo numeric_members.lo time_members.lo basic_file.lo c++locale.lo  parallel_list.lo parallel_settings.lo  ../libsupc++/libsupc++convenience.la 
libtool: link: g++ -shared -nostdlib /usr/lib/crti.o /usr/lib/values-Xa.o /usr/local/lib/gcc/i386-pc-solaris2.11/4.4.0/crtbegin.o  .libs/atomic.o .libs/bitmap_allocator.o .libs/pool_allocator.o .libs/mt_allocator.o .libs/codecvt.o .libs/compatibility.o .libs/complex_io.o .libs/ctype.o .libs/debug.o .libs/functexcept.o .libs/hash.o .libs/hash_c++0x.o .libs/globals_io.o .libs/hashtable.o .libs/hashtable_c++0x.o .libs/ios.o .libs/ios_failure.o .libs/ios_init.o .libs/ios_locale.o .libs/limits.o .libs/limits_c++0x.o .libs/list.o .libs/debug_list.o .libs/locale.o .libs/locale_init.o .libs/locale_facets.o .libs/localename.o .libs/math_stubs_float.o .libs/math_stubs_long_double.o .libs/stdexcept.o .libs/strstream.o .libs/system_error.o .libs/tree.o .libs/allocator-inst.o .libs/concept-inst.o .libs/fstream-inst.o .libs/ext-inst.o .libs/ios-inst.o .libs/iostream-inst.o .libs/istream-inst.o .libs/istream.o .libs/locale-inst.o .libs/misc-inst.o .libs/ostream-inst.o .libs/sstream-inst.o .libs/streambuf-inst.o .libs/streambuf.o .libs/string-inst.o .libs/valarray-inst.o .libs/wlocale-inst.o .libs/wstring-inst.o .libs/mutex.o .libs/condition_variable.o .libs/chrono.o .libs/thread.o .libs/atomicity.o .libs/codecvt_members.o .libs/collate_members.o .libs/ctype_members.o .libs/messages_members.o .libs/monetary_members.o .libs/numeric_members.o .libs/time_members.o .libs/basic_file.o .libs/c++locale.o .libs/parallel_list.o .libs/parallel_settings.o  -Wl,--whole-archive ../libsupc++/.libs/libsupc++convenience.a -Wl,--no-whole-archive  -Wl,-rpath -Wl,/usr/local/lib -Wl,-rpath -Wl,/usr/local/lib -L/usr/local/lib/gcc/i386-pc-solaris2.11/4.4.0 -L/usr/local/lib/gcc/i386-pc-solaris2.11/4.4.0/../../../../i386-pc-solaris2.11/lib -L/usr/local/lib/gcc/i386-pc-solaris2.11/4.4.0/../../.. /usr/local/lib/libstdc++.so -lm -lgcc_s /usr/local/lib/gcc/i386-pc-solaris2.11/4.4.0/crtend.o /usr/lib/crtn.o  -Wl,-O1 -Wl,-z -Wl,relro   -Wl,-soname -Wl,libstdc++.so.6 -o .libs/libstdc++.so.6.0.11
ld: fatal: option -z has illegal argument `relro'
usage: ld [-6:abc:d:e:f:h:il:mo:p:rstu:z:B:CD:F:GI:L:M:N:P:Q:R:S:VW:Y:?] file(s)
	[-64]		enforce a 64-bit link-edit
	[-a]		create an absolute file
	[-b]		do not do special PIC relocations in a.out
	[-B direct | nodirect]
			establish direct bindings, or inhibit direct binding
			to, the object being created
	[-B dynamic | static]
			search for shared libraries|archives
	[-B eliminate]	eliminate unqualified global symbols from the
			symbol table
	[-B group]	relocate object from within group
	[-B local]	reduce unqualified global symbols to local
	[-B reduce]	process symbol reductions
	[-B symbolic]	bind external references to definitions when creating
			shared objects
	[-c name]	record configuration file `name'
	[-C]		demangle C++ symbol name diagnostics
	[-d y | n]	operate in dynamic|static mode
	[-D token,...]	print diagnostic messages
	[-e epsym], [--entry epsym]
			use `epsym' as entry point address
	[-f name], [--auxiliary name]
			specify library for which this file is an auxiliary
			filter
	[-F name], [--filter name]
			specify library for which this file is a filter
	[-G], [-shared]
			create a shared object
	[-h name], [--soname name]
			use `name' as internal shared object identifier
	[-i]		ignore LD_LIBRARY_PATH setting
	[-I name]	use `name' as path of interpreter
	[-l x], [--library x]
			search for libx.so or libx.a
	[-L path], [--library-path path]
			search for libraries in directory `path'
	[-m]		print memory map
	[-M mapfile]	use processing directives contained in `mapfile'
	[-N string]	create a dynamic dependency for `string'
	[-o outfile], [--output outfile]
			name the output file `outfile'
	[-p auditlib]	identify audit library to accompany this object
	[-P auditlib]	identify audit library for processing the dependencies
			of this object
	[-Q y | n]	do|do not place version information in output file
	[-r], [--relocatable]
			create a relocatable object
	[-R path], [-rpath path]
			specify a library search path to be used at run time
	[-s], [--strip-all]
			strip any symbol and debugging information
	[-S supportlib]
			specify a link-edit support library
	[-t]		do not warn of multiply-defined symbols that have
			different sizes or alignments
	[-u symname], [--undefined symname]
			create an undefined symbol `symname'
	[-V], [--version]
			print version information
	[-Y P,dirlist]	use `dirlist' as a default path when searching for
			libraries
	[-z absexec]	when building an executable absolute symbols
 			referenced in dynamic objects are promoted to
 			the executable
	[-z allextract | defaultextract | weakextract],
	[--whole-archive | --no-whole-archive]
			extract all member files, only members that resolve
			undefined or tentative symbols, or allow extraction of
			archive members to resolve weak references from 
			archive files
	[-z altexec64]	execute the 64-bit link-editor
	[-z combreloc | nocombreloc]
			combine|do not combine multiple relocation sections
	[-z defs], [--no-undefined]
			disallow undefined symbol references
	[-z direct | nodirect]
			enable|disable direct binding to shared object
			dependencies
	[-z endfiltee]	marks a filtee such that it will terminate a filters
			search
	[-z finiarray=function]
			name of function to be appended to the .finiarray
	[-z groupperm | nogroupperm]
			enable|disable setting of group permissions
			on dynamic dependencies
	[-z help], [--help]
			print this usage message
	[-z ignore | record]
			ignore|record unused dynamic dependencies
	[-z initarray=function]
			name of function to be appended to the .initarray
	[-z initfirst]	mark object to indicate that its .init section should
			be executed before the .init section of any other
			objects
	[-z interpose]	dynamic object is to be an `interposer' on direct
			bindings
	[-z lazyload | nolazyload]
			enable|disable delayed loading of shared object
			dependencies
	[-z ld32=arg1,arg2,...]
			define arguments applicable to the 32-bit class of ld(1)
	[-z ld64=arg1,arg2,...]
			define arguments applicable to the 64-bit class of ld(1)
	[-z loadfltr]	mark filter as requiring immediate loading of its
			filtees at runtime
	[-z muldefs], [--allow-multiple-definition]
			allow multiply-defined symbols
	[-z nocompstrtab]
			disable compression of string tables
	[-z nodefs]	allow undefined symbol references
	[-z nodefaultlib]
			mark object to ignore any default library search path
	[-z nodelete]	mark object as non-deletable
	[-z nodlopen]	mark object as non-dlopen()'able
	[-z nodump]	mark object as non-dldump()'able
	[-z noldynsym]	do not add a .SUNW_ldynsym section
	[-z now]	mark object as requiring non-lazy binding
	[-z nopartial]	expand any partially initialized symbols
	[-z noversion]	do not record any version sections
	[-z origin]	mark object as requiring $ORIGIN processing
	[-z preinitarray=function]
			name of function to be appended to the .preinitarray
	[-z redlocsym]	reduce local syms in .symtab to a minimum
	[-z relaxreloc]	relax rules used for relocations against COMDAT sections
	[-z rescan]	after processing all arguments, rescan archive list
			until no further member extraction occurs
	[-z rescan-now]	immediately rescan archive list until
			no further member extraction occurs
	[-z rescan-start archives... -z rescan-end],
	[--start-group archives... --end-group], [-( archives... -)]
			rescan specified archive group upon reaching
			the end of the group, until no further
			member extraction occurs
	[-z target=platform]
			target machine for cross linking
	[-z text]	disallow output relocations against text
	[-z textoff]	allow output relocations against text
	[-z textwarn]	warn if there are relocations against text
	[-z verbose]	generate warnings for suspicious processings
collect2: ld returned 1 exit status
gmake[4]: *** [libstdc++.la] Error 1
gmake[4]: Leaving directory `/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3/src'
gmake[3]: *** [all-recursive] Error 1
gmake[3]: Leaving directory `/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3'
gmake[2]: *** [all] Error 2
gmake[2]: Leaving directory `/usr/share/src/gcc_build/i386-pc-solaris2.11/libstdc++-v3'
gmake[1]: *** [all-target-libstdc++-v3] Error 2
gmake[1]: Leaving directory `/usr/share/src/gcc_build'
gmake: *** [all] Error 2



The commands for ld are wrong. Let's try without "-Wl,-O1 -Wl,-z -Wl,relro":

...
 /usr/lib/crtn.o   -Wl,-soname -Wl,libstdc++.so.6 -o .libs/libstdc++.so.6.0.11
ld: fatal: symbol `__i686.get_pc_thunk.bx' is multiply-defined:
	(file /usr/local/lib/gcc/i386-pc-solaris2.11/4.4.0/crtbegin.o type=FUNC; file ../libsupc++/.libs/libsupc++convenience.a(cp-demangle.o) type=FUNC);
ld: fatal: recording name conflict: file `/usr/local/lib/libstdc++.so' and soname option (-h, --soname) provide identical dependency names: libstdc++.so.6
ld: fatal: file processing errors. No output written to .libs/libstdc++.so.6.0.11
collect2: ld returned 1 exit status


Rob
Comment 3 Rob 2009-02-19 02:36:03 UTC
Even though I ./configured using "--with-gnu-ld --with-ld=/usr/local/bin/ld"
the scripts seemed to have decided to use the "gcc-used-for-build"'s choice
of 'ld' instead of the main ./configure scripts settings ...


# gcc -v
Using built-in specs.
Target: i386-pc-solaris2.11
Configured with: ../gcc_trunk/configure --build=i386-pc-solaris2.11 --enable-languages=ada,c,c++,fortran,java,objc,obj-c++ --enable-shared --disable-static --enable-multilib --enable-decimal-float --with-long-double-128 --with-included-gettext --enable-stage1-checking --enable-checking=release --with-tune=k8 --with-cpu=k8 --with-arch=k8 --with-gnu-as --with-as=/usr/local/bin/as --without-gnu-ld --with-ld=/usr/bin/ld --with-gmp=/usr/local --with-mpfr=/usr/local --without-ppl
Thread model: posix
gcc version 4.4.0 20090218 (experimental) [trunk revision 144266] (GCC) 

Rob
Comment 4 Rob 2009-02-20 00:57:52 UTC
(In reply to comment #3)
> Even though I ./configured using "--with-gnu-ld --with-ld=/usr/local/bin/ld"
> the scripts seemed to have decided to use the "gcc-used-for-build"'s choice
> of 'ld' instead of the main ./configure scripts settings ...
> 
The second Bug in this Report (about the Linker) is filed here:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39111

Comment #0 is the only remaining Bug in this thread.

Rob
Comment 5 Benjamin Kosnik 2009-02-24 07:05:42 UTC
Any chance you could narrow this down? The revision stated as problematic has nothing to do with libstdc++. The file implicated, cfenv, has not had a change in 3 months.

What was a revision that worked?

This seems fine, and is after your revision:
http://gcc.gnu.org/ml/gcc-testresults/2009-02/msg02143.html

Was this a temporary blip? If so, please close. If not, please provide some more detail.
Comment 6 Rob 2009-02-26 23:01:54 UTC
(In reply to comment #5)
> Any chance you could narrow this down? The revision stated as problematic has
> nothing to do with libstdc++. The file implicated, cfenv, has not had a change
> in 3 months.
> 
> Was this a temporary blip? If so, please close. If not, please provide some
> more detail.

I am fairly convinced that this blip was a manifestation of the
"Build Machinery's" confusion resulting from Linker issues that
are best handled in the URL given in Comment #4 . I will close
this since fixing the other Bug seems to make this unreproducible.

Rob

Comment 7 Mike Frysinger 2009-04-05 20:18:35 UTC
we've hit this with gcc-4.3.3 with arm-softfloat-linux-gnueabi targets, and the commit in question was for PR38000:
http://gcc.gnu.org/viewcvs?view=rev&revision=143194

/usr/arm-softfloat-linux-gnueabi/tmp/portage/sys-devel/gcc-4.3.3/work/gcc-4.3.3/libstdc++-v3/include/precompiled/stdtr1c++.h:38:
/usr/arm-softfloat-linux-gnueabi/tmp/portage/sys-devel/gcc-4.3.3/work/build/arm-softfloat-linux-gnueabi/libstdc++-v3/include/tr1_impl/cfenv:56:
error: '::fenv_t' has not been declared
/usr/arm-softfloat-linux-gnueabi/tmp/portage/sys-devel/gcc-4.3.3/work/build/arm-softfloat-linux-gnueabi/libstdc++-v3/include/tr1_impl/cfenv:57:
error: '::fexcept_t' has not been declared
/usr/arm-softfloat-linux-gnueabi/tmp/portage/sys-devel/gcc-4.3.3/work/build/arm-softfloat-linux-gnueabi/libstdc++-v3/include/tr1_impl/cfenv:60:
error: '::feclearexcept' has not been declared
/usr/arm-softfloat-linux-gnueabi/tmp/portage/sys-devel/gcc-4.3.3/work/build/arm-softfloat-linux-gnueabi/libstdc++-v3/include/tr1_impl/cfenv:61:
error: '::fegetexceptflag' has not been declared
/usr/arm-softfloat-linux-gnueabi/tmp/portage/sys-devel/gcc-4.3.3/work/build/arm-softfloat-linux-gnueabi/libstdc++-v3/include/tr1_impl/cfenv:62:
error: '::feraiseexcept' has not been declared
/usr/arm-softfloat-linux-gnueabi/tmp/portage/sys-devel/gcc-4.3.3/work/build/arm-softfloat-linux-gnueabi/libstdc++-v3/include/tr1_impl/cfenv:63:
error: '::fesetexceptflag' has not been declared

adding "-nostdinc++" to libstdc++-v3/include/Makefile.am seemed to fix it ...
Comment 8 Maksim 'max_posedon' Melnikau 2009-05-14 06:51:20 UTC
in gcc-4.4.0 release this bug wasn't fixed
Comment 9 Vladimir Zapolskiy 2009-08-27 15:59:12 UTC
Created attachment 18438 [details]
proposed patch for the problem resolution on gcc-4_4-branch
Comment 10 Vladimir Zapolskiy 2009-08-27 16:00:17 UTC
I have encountered the same problem with reverse cross compilation of gcc-4.3 branch on Linux for powerpc target. The problem was introduced in #38000 (revision 143194), and safe solution is just to revert the changes on the next files:
* libstdc++-v3/include/c_global/cfenv
* libstdc++-v3/include/tr1/cfenv
* libstdc++-v3/include/tr1_impl/cfenv
* libstdc++-v3/include/c_compatibility/fenv.h

Proposed patch for gcc-4_4-branch (revision 151142) is attached.
Comment 11 Paolo Carlini 2009-08-27 16:09:02 UTC
(In reply to comment #10)
> I have encountered the same problem with reverse cross compilation of gcc-4.3
> branch on Linux for powerpc target. The problem was introduced in #38000
> (revision 143194), and safe solution is just to revert the changes on the next
> files:

The change is not safe at all, unless you can convincingly explain why reverting these bits does not break again 38000. 

Comment 12 Paolo Carlini 2009-08-27 16:31:27 UTC
If we want to seriously approach the problem that apparently some users are seeing together with cross compilers, we should first figure out what exactly is going on: is _GLIBCXX_HAVE_FENV_H undefined for some reason? Note that in general, as explained by Jakub in 38000, isn't correct to use #include_next in a cXXX header including an XXX.h header. I'm adding Jakub in CC for this one too...
Comment 13 Raúl Porcel 2010-07-21 16:34:59 UTC
(In reply to comment #7)
> we've hit this with gcc-4.3.3 with arm-softfloat-linux-gnueabi targets, and the
> commit in question was for PR38000:
> http://gcc.gnu.org/viewcvs?view=rev&revision=143194
> 
[snip]

Is this going to be fixed or?
Comment 14 Andrew Pinski 2010-08-10 22:01:02 UTC
See PR 40974 for the fenv_t issue.