Woodruff, Richard wrote:
> Hi Dirk,
> 
>>Relevant parts of OMAP3 patch we talk about here (most probably
>>reformated cause of copy & paste to mailtool, so just for discussion.
>>Final patches will be sent by git-send-mail). Note the -lgcc_eh which
>>seems to be CodeSourcery specific, and the -march=armv7a in config.mk.
>>
>>diff -uprN uboot_clean/Makefile uboot_beagle/Makefile
>>--- uboot_clean/Makefile      2008-08-22 19:57:05.000000000 +0200
>>+++ uboot_beagle/Makefile     2008-08-22 19:53:52.000000000 +0200
>>@@ -141,7 +141,7 @@ ifeq ($(ARCH),ppc)
>>  CROSS_COMPILE = ppc_8xx-
>>  endif
>>  ifeq ($(ARCH),arm)
>>-CROSS_COMPILE = arm-linux-
>>+CROSS_COMPILE = arm-none-linux-gnueabi-
> 
> CROSS_COMPILE can always be set as an environment variable.  It is only for 
> convenience.  CodeSourcy from my vantage point is common enough it would nice 
> to see it the default.  In the end it doesn't matter.
> 
>>  endif
>>  ifeq ($(ARCH),i386)
>>  CROSS_COMPILE = i386-linux-
>>@@ -253,7 +253,7 @@ LIBBOARD = board/$(BOARDDIR)/lib$(BOARD)
>>  LIBBOARD := $(addprefix $(obj),$(LIBBOARD))
>>
>>  # Add GCC lib
>>-PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS)
>>-print-libgcc-file-name`) -lgcc
>>+PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS)
>>-print-libgcc-file-name`) -lgcc -lgcc_eh
> 
> What is being gained by changing platform libs part?  Every now and then I 
> update my local omap3 u-boot and I've not had to change that to get it 
> working with codesourcy tool chains.  It might be I've not hit the issue yet.

Did check regarding -lgcc_eh: Used CodeSourcery tool chain and 
compiled (linked) with and without -lgcc_eh. The resulting binaries 
are identical and no link issues. Seems we can remove -lgcc_eh then. I 
just wonder now why it is there and what it is (was?) good for?

>>+PLATFORM_CPPFLAGS += -march=armv7a
>>+#
>>========================================================================
>>=
>>+#
>>+# Supply options according to compiler version
>>+#
>>+#
>>========================================================================
>>=
>>+#PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)
>>+PLATFORM_CPPFLAGS +=$(call cc-option)
>>+PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call
>>cc-option,-malignment-traps,))
> 
> Only possible issue is if the make all boards breaks.  I'm not sure what kind 
> of magical tool chain Wolfgang which can 'make all' for old and new versions. 
>  When we did the initial port we grabbed the cc-option from Peter Pearse ARM 
> patches and that helped a lot in sorting out invalid options.  That has since 
> been integrated.  Many people only use older tool chains which won't support 
> v7.
> 
> There hasn't been much advantage in using a v7 target at the u-boot level.  
> It mainly gets your assembler to understand smi but that can easily be a 
> dc.w. 

Using CodeSourcery toolchain and replacing armv7a with armv4 results in

- a lot of warnings "warning: target CPU does not support interworking"

- start.S compilation fails:

start.S: Assembler messages:
start.S:466: Error: selected processor does not support `isb'
start.S:475: Error: selected processor does not support `clz r5,r4'
start.S:500: Error: selected processor does not support `isb'

>  We have used it mainly as an early test of the tool chain.
> 
> Probably the only time it absolutely is needed is if you have a Thumb2 only 
> Cortex variant.

Dirk
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to