From: <ch...@gm...> - 2008-01-20 09:39:06
|
Earnie Boyd wrote: > Quoting "Chen (陈) Jun (军)" <ch...@gm...>: > > > >> This process runs OK, and i686-mingw32-ld etc are generated . Now, I cd >> back to /soft/mingw/build , write a shell script >> >> #!/bin/sh >> PATH=/soft/binutils-host-linux-target-win32/bin:$PATH >> make all-gcc | tee make-c-only.log 2>&1 >> >> >> and run it. Ooups, same error result as before I build binutils. >> >> DIAGNOSE: Let's recall the compile error message I encountered: >> >> ../../gcc-4.2.1-2-src/gcc/config/i386/cygming-crtbegin.c:72: >> error: section attribute not allowed for '__JCR_LIST__' >> > You'll have to start over. I.E. You must reexecute configure for gc in > a clean build directory so that your make system knows about your newly > built binutils. > > Earnie > > I tried. You're dead right Earnie. I clean the output file generated during compling my i686-mingw32-gcc, and configure again according to Henry Nestler's suggestion. ../gcc-4.2.1-2-src/configure -v --prefix=/soft/binutils-host-linux-target-win32 \ --target=i686-mingw32 \ --with-headers=/soft/mingw/binutils-2.17.50-20060824-1-src/include \ --with-gnu-as --with-gnu-ld --disable-nls --without-newlib \ --disable-multilib --enable-languages=c,c++ --disable-checking \ 2>&1 | tee chj-cfg-host-linux-target-mingw2.log Then run again (chj-build-mingw-gcc.ro-linux2.sh): #!/bin/sh PATH=/soft/binutils-host-linux-target-win32/bin:$PATH make all-gcc | tee make-c-only.log2 2>&1 make install-gcc Cheers, i686-mingw32-gcc is out and works(tested with simple hello world program). After taking a review, I observed that the ./configure of gcc's result is different before and after binutils is installed. Before, there are: checking for ar... no checking for i686-mingw32-ar... no checking for as... no checking for i686-mingw32-as... no checking for dlltool... no checking for i686-mingw32-dlltool... no checking for ld... no checking for i686-mingw32-ld... no After, there are: checking for ar... /soft/binutils-host-linux-target-win32/i686-mingw32/bin/ar checking for as... /soft/binutils-host-linux-target-win32/i686-mingw32/bin/as checking for dlltool... /soft/binutils-host-linux-target-win32/i686-mingw32/bin/dlltool checking for ld... /soft/binutils-host-linux-target-win32/i686-mingw32/bin/ld Wow, it really makes difference, and only the later is the correct result. However my baffle is not entirely resolved. Why the above difference makes my first try fail(xgcc fail to compile cygming-crtbegin.c)? I compared the two xgcc before and after, they really are different, but different at what aspect? Can anyone give more comments? |