Building gcc 4.5.1:
gcc -c -g -fkeep-inline-functions -DIN_GCC -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Wold-style-definition -Wc++-compat -fno-common -DHAVE_CONFIG_H -I. -I. -I/home/jayk/src/gcc-4.5.1/gcc -I/home/jayk/src/gcc-4.5.1/gcc/. -I/home/jayk/src/gcc-4.5.1/gcc/../include -I/home/jayk/src/gcc-4.5.1/gcc/../libcpp/include -I/home/jayk/obj/gcc451/./gmp -I/home/jayk/src/gcc-4.5.1/gmp -I/home/jayk/obj/gcc451/./mpfr -I/home/jayk/src/gcc-4.5.1/mpfr -I/home/jayk/src/gcc-4.5.1/mpc/src -I/home/jayk/src/gcc-4.5.1/gcc/../libdecnumber -I/home/jayk/src/gcc-4.5.1/gcc/../libdecnumber/dpd -I../libdecnumber /home/jayk/src/gcc-4.5.1/gcc/dfp.c -o dfp.o IIn file included from ../libdecnumber/gstdint.h:7:0, from /home/jayk/src/gcc-4.5.1/gcc/../libdecnumber/decContext.h:54, from /home/jayk/src/gcc-4.5.1/gcc/../libdecnumber/decNumber.h:37, from /home/jayk/src/gcc-4.5.1/gcc/../libdecnumber/dpd/decimal128.h:58, from /home/jayk/src/gcc-4.5.1/gcc/dfp.c:34: /home/jayk/lib/gcc/alphaev67-dec-osf5.1/4.5.0/include/stdint.h:91:25: error: 'long long long' is too long for GCC /home/jayk/lib/gcc/alphaev67-dec-osf5.1/4.5.0/include/stdint.h:91:25: error: two or more data types in declaration specifiers /home/jayk/lib/gcc/alphaev67-dec-osf5.1/4.5.0/include/stdint.h:92:26: error: duplicate 'unsigned' /home/jayk/lib/gcc/alphaev67-dec-osf5.1/4.5.0/include/stdint.h:92:26: error: 'long long long' is too long for GCC /home/jayk/lib/gcc/alphaev67-dec-osf5.1/4.5.0/include/stdint.h:92:26: error: two or more data types in declaration specifiers make[3]: *** [dfp.o] Error 1 make[3]: Leaving directory `/home/jayk/obj/gcc451/gcc' make[2]: *** [all-stage1-gcc] Error 2 make[2]: Leaving directory `/home/jayk/obj/gcc451' make[1]: *** [stage1-bubble] Error 2 make[1]: Leaving directory `/home/jayk/obj/gcc451' make: *** [all] Error 2 /home/jayk/lib/gcc/alphaev67-dec-osf5.1/4.5.0/include/stdint.h /* 7.8.1.5 Greatest-width integer types */ typedef __INTMAX_TYPE__ intmax_t; typedef __UINTMAX_TYPE__ uintmax_t; I added: #undef intmax_t #undef uintmax_t and then it gets further. Not certain, but problem is probably from here: bash-4.1$ grep intmax_t */*h gcc/auto-host.h:/* Define to 1 if the system has the type `intmax_t'. */ gcc/auto-host.h:/* Define to 1 if the system has the type `uintmax_t'. */ gcc/auto-host.h:#define intmax_t long long int gcc/auto-host.h:#define uintmax_t unsigned long long int bash-4.1$ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/home/jayk/libexec/gcc/alphaev67-dec-osf5.1/4.5.0/lto-wrapper Target: alphaev67-dec-osf5.1 Configured with: /home/jayk/src/gcc-4.5.0/configure -disable-nls -prefix=/home/jayk Thread model: posix gcc version 4.5.0 (GCC) config.log: $ /home/jayk/src/gcc-4.5.1/configure -prefix=/home/jayk -disable-nls -verbose Probably due to some form of autoconf compiling one way and compilation going a different way (e.g. different command line flags). Imho this is a major problem in autoconf. I see this kind of thing repeatedly. Maybe it is a misuse of autoconf, but it seemingly just too easy to fall into. I also don't think this newfangled C9x stuff is worth the effort. Wastes too much time in autoconf'ing and misautoconf'ing it. See here gcc has problem using it with current gcc. (!) Probably best to just use the first of whichever: long long, __int64, long exist, erroring of long doesn't exist. - Jay -- Summary: auto-host #defines intmax_t breaks dfp.c (4.5.1)‏ Product: gcc Version: 4.5.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jay dot krell at cornell dot edu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45287