| #
f772acf8 |
| 17-Aug-2009 |
Wolfgang Denk <wd@denx.de> |
ARM: compiler options cleanup - improve tool chain support
For some time there have been repeated reports about build problems with some ARM (cross) tool chains. Especially issues about (in)compati
ARM: compiler options cleanup - improve tool chain support
For some time there have been repeated reports about build problems with some ARM (cross) tool chains. Especially issues about (in)compatibility with the tool chain provided runtime support library libgcc.a caused to add and support a private implementation of such runtime support code in U-Boot. A closer look at the code indicated that some of these issues are actually home-made. This patch attempts to clean up some of the most obvious problems and make building of U-Boot with different tool chains easier:
- Even though all ARM systems basicy used the same compiler options to select a specific ABI from the tool chain, the code for this was distributed over all cpu/*/config.mk files. We move this one level up into lib_arm/config.mk instead.
- So far, we only checked if "-mapcs-32" was supported by the tool chain; if yes, this was used, if not, "-mabi=apcs-gnu" was selected, no matter if the tool chain actually understood this option. There was no support for EABI conformant tool chains. This patch implements the following logic:
1) If the tool chain supports "-mabi=aapcs-linux -mno-thumb-interwork" we use these options (EABI conformant tool chain). 2) Otherwise, we check first if "-mapcs-32" is supported, and then check for "-mabi=apcs-gnu" If one test succeeds, we use the first found option. 3) In case 2), we also test if "-mno-thumb-interwork", and use this if the test succeeds. [For "-mabi=aapcs-linux" we set "-mno-thumb-interwork" mandatorily.]
This way we use a similar logic for the compile options as the Linux kernel does.
- Some EABI conformant tool chains cause external references to utility functions like raise(); such functions are provided in the new file lib_arm/eabi_compat.c
Note that lib_arm/config.mk gets parsed several times, so we must make sure to add eabi_compat.o only once to the linker list.
Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Cc: Dirk Behme <dirk.behme@googlemail.com> Cc: Magnus Lilja <lilja.magnus@gmail.com> Cc: Tom Rix <Tom.Rix@windriver.com> Cc: Prafulla Wadaskar <prafulla@marvell.com> Acked-by: Sergey Kubushyn <ksi@koi8.net> Tested-by: Magnus Lilja <lilja.magnus@gmail.com> Tested-by: Andrzej Wolski <awolski@poczta.fm> Tested-by: Gaye Abdoulaye Walsimou <walsimou@walsimou.com> Tested-by: Tom Rix <Tom.Rix@windriver.com> Tested-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
show more ...
|
| #
46edbc54 |
| 22-Jul-2009 |
Wolfgang Denk <wd@denx.de> |
Merge branch 'master' of /home/wd/git/u-boot/master/
|
| #
b220c64d |
| 10-Jul-2009 |
Peter Tyser <ptyser@xes-inc.com> |
Move architecture specific config.mk files into subdirs
This cleans up U-Boot's toplevel directory a bit and makes the architecture 'config.mk' file naming and location similar to board and cpu 'con
Move architecture specific config.mk files into subdirs
This cleans up U-Boot's toplevel directory a bit and makes the architecture 'config.mk' file naming and location similar to board and cpu 'config.mk' files
Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
show more ...
|
| #
cff80f2c |
| 20-Jun-2009 |
Shinya Kuribayashi <skuribay@pobox.com> |
config.mk: Remove unused HPATH
This variable is not unused anywhere.
Signed-off-by: Shinya Kuribayashi <skuribay@pobox.com>
|
| #
12e9043c |
| 20-Jun-2009 |
Shinya Kuribayashi <skuribay@pobox.com> |
config.mk: Remove $(PCI_CLOCK) reference
The following commit introduced $(PCI_CLOCK) reference so that we could tweak `PCI_66M' definition via an environment variable.
> commit f046ccd15c8bc9613bf
config.mk: Remove $(PCI_CLOCK) reference
The following commit introduced $(PCI_CLOCK) reference so that we could tweak `PCI_66M' definition via an environment variable.
> commit f046ccd15c8bc9613bfd72916b761a127d36e5c6 > Author: Eran Liberty <liberty@freescale.com> > Date: Thu Jul 28 10:08:46 2005 -0500 > > * Patch by Eran Liberty > Add support for the Freescale MPC8349ADS board.
But I suggest a removal of it for the following reasons:
* In 2006, MPC8349ADS was merged into MPC8349EMDS port, and it seems that MPC8349EMDS port is PCI_66M free.
* OTOH, PCI_66M is used by MPC832XEMDS an MPC8360EMDS ports, but they don't need $(PCI_CLOCK) environment variable at all. PCI_66M is automatically configured via $(BOARD)_config names with the help of $(findstring _66_,$@).
* Unfortunately $(PCI_CLOCK) has been undocumented anywhere, so only a few people know the existence of it these days.
* Keep config.mk independent from $(BOARD) as much as possible.
Signed-off-by: Shinya Kuribayashi <skuribay@pobox.com> Acked-by: Kim Phillips <kim.phillips@freescale.com>
show more ...
|
| #
31f30c9e |
| 14-Jun-2009 |
Mike Frysinger <vapier@gentoo.org> |
add %.c->%.i and %.c->%.s rules
The Linux kernel has some helper rules which allow you to quickly produce some of the intermediary files from C source. Specifically, you can create .i files which i
add %.c->%.i and %.c->%.s rules
The Linux kernel has some helper rules which allow you to quickly produce some of the intermediary files from C source. Specifically, you can create .i files which is the preprocessed output and you can create .s files which is the assembler output. This is useful when you are trying to track down header/macro expansion errors or inline assembly errors.
Signed-off-by: Mike Frysinger <vapier@gentoo.org> Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
show more ...
|
| #
5ec5529b |
| 14-Jun-2009 |
Mike Frysinger <vapier@gentoo.org> |
allow boards to customize compiler options on a per-file/dir basis
With our Blackfin boards, we like to build the compression routines with -O2 as our tests show a pretty good size/speed tradeoff.
allow boards to customize compiler options on a per-file/dir basis
With our Blackfin boards, we like to build the compression routines with -O2 as our tests show a pretty good size/speed tradeoff. For the rest of U-Boot though, we want to stick with the default -Os as that is mostly control code. So in our case, we would add a line like so to the board specific config.mk file: CFLAGS_lib_generic += -O2
Now all files under lib_generic/ will have -O2 appended to their build.
Signed-off-by: Mike Frysinger <vapier@gentoo.org> Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
show more ...
|
| #
92afd368 |
| 14-Jun-2009 |
Wolfgang Denk <wd@denx.de> |
Merge branch 'next' of ../master
|
| #
3112030a |
| 22-May-2009 |
Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> |
config.mk: remove un-needed REMOTE_BUILD check
as $(obj) is empty when in tree build
%.s: %.S $(CPP) $(AFLAGS) -o $@ $<
and
$(obj)%.s: %.S $(CPP) $(AFLAGS) -o $@ $<
are the same
Signed-off-by
config.mk: remove un-needed REMOTE_BUILD check
as $(obj) is empty when in tree build
%.s: %.S $(CPP) $(AFLAGS) -o $@ $<
and
$(obj)%.s: %.S $(CPP) $(AFLAGS) -o $@ $<
are the same
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Acked-by: Mike Frysinger <vapier@gentoo.org>
show more ...
|
| #
ef29884b |
| 25-Jan-2009 |
Ben Warren <biggerbadderben@gmail.com> |
Merge git://git.denx.de/u-boot into u-boot
|
| #
be4880eb |
| 22-Jan-2009 |
Kim Phillips <kim.phillips@freescale.com> |
Merge branch 'master' into next
|
| #
4cda4378 |
| 17-Jan-2009 |
Mike Frysinger <vapier@gentoo.org> |
build system: treat all Darwin's alike
The x86 based version of Darwin behaves the same quirky way as the powerpc Darwin, so only check HOSTOS when setting up Darwin workarounds.
Signed-off-by: Mik
build system: treat all Darwin's alike
The x86 based version of Darwin behaves the same quirky way as the powerpc Darwin, so only check HOSTOS when setting up Darwin workarounds.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
show more ...
|
| #
cb547320 |
| 17-Dec-2008 |
Haavard Skinnemoen <haavard.skinnemoen@atmel.com> |
Merge branch 'fixes' into cleanups
Conflicts:
board/atmel/atngw100/atngw100.c board/atmel/atstk1000/atstk1000.c cpu/at32ap/at32ap700x/gpio.c include/asm-avr32/arch-at32ap700x/clk.h include/con
Merge branch 'fixes' into cleanups
Conflicts:
board/atmel/atngw100/atngw100.c board/atmel/atstk1000/atstk1000.c cpu/at32ap/at32ap700x/gpio.c include/asm-avr32/arch-at32ap700x/clk.h include/configs/atngw100.h include/configs/atstk1002.h include/configs/atstk1003.h include/configs/atstk1004.h include/configs/atstk1006.h include/configs/favr-32-ezkit.h include/configs/hammerhead.h include/configs/mimc200.h
show more ...
|
| #
434c51a5 |
| 12-Nov-2008 |
Peter Tyser <ptyser@xes-inc.com> |
Remove unneeded CONFIG_SHELL references
Make should be using the bash shell by default which makes CONFIG_SHELL unnecessary
Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
|
| #
6b8be3e5 |
| 12-Sep-2008 |
Wolfgang Denk <wd@denx.de> |
Merge branch 'master' of /home/wd/git/u-boot/custodians
|
| #
03db5333 |
| 12-Sep-2008 |
Shinya Kuribayashi <skuribay@ruby.dti.ne.jp> |
make: Remove redundant __ARM__ addition when cross-compiling on *BSD
__ARM__ is given by arm_config.mk automatically.
Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
|
| #
c351575c |
| 08-Sep-2008 |
Stefan Roese <sr@denx.de> |
Merge branch 'master' of /home/stefan/git/u-boot/u-boot
|
| #
6b971c73 |
| 30-Aug-2008 |
Shinya Kuribayashi <skuribay@ruby.dti.ne.jp> |
config.mk: Move arch-specific condition to $(ARCH)_config.mk
Signed-off-by: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
|
| #
859f2435 |
| 10-Jul-2008 |
Jon Loeliger <jdl@freescale.com> |
Merge commit 'wd/master'
|
| #
794a5924 |
| 10-Jul-2008 |
Markus Klotzbuecher <mk@denx.de> |
Merge branch 'master' of git://www.denx.de/git/u-boot
|
| #
7c6237b3 |
| 07-Jul-2008 |
Stefan Roese <sr@denx.de> |
Merge branch 'master' of /home/stefan/git/u-boot/u-boot
|
| #
d86a0a6f |
| 05-Jul-2008 |
Wolfgang Denk <wd@denx.de> |
Merge branch 'master' of ssh+git://mercury.denx.de/home/wd/git/u-boot/master
Conflicts:
board/amirix/ap1000/serial.c board/exbitgen/exbitgen.c board/exbitgen/flash.c board/ml2/serial.c board/x
Merge branch 'master' of ssh+git://mercury.denx.de/home/wd/git/u-boot/master
Conflicts:
board/amirix/ap1000/serial.c board/exbitgen/exbitgen.c board/exbitgen/flash.c board/ml2/serial.c board/xilinx/ml300/serial.c
Signed-off-by: Wolfgang Denk <wd@denx.de>
show more ...
|
| #
28eab0d7 |
| 19-May-2008 |
Haavard Skinnemoen <hskinnemoen@atmel.com> |
Conditionally add -fno-stack-protector to CFLAGS
When compile-testing on powerpc, I get errors like this:
net/nfs.c:422: undefined reference to `__stack_chk_fail_local'
This seems to be because -f
Conditionally add -fno-stack-protector to CFLAGS
When compile-testing on powerpc, I get errors like this:
net/nfs.c:422: undefined reference to `__stack_chk_fail_local'
This seems to be because -fstack-protector is on by default, so let's explicitly disable it on all architectures that support the option.
The Ubuntu toolchain is affected by this problem, and according to Mike Frysinger, Gentoo has been running with SSP enabled for years. More and more distros are turning SSP on by default, so this problem is likely to get worse in the future.
Also, powerpc just happens to be one of the arches I do compile-testing on. There may be other arches affected by this too.
Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
show more ...
|
| #
1a247ba7 |
| 06-Jun-2008 |
Jon Loeliger <jdl@freescale.com> |
Merge commit 'wd/master'
|
| #
10a33679 |
| 03-Jun-2008 |
Stefan Roese <sr@denx.de> |
Merge branch 'master' of /home/stefan/git/u-boot/u-boot
|