This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix mingw32 bootstrap regression.
On Sat, Dec 23, 2006 at 09:48:09AM -0500, 'Bob Rossi' wrote:
> On Sat, Dec 23, 2006 at 01:36:24PM +1300, Danny Smith wrote:
> >
> > >
> > > On Sat, Dec 23, 2006 at 11:50:57AM +1300, Danny Smith wrote:
> > > >
> > > > > On Fri, Dec 22, 2006 at 09:15:57PM +1300, Danny Smith wrote:
> > > > > > This way:
> > > > > > bash, sed, configure, make, expect, dejagnu, etc are
> > > cygwin tools
> > > > > > (cygwin1.dll-dependent).
> > > > > > The build gcc, binutils are from mingw (msvcrt.dll-dependent).
> > > > > > I've done it this way since well before msys.
> > > > >
> > > > > You run a native bootstrap using these tools?
> > > >
> > > > Yes.
> > > >
> > > >
> > > > mingw binaries precede cygwin binaries in PATH (unless I
> > > actually logon
> > > > to cygwin).
> > > > mount table contains:
> > > > c:\cygwin\lib on /usr/lib type system (binm
> > > > c:\cygwin\usr on /usr type system (binmode)
> > > > c:\cygwin\bin on /bin type system (binmode)
> > > > c:\cygwin\bin on /usr/bin type system (binm
> > > > c:\cygwin on / type system (binmode)
> > > > c:\mingw on /mingw type system (binmode)
> > > > c:\developex on /developex type system (binmode
> > > >
> > > > mingw binaries live in /mingw/bin
> > > > cygwin binaries live in /cygwin/bin
> > > > development sources and builds are all rooted in /developex
> > > >
> > > > Thus native pathnames of all native components are same as cygwin
> > > > pathname
> > > >
> > > > I have never needed to use msys. The cygwin tools have been more
> > > > reliable.
> > >
> > > Hi Danny,
> > > Can you post the script that you use, if available? Even just the
> > > configure line would be nice.
> > >
> > This is run from /developex/gcc/svn/gcc-trunk/build dir. The sources are
> > in
> > /developex/gcc/svn/gcc-trunk/gcc.
> >
> >
> > #!/bin/sh
> > ../gcc/configure --with-gcc --enable-libgomp --host=i686-pc-mingw32dw2
> > --build=i686-pc-mingw32dw2 --target=i686-pc-mingw32dw2 --with-arch=i486
> > --with-tune=i686 --disable-werror --prefix=/mingw
> > --with-local-prefix=/mingw --enable-threads --disable-nls
> > --enable-languages=c,c++,objc,fortran --disable-win32-registry
> > --disable-sjlj-exceptions --enable-libstdcxx-debug
> > --enable-cxx-flags='-fno-function-sections -fno-data-sections'
> > -enable-shared --enable-version-specific-runtime-libs
> > make CXXFLAGS="-mthreads -O2" bootstrap 2>err.log 1>out.log
> >
> > The 'dw2' suffix in target-triplet is because I use a patched tree that
> > allows Dwarf2 EH unwind.
> > I install this into /mingw. There are lots of gcc versions in /mingw,
> > each qualified with version.
>
> Thanks very much Danny. I'm going to try this out today. One thing I
> noticed is that you are doing -enable-shared, whereas every other mingw
> build script that I've found does --disable-shared. Does mingw need to
> have static libraries or is shared ok also?
Hi,
I'm using svn trunk. I'll continue to debug this problem, but if you
know what it is ....
$ mount
C:\Program Files\NX Client for Windows\X11R6\lib\X11\fonts on /mnt/NX/fonts type user (textmode)
C:\cygwin\bin on /usr/bin type system (binmode)
C:\cygwin\lib on /usr/lib type system (binmode)
C:\cygwin on / type system (binmode)
C:\mingw on /mingw type system (binmode)
c: on /cygdrive/c type system (binmode,noumount)
e: on /cygdrive/e type system (binmode,noumount)
f: on /cygdrive/f type system (binmode,noumount)
O, I also got the silly Make error, where I need to change
ORIGINAL_LD_FOR_TARGET =
C:/mingw/bin/../lib/gcc/mingw32/3.4.2/../../../../mingw32/bin/ld.exe
to
ORIGINAL_LD_FOR_TARGET =
/mingw/bin/../lib/gcc/mingw32/3.4.2/../../../../mingw32/bin/ld.exe
Do you do this each time?
#!/bin/sh
PATH=/mingw/bin:$PATH
../gcc/configure \
--with-gmp=c:/msys/1.0/home/bobbybrasko/gcc/gmp/gmp \
--with-mpfr=c:/msys/1.0/home/bobbybrasko/gcc/mpfr/prefixdir \
--with-gcc --enable-libgomp --host=i686-pc-mingw32 \
--build=i686-pc-mingw32 --target=i686-pc-mingw32 --with-arch=i486 \
--with-tune=i686 --disable-werror --prefix=/mingw \
--with-local-prefix=/mingw --enable-threads --disable-nls \
--enable-languages=c,c++,objc,fortran --disable-win32-registry \
--disable-sjlj-exceptions --enable-libstdcxx-debug \
--enable-cxx-flags='-fno-function-sections -fno-data-sections' \
-enable-shared --enable-version-specific-runtime-libs 2>&1 | tee configure-out.txt
make CXXFLAGS="-mthreads -O2" bootstrap 2>&1 | tee make-out.txt
make[4]: Entering directory `/home/bobbybrasko/gcc/svn/build/gcc'
/home/bobbybrasko/gcc/svn/build/./gcc/xgcc
-B/home/bobbybrasko/gcc/svn/build/./gcc/
-L/home/bobbybrasko/gcc/svn/build/i686-pc-mingw32/winsup/mingw
-L/home/bobbybrasko/gcc/svn/build/i686-pc-mingw32/winsup/w32api/lib
-isystem /home/bobbybrasko/gcc/svn/gcc/winsup/mingw/include
-isystem /home/bobbybrasko/gcc/svn/gcc/winsup/w32api/include
-B/mingw/i686-pc-mingw32/bin/ -B/mingw/i686-pc-mingw32/lib/
-isystem /mingw/i686-pc-mingw32/include
-isystem /mingw/i686-pc-mingw32/sys-include -O2
-I../../gcc/gcc/../winsup/w32api/include -O2 -g -O2 -DIN_GCC
-W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes
-Wold-style-definition -isystem ./include -g -DHAVE_GTHR_DEFAULT
-DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I../../gcc/gcc
-I../../gcc/gcc/. -I../../gcc/gcc/../include
-I../../gcc/gcc/../libcpp/include
-Ic:/msys/1.0/home/bobbybrasko/gcc/gmp/gmp/include
-Ic:/msys/1.0/home/bobbybrasko/gcc/mpfr/prefixdir/include
-I../../gcc/gcc/../libdecnumber -I../libdecnumber
-DL_chkstk -xassembler-with-cpp -c ../../gcc/gcc/config/i386/cygwin.asm
-o libgcc/./_chkstk.o
xgcc.exe: CreateProcess: No such file or directory
make[4]: *** [libgcc/./_chkstk.o] Error 1
make[4]: Leaving directory `/home/bobbybrasko/gcc/svn/build/gcc'
make[3]: *** [libgcc.a] Error 2
make[3]: Leaving directory `/home/bobbybrasko/gcc/svn/build/gcc'
make[2]: *** [all-stage1-gcc] Error 2
make[2]: Leaving directory `/home/bobbybrasko/gcc/svn/build'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/home/bobbybrasko/gcc/svn/build'
make: *** [bootstrap] Error 2
Now, I'm thinking the problem is, that it's using
-B/mingw/i686-pc-mingw32/include instead of just /mingw/include.
Is this an easy thing to change in gcc with configuration, or do I need
to modify my mingw setup?
Thanks,
Bob Rossi