[U-Boot] building u boot in freebsd

I managed to build mpc8548 u-boot on FreeBSD with it's native powerpc cross tools. All went fine after a little changes.
But at final linking stage, I got those "start.o(.got2+0x1c): relocation truncated to fit: blah blah blah..." messages.
so I looked at .lds and it's write
* .resetvec RESET_VECTOR_ADDRESS :* * {* * *(.resetvec)* * } :text = 0xffff* * . = RESET_VECTOR_ADDRESS + 0x4;* * /** * * Make sure that the bss segment isn't linked at 0x0, otherwise its* * * address won't be updated during relocation fixups. Note that* * * this is a temporary fix. Code to dynamically the fixup the bss* * * location will be added in the future. When the bss relocation* * * fixup code is present this workaround should be removed.* * */* *#if (RESET_VECTOR_ADDRESS == 0xfffffffc)* * . |= 0x10;* *#endif* * __bss_start = .;* * .bss (NOLOAD) :* * {* * *(.sbss) *(.scommon)* * *(.dynbss)* * *(.bss)* * *(COMMON)* * } :bss* * . = ALIGN(4);* * _end = . ;* * PROVIDE (end = .);*
Which cause my FreeBSD ld to do 64bit calculations, which lead to as in the map file
* 0x0000000100000000 . = 0x100000000* * 0x0000000100000010 . = 0x10* * 0x0000000100000010 __bss_start = .* * ....blah blah blah...*
I haven't read u-boot code yet, could anybody tells me what this perpose is. Is it safe to just put .=0x10 there instead of .|=0x10 ?
participants (1)
-
Jacky Cao