I'm trying to build gcc 4.6.3 on a Linux From Scratch i586 system: http://www.linuxfromscratch.org/lfs/view/development/chapter06/gcc.html I am using the libiberty.a provided by binutils mod. My current gcc version is 4.1.2. I am using a separate build directory (gcc-build). My configure line is: ../gcc-4.6.3/configure --prefix=/usr --libexecdir=/usr/lib --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-languages=c,c++,fortran,go,objc,obj-c++ --disable-multilib --disable-bootstrap --with-system-zlib During the build, I get an error for go: g++ -c -I ../../gcc-4.6.3/gcc/go -I ../../gcc-4.6.3/gcc/go/gofrontend -I. -Igo -I../../gcc-4.6.3/gcc -I../../gcc-4.6.3/gcc/go -I../../gcc-4.6.3/gcc/../include -I../../gcc-4.6.3/gcc/../libcpp/include -I../../gcc-4.6.3/gcc/../libdecnumber -I../../gcc-4.6.3/gcc/../libdecnumber/bid -I../libdecnumber -fomit-frame-pointer -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -DHAVE_CONFIG_H ../../gcc-4.6.3/gcc/go/gofrontend/dataflow.cc -o go/dataflow.o In file included from ../../gcc-4.6.3/gcc/go/gofrontend/dataflow.cc:7: ../../gcc-4.6.3/gcc/go/go-system.h:118:3: error: #error "requires hash table type" ../../gcc-4.6.3/gcc/system.h:462: error: declaration of C function 'const char* strsignal(int)' conflicts with /usr/include/string.h:359: error: previous declaration 'char* strsignal(int)' here ../../gcc-4.6.3/gcc/go/gofrontend/gogo.h:640: error: ISO C++ forbids declaration of 'Unordered_map_hash' with no type ../../gcc-4.6.3/gcc/go/gofrontend/gogo.h:640: error: expected ';' before 'Map_descriptors' ../../gcc-4.6.3/gcc/go/gofrontend/gogo.h:644: error: ISO C++ forbids declaration of 'Unordered_map_hash' with no type ../../gcc-4.6.3/gcc/go/gofrontend/gogo.h:644: error: expected ';' before 'Type_descriptor_decls' . . It seems that gccgo does not see that I HAVE_STRSIGNAL and HAVE_TR1_UNORDERED_MAP and HAVE_EXT_HASH_MAP although my gcc-build/gcc/config.log: | #include <unordered_map> configure:8572: result: no configure:8583: checking for tr1/unordered_map configure:8583: g++ -E conftest.cpp configure:8583: $? = 0 configure:8583: result: yes configure:8594: checking for ext/hash_map configure:8594: g++ -E conftest.cpp configure:8594: $? = 0 configure:8594: result: yes . . configure:8835: checking for strsignal configure:8835: gcc -o conftest -g conftest.c >&5 configure:8835: $? = 0 configure:8835: result: yes and my gcc-build/gcc/auto-host.h: /* Define to 1 if you have the `strsignal' function. */ #ifndef USED_FOR_TARGET #define HAVE_STRSIGNAL 1 #endif /* Define to 1 if you have the <ext/hash_map> header file. */ #ifndef USED_FOR_TARGET #define HAVE_EXT_HASH_MAP 1 #endif /* Define to 1 if you have the <tr1/unordered_map> header file. */ #ifndef USED_FOR_TARGET #define HAVE_TR1_UNORDERED_MAP 1 #endif indicate that I do in fact have these. It seems gccgo (and only gccgo) is not properly seeing these configure settings because gcc-4.63/gcc/go/go-system.h does not seem to see the configure settings for HAVE_TR1_UNORDERED_MAP or HAVE_EXT_HASH_MAP and neither does gcc-4.63/gcc/system.h (under gccgo) for HAVE_STRSIGNAL. A search found this recent post to gcc-help which may be related, (but was for gcc 4.6.1 and did not involve gccgo): http://gcc.gnu.org/ml/gcc-help/2011-12/msg00021.html However, that problem does not seem to have been solved. Any suggestions or advice? Thanks in advance, Mike Shell