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]

Re: "What are you doing with crtstuff.c" on gcc-3.4.0 arm build




Toralf Lund wrote:

Does anyone know what this is supposed to mean?

../../gcc-3.4.0/gcc/crtstuff.c:405:2: #error "What are you doing with crtstuff.c, then?"

Why not simply read yourself? :) The wrappers around the line 405 are:


	#else /* ! INIT_SECTION_ASM_OP && ! HAS_INIT_SECTION */
	#error "What are you doing with crtstuff.c, then?"
	#endif

 Isn't this clear?  COFF probably hasn't the '.init' and '.fini'
sections and handles their job in the '__main()' or '__gcc_main()'
or something function in '.text' section...  ELF usually has these
two extra sections for 'crtbegin' and 'crtend'.

 Already the 'gcc/config/arm/t-arm-coff' seems to have these 'crt*.o'
parts defined needed meanwhile the '.../t-xscale-coff' doesn't... So
it seems to be a plain vanilla bug in GCC since gcc-3.3...

So please edit your 'gcc/Makefile' and remove the

EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o

from it, or edit the original 't-arm-coff' and let a new Makefile
be produced when writing 'make ...'

I get this when trying to build gcc-3.4.0 for arm-coff, during the "bootstrap compiler" step.

Please explain this 'bootstrap'... Building an 'arm-coff' targeted GCC needs only one stage, just as any normal cross-GCC, these newlib based GCC are only working in the cross-GCC configuration, no native choices... Recently I built a gcc-3.3.2 based toolchain for the 'xscale-coff' target and there was no problems in building it normally in one stage, when starting from scratch. The 'arm-coff' should be quite the same and I don't expect gcc-3.4.0 breaking anything...

 Meanwhile a native GCC build requires three build stages, the 'bootstrap'
stage with a 'bootstrap compiler' being the stage 1.

Maybe you meaned that you must first update your native GCC or the cross
GCC used to produce the GCC binaries. This can be called as the "bootstrap compiler" step.


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]