[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gm2] gm2 Cygwin port
From: |
Gaius Mulley |
Subject: |
Re: [Gm2] gm2 Cygwin port |
Date: |
03 Jun 2004 19:45:02 +0100 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 |
Hi Gerrit,
well done for attempting the bootstrap.
"Gerrit P. Haase" <address@hidden> writes:
> Hello,
>
> currently I try to bootstrp gcc-3.3.3 including GNU Modula 2.
>
> There are some difficulties.
>
> Though Cygwin provides managed mounts and it is possible to use the
> same name (e.g m2lex.def & M2lex.def) in the same directory it wouold
> be nice to not force the user to make use of the managed mounts.
>
> To use entirely different filenames (besides the case) would also help
> to get it compiled on Windows systems without using Cygwin (MinGW).
ok this makes sense - I'll rename conflicting files..
> I always use the bootstrap target to build the whole compiler
> collection.
>
> Unfortunately it fails for me with this error:
> [...]
> cd gm2 ; \
> ../gm2/boot-bin/mklink -s -exit -main gccgm2front
> /gcc/gcc-3.3.3/gcc-3.3.3-1/gcc/gm2/init/gm2-gccinit ; \
> mv mod_init.c gm2-compiler-boot
> gcc -c -g gm2/gm2-compiler-boot/mod_init.c -o gm2/gm2-compiler-boot/mod_init.o
> ar cr gm2/gm2-compiler-boot/gm2.a gm2/gm2-compiler-boot/mod_init.o \
> gm2/gm2-compiler-boot/ppg.o
> gm2/gm2-compiler-boot/FifoQueue.o gm2/gm2-compiler-boot/M2LexBuf.o
> gm2/gm2-compiler-boot/M2AsmUtil.o gm2/gm2-compiler-boot/gm2.o
> gm2/gm2-compiler-boot/M2Optimize.o gm2/gm2-compiler-boot/M2StackWord.o
> gm2/gm2-compiler-boot/M2Options.o gm2/gm2-compiler-boot/M2Pass.o
> gm2/gm2-compiler-boot/M2Batch.o gm2/gm2-compiler-boot/M2Quads.o
> gm2/gm2-compiler-boot/M2Comp.o gm2/gm2-compiler-boot/M2Reserved.o
> gm2/gm2-compiler-boot/M2Configure.o gm2/gm2-compiler-boot/M2StackAddress.o
> gm2/gm2-compiler-boot/M2Debug.o gm2/gm2-compiler-boot/M2Defaults.o
> gm2/gm2-compiler-boot/M2Depth.o gm2/gm2-compiler-boot/NameKey.o
> gm2/gm2-compiler-boot/M2FileName.o gm2/gm2-compiler-boot/P1SymBuild.o
> gm2/gm2-compiler-boot/P2SymBuild.o gm2/gm2-compiler-boot/P3SymBuild.o
> gm2/gm2-compiler-boot/SymbolKey.o gm2/gm2-compiler-boot/SymbolTable.o
> gm2/gm2-compiler-boot/gm2lcc.o gm2/gm2-compiler-boot/gm2lgen.o
> gm2/gm2-compiler-boot/gm2lsub.o gm2/gm2-compiler-boot/M2Error.o
> gm2/gm2-compiler-boot/M2SubExp.o gm2/gm2-compiler-boot/M2Constants.o
> gm2/gm2-compiler-boot/M2Students.o gm2/gm2-compiler-boot/M2Entity.o
> gm2/gm2-compiler-boot/M2BasicBlock.o gm2/gm2-compiler-boot/M2Code.o
> gm2/gm2-compiler-boot/M2GenGCC.o gm2/gm2-compiler-boot/M2GCCDeclare.o
> gm2/gm2-compiler-boot/SymbolConversion.o gm2/gm2-compiler-boot/M2Base.o
> gm2/gm2-compiler-boot/M2ALU.o gm2/gm2-compiler-boot/M2System.o
> gm2/gm2-compiler-boot/Lists.o gm2/gm2-compiler-boot/M2Printf.o
> gm2/gm2-compiler-boot/bnflex.o gm2/gm2-compiler-boot/M2Quiet.o
> gm2/gm2-compiler-boot/M2Search.o gm2/gm2-compiler-boot/M2Preprocess.o
> gm2/gm2-compiler-boot/CLexBuf.o gm2/gm2-compiler-boot/M2Bitset.o
> gm2/gm2-compiler-boot/M2Size.o gm2/gm2-compiler-boot/M2Scope.o
> gm2/gm2-compiler-boot/Indexing.o \
> gm2/gm2-compiler-boot/P2Build.o
> gm2/gm2-compiler-boot/P3Build.o gm2/gm2-compiler-boot/PHBuild.o
> gm2/gm2-compiler-boot/P1SyntaxCheck.o gm2/gm2-compiler-boot/gm2l.o
> gm2/gm2-compiler-boot/gm2m.o \
> gm2/gm2-compiler-boot/M2Version.o
> if [ -f ` if [ -f /gcc/gcc-3.3.3/gcc-3.3.3-1/.build/gcc/../binutils/ranlib ]
> ; then echo /gcc/gcc-3.3.3/gcc-3.3.3-1/.build/gcc/../binutils/ranlib ; else
> if [ "i686-pc-cygwin" = "i686-pc-cygwin" ] ; then echo ranlib; else
> t='s,^,i686-pc-cygwin-,'; echo ranlib | sed -e $t ; fi; fi` ] || ( [
> "i686-pc-cygwin" = "i686-pc-cygwin" ] && [ -f /usr/bin/ranlib -o -f
> /bin/ranlib ] ) ; then ranlib gm2/gm2-compiler-boot/gm2.a ; else true ; fi
> ar cr gm2/gm2-libs-boot/libgm2.a gm2/gm2-libs-boot/ASCII.o
> gm2/gm2-libs-boot/IO.o gm2/gm2-libs-boot/Args.o gm2/gm2-libs-boot/Assertion.o
> gm2/gm2-libs-boot/NumberIO.o gm2/gm2-libs-boot/Break.o
> gm2/gm2-libs-boot/CmdArgs.o gm2/gm2-libs-boot/Scan.o
> gm2/gm2-libs-boot/DebugPMD.o gm2/gm2-libs-boot/StrCase.o
> gm2/gm2-libs-boot/FIO.o gm2/gm2-libs-boot/StrIO.o
> gm2/gm2-libs-boot/TimeString.o gm2/gm2-libs-boot/StrLib.o
> gm2/gm2-libs-boot/Environment.o gm2/gm2-libs-boot/FpuIO.o
> gm2/gm2-libs-boot/Debug.o gm2/gm2-libs-boot/SysStorage.o
> gm2/gm2-libs-boot/DynamicStrings.o gm2/gm2-libs-boot/SFIO.o
> gm2/gm2-libs-boot/M2RTS.o gm2/gm2-libs-boot/SArgs.o
> gm2/gm2-libs-boot/FormatStrings.o gm2/gm2-libs-boot/PushBackInput.o
> gm2/gm2-libs-boot/SEnvironment.o gm2/gm2-libs-boot/StringConvert.o \
> gm2/gm2-libs-boot/wrapc.o gm2/gm2-libs-boot/UnixArgs.o
> gm2/gm2-libs-boot/StdIO.o gm2/gm2-libs-boot/Storage.o
> gm2/gm2-libs-boot/choosetemp.o
> if [ -f ` if [ -f /gcc/gcc-3.3.3/gcc-3.3.3-1/.build/gcc/../binutils/ranlib ]
> ; then echo /gcc/gcc-3.3.3/gcc-3.3.3-1/.build/gcc/../binutils/ranlib ; else
> if [ "i686-pc-cygwin" = "i686-pc-cygwin" ] ; then echo ranlib; else
> t='s,^,i686-pc-cygwin-,'; echo ranlib | sed -e $t ; fi; fi` ] || ( [
> "i686-pc-cygwin" = "i686-pc-cygwin" ] && [ -f /usr/bin/ranlib -o -f
> /bin/ranlib ] ) ; then ranlib gm2/gm2-libs-boot/libgm2.a ; else true ; fi
> gcc -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes
> -Wmissing-prototypes -DHAVE_CONFIG_H -s -Wl,--stack=0x00800000 -o
> stage1/gm2/cc1gm2.exe gm2/gccgm2.o gm2/gm2builtins.o gm2/gm2-lang.o
> gm2/stor-layout.o gm2/gm2-compiler-boot/gm2.a gm2/gm2-libs-boot/libgm2.a
> gm2/p2c/p2c-src/src/libp2c.a \
> gm2/gm2-compiler-boot/m2lex.o main.o libbackend.a
> -lintl -liconv ../libiberty/libiberty.a
> cd gm2 ; \
> ../gm2/boot-bin/mklink -s -exit -main gccgm2front
> /gcc/gcc-3.3.3/gcc-3.3.3-1/gcc/gm2/init/gm2-gccinit ; \
> mv mod_init.c gm2-compiler
> ./xgcc -B./ -B/usr/i686-pc-cygwin/bin/ -isystem /usr/i686-pc-cygwin/include
> -isystem /usr/i686-pc-cygwin/sys-include -c -g gm2/gm2-compiler/mod_init.c -o
> gm2/gm2-compiler/mod_init.o
> ./xgcc: not found
> make[2]: *** [gm2/gm2-compiler/gm2.a] Error 127
> make[2]: Leaving directory `/gcc/gcc-3.3.3/gcc-3.3.3-1/.build/gcc'
>
>
> In the Makefile, at this place GCC_FOR_TARGET is used which seems to
> hold a reference on ./xgcc which was aleady moved to a subdirectory
> (stage2 in this case). I guess the build order is somewhat wrong.
>
> Can you give me a hint what and where to change?
for a lightening fix you could (make xgm2) in the gcc build directory.
For a better fix you could replace the rule in
gcc-3.3.3/gcc/gm2/Make-lang.in
--------------------------------------
gm2/gm2-compiler/gm2.a: build-compiler
cd gm2 ; \
../$(M2LINK) -s -exit -main gccgm2front
../$(srcdir)/gm2/init/gm2-gccinit ; \
mv mod_init.c gm2-compiler
$(GCC_FOR_TARGET) -c -g gm2/gm2-compiler/mod_init.c -o
gm2/gm2-compiler/mod_init.o
$(AR_FOR_TARGET) cr $@ gm2/gm2-compiler/mod_init.o
$(GM2-COMP-MODS:%.mod=gm2/gm2-compiler/%.o) \
gm2/gm2-compiler/M2Version.o \
$(GM2-AUTO-MODS:%.mod=gm2/gm2-compiler/%.o)
if $(RANLIB_TEST_FOR_TARGET) ; then $(RANLIB) $@ ; else true ; fi
--------------------------------------
with
--------------------------------------
gm2/gm2-compiler/gm2.a: build-compiler $(GCC_FOR_TARGET)
cd gm2 ; \
../$(M2LINK) -s -exit -main gccgm2front
../$(srcdir)/gm2/init/gm2-gccinit ; \
mv mod_init.c gm2-compiler
$(GCC_FOR_TARGET) -c -g gm2/gm2-compiler/mod_init.c -o
gm2/gm2-compiler/mod_init.o
$(AR_FOR_TARGET) cr $@ gm2/gm2-compiler/mod_init.o
$(GM2-COMP-MODS:%.mod=gm2/gm2-compiler/%.o) \
gm2/gm2-compiler/M2Version.o \
$(GM2-AUTO-MODS:%.mod=gm2/gm2-compiler/%.o)
if $(RANLIB_TEST_FOR_TARGET) ; then $(RANLIB) $@ ; else true ; fi
--------------------------------------
hope this helps.. please let us know how you get on, as I'm sure this
will be of interest to others!
Thanks Gaius
Re: [Gm2] gm2 Cygwin port, Gaius Mulley, 2004/06/07