u-boot-brain/arch/x86
Bin Meng 3d2be8003c x86: Fix car_uninit weak symbol definition
Since commit 80df194f01 ("x86: detect unsupported relocation types"),
an error message is seen on QEMU x86 target during boot:

do_elf_reloc_fixups32: unsupported relocation type 0x1 at fff841f0, offset = 0xfff00087
do_elf_reloc_fixups32: unsupported relocation type 0x2 at fff841f8, offset = 0xfff00091

Check offset 0xfff00087 and 0xfff00091 in the u-boot ELF image,

fff00087  000df401 R_386_32          00000000   car_uninit
fff00091  000df402 R_386_PC32        00000000   car_uninit

we see R_386_32 and R_386_PC32 relocation type is generated for
symbol car_uninit, which is declared as a weak symbol in start.S.

However the actual weak symbol implementation ends up nowhere. As
we can see below, it's *UND*.

$ objdump -t u-boot | grep car_uninit
00000000  w      *UND*  00000000 car_uninit

With this fix, it is normal now.

$ objdump -t u-boot | grep car_uninit
fff00094  w    F .text.start    00000001 car_uninit

Reported-by: Hannes Schmelzer <hannes@schmelzer.or.at>
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Tested-by: Hannes Schmelzer <oe5hpm@oevsv.at>
2018-10-28 21:02:15 +08:00
..
cpu x86: Fix car_uninit weak symbol definition 2018-10-28 21:02:15 +08:00
dts x86: dts: edison: configure I2C#6 pins 2018-09-17 17:35:52 +08:00
include/asm x86: BayTrail: southcluster.asl: Change PCI 64 bit address range / region 2018-10-28 21:02:15 +08:00
lib x86: detect unsupported relocation types 2018-10-22 17:51:45 +08:00
config.mk x86: Ensure no instruction sets of MMX/SSE are generated in 64-bit build 2018-10-22 17:51:45 +08:00
Kconfig x86: efi: Refactor the directory of EFI app and payload support 2018-06-17 21:16:04 +08:00
Makefile SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00