This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Kai, You were absolutely right. I was able to compile crtinit.o and crtfini.o by manully building them (make -f Makefile x-crtinit.o and x-crtfini.) and got arc-elf-gcc, and etc. I ran into "Internal Compiler Error - arc-elf-gcc" while compiling vprintf() in newlib - stdio.h. Thanks for the help. ..James -----Original Message----- From: Kai Ruottu [mailto:kai.ruottu@luukku.com] Sent: Friday, May 02, 2003 2:18 AM To: Tsai, James Cc: crossgcc@sources.redhat.com Tsai, James wrote: > Hi, > > Has anybody successfully built a cross compiler for ARC processor? > > I seemed to stuck at building "stmp-multilib-arc". The Makefile was > complaining about "No rule to make target crtinit.o ....", but I found > initfini.c in gcc/config/arc directory that can be built into > crtinit.o. The error message says that there is no rule to make the target file 'crtinit.o'. What is the unclear part in this message? BUT the target Makefile-fragment, 'gcc/config/arc/t-arc' has the following rules: ----------------------- clip ------------------------------------------ # .init/.fini section routines x-crtinit.o: $(srcdir)/config/arc/initfini.c $(GCC_PASSES) $(CONFIG_H) $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(CRTSTUFF_T_CFLAGS) \ -DCRT_INIT -finhibit-size-directive -fno-inline-functions \ -g0 -c $(srcdir)/config/arc/initfini.c -o $(dir)/crtinit.o x-crtfini.o: $(srcdir)/config/arc/initfini.c $(GCC_PASSES) $(CONFIG_H) $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(CRTSTUFF_T_CFLAGS) \ -DCRT_FINI -finhibit-size-directive -fno-inline-functions \ -g0 -c $(srcdir)/config/arc/initfini.c -o $(dir)/crtfini.o MULTILIB_OPTIONS = EB MULTILIB_DIRNAMES = be ----------------------- clip ------------------------------------------ Ie. if the 'x-crtinit.o' and 'x-crtfini.o' would be required to be built, the '$build/gcc/Makefile' could do that... > Suggections? So there is a plain vanilla bug in the ARC config stuff! If comparing these rules with equivalents for other CPUs needing multilibbed 'crt*.o' stuff, one easily sees that the target rules should be like : ----------- a clip from the fixed gcc/config/arc/t-arc --------------- # .init/.fini section routines $(T)crtinit.o: $(srcdir)/config/arc/initfini.c $(GCC_PASSES) $(CONFIG_H) $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) \ $(INCLUDES) $(CRTSTUFF_T_CFLAGS) \ -DCRT_INIT -finhibit-size-directive -fno-inline-functions \ -g0 -c $(srcdir)/config/arc/initfini.c -o $(T)crtinit.o $(T)crtfini.o: $(srcdir)/config/arc/initfini.c $(GCC_PASSES) $(CONFIG_H) $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) \ $(INCLUDES) $(CRTSTUFF_T_CFLAGS) \ -DCRT_FINI -finhibit-size-directive -fno-inline-functions \ -g0 -c $(srcdir)/config/arc/initfini.c -o $(T)crtfini.o MULTILIB_OPTIONS = EB MULTILIB_DIRNAMES = be EXTRA_MULTILIB_PARTS = crtinit.o crtfini.o --------------------------------- clip --------------------------------- As seen, I have added the possible $(MULTILIB_CFLAGS) options too... The GCC-build uses these '$(T)crt*.o' ('T' means 'temporary') file names when making the multilib versions of the 'crt*.o' targets, and removes the '$(T)' when moving the files into the multilib subdirs with their base names (these told in the 'EXTRA_MULTILIB_PARTS = '). The production will be done in the main $build/gcc, so later 'crt*.o' would overwrite the default 'crt*.o' stuff if not produced with fake temporary names first... Cheers, Kai ------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |