Piotr Wyderski wrote:
>> Snapshot gcc-4.5-20090402 is now available on
>> ftp://gcc.gnu.org/pub/gcc/snapshots/4.5-20090402/
>> and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.
>
> When building on Cygwin/WinXP configured as:
>
> $ ../configure --prefix=/opt/gcc-4.5-20090402 -v --enable-bootstrap
> --enable-ve
> rsion-specific-runtime-libs --enable-static --enable-shared
> --enable-shared-lib
> gcc --with-gnu-ld --with-gnu-as --enable-sjlj-exceptions
> --enable-languages=c,c
> ++ --disable-symvers --enable-libjava --disable-nls --with-cpu=core2
> --enable-t
> hreads=posix
>
> results in:
>
> In file included from
> /home/piotr.wyderski/build/gcc-4.5-20090402/libstdc++-v3/i
> nclude/precompiled/extc++.h:59:
> /home/piotr.wyderski/build/gcc-4.5-20090402/objdir/i686-pc-cygwin/libstdc++-v3/i
> nclude/ext/throw_allocator.h: In function 'std::ostream&
> __gnu_cxx::operator<<(s
> td::ostream&, const __gnu_cxx::throw_allocator_base&)':
> /home/piotr.wyderski/build/gcc-4.5-20090402/objdir/i686-pc-cygwin/libstdc++-v3/i
> nclude/ext/throw_allocator.h:289: internal compiler error: Segmentation fault
> Please submit a full bug report,
> with preprocessed source if appropriate.
>
> Exactly the same happens on trunk.
Hmm, I don't understand how it could have got that far, but can you check if
the failure is a crash in the C preprocessor stage by rerunning the failing
command with '-v' added?
I'm testing a fix for that ATM. Here's a copy of the patch, you might like
to see if it helps.
For more on that, see:
http://gcc.gnu.org/ml/gcc/2009-04/msg00000.html
and following thread.
cheers,
DaveK
Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc (revision 145400)
+++ gcc/config.gcc (working copy)
@@ -1230,7 +1230,7 @@
esac
;;
i[34567]86-*-pe | i[34567]86-*-cygwin*)
- tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/cygwin.h"
+ tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/cygwin.h i386/cygwin-stdint.h"
xm_file=i386/xm-cygwin.h
# This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
if test x$sjlj = x0; then
@@ -1248,6 +1248,7 @@
if test x$enable_threads = xyes; then
thread_file='posix'
fi
+ use_gcc_stdint=wrap
;;
i[34567]86-*-mingw* | x86_64-*-mingw*)
tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/mingw32.h"
Index: gcc/config/i386/cygwin-stdint.h
===================================================================
--- gcc/config/i386/cygwin-stdint.h (revision 0)
+++ gcc/config/i386/cygwin-stdint.h (revision 0)
@@ -0,0 +1,51 @@
+/* Definitions for <stdint.h> types on systems using Cygwin.
+ Copyright (C) 2009 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#define SIG_ATOMIC_TYPE "int"
+
+#define INT8_TYPE "signed char"
+#define INT16_TYPE "short int"
+#define INT32_TYPE "int"
+#define INT64_TYPE "long long int"
+#define UINT8_TYPE "unsigned char"
+#define UINT16_TYPE "short unsigned int"
+#define UINT32_TYPE "unsigned int"
+#define UINT64_TYPE "long long unsigned int"
+
+#define INT_LEAST8_TYPE "signed char"
+#define INT_LEAST16_TYPE "short int"
+#define INT_LEAST32_TYPE "long int"
+#define INT_LEAST64_TYPE "long long int"
+#define UINT_LEAST8_TYPE "unsigned char"
+#define UINT_LEAST16_TYPE "short unsigned int"
+#define UINT_LEAST32_TYPE "long unsigned int"
+#define UINT_LEAST64_TYPE "long long unsigned int"
+
+#define INT_FAST8_TYPE "signed char"
+#define INT_FAST16_TYPE "long int"
+#define INT_FAST32_TYPE "long int"
+#define INT_FAST64_TYPE "long long int"
+#define UINT_FAST8_TYPE "unsigned char"
+#define UINT_FAST16_TYPE "long unsigned int"
+#define UINT_FAST32_TYPE "long unsigned int"
+#define UINT_FAST64_TYPE "long long unsigned int"
+
+#define INTPTR_TYPE "long int"
+#define UINTPTR_TYPE "long unsigned int"
+