gm2
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]