* [U-Boot-Users] trouble to build u-boot.bin with objcopy
@ 2008-06-18 15:09 valerian NA
2008-06-18 15:23 ` Jerry Van Baren
0 siblings, 1 reply; 2+ messages in thread
From: valerian NA @ 2008-06-18 15:09 UTC (permalink / raw)
To: u-boot
Hi all,
I work with a linux cross-compiler (codesourcery with gcc 4.2.3) for
embedded powerpc targets (mpc8248).
So I tried to compile u-boot (version 1.1.6). It works fine with another and
older version of gcc (3.3.2) but with the new cross-compiler (4.2.3) I have
trouble to do this part :
powerpc-linux-gnu-objcopy --gap-fill 0xff -O binary u-boot u-boot.bin
This command freezes and uses a lot of memory without sucess (maybe I have
not enough disk space).
I decided to launch without "--gap-fill" to see the reaction :
powerpc-linux-gnu-objcopy -O binary u-boot u-boot.bin
It creates u-boot.bin file, and the system (host ls -al) tells that this
file has a size nearest to 4GiB
So I think it's a problem in the mapping of u-boot :
powerpc-linux-gnu-objdump -h u-boot
u-boot: file format elf32-powerpc
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00017e18 fc000000 fc000000 00002138 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .reloc 00000804 fc018000 fc018000 0001a138 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .data 00001060 fc018804 fc018804 0001a93c 2**2
CONTENTS, ALLOC, LOAD, DATA
3 .data.rel.ro.local 0000003c fc019864 fc019864 0001b99c 2**2
CONTENTS, ALLOC, LOAD, DATA
4 .data.rel 0000003c fc0198a0 fc0198a0 0001b9d8 2**2
CONTENTS, ALLOC, LOAD, DATA
5 .data.rel.local 00000634 fc0198dc fc0198dc 0001ba14 2**2
CONTENTS, ALLOC, LOAD, DATA
6 .ppcenv 00000200 fc019f10 fc019f10 0001c048 2**2
CONTENTS, ALLOC, LOAD, DATA
7 .u_boot_cmd 000000dc fc01a110 fc01a110 0001c248 2**2
CONTENTS, ALLOC, LOAD, DATA
8 .bss 00001bf8 fc01b000 fc01b000 0001d138 2**3
ALLOC
9 .debug_line 0000607d 00000000 00000000 0001d138 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_info 00027d84 00000000 00000000 000231b5 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_abbrev 00005254 00000000 00000000 0004af39 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_aranges 00000660 00000000 00000000 00050190 2**3
CONTENTS, READONLY, DEBUGGING
13 .rodata.str1.1 0000209e 00000660 00000660 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
14 .debug_frame 000026cc 00000000 00000000 000507f0 2**2
CONTENTS, READONLY, DEBUGGING
15 .debug_loc 0000c9c7 00000000 00000000 00052ebc 2**0
CONTENTS, READONLY, DEBUGGING
16 .debug_pubnames 000016b1 00000000 00000000 0005f883 2**0
CONTENTS, READONLY, DEBUGGING
17 .debug_str 000043d5 00000000 00000000 00060f34 2**0
CONTENTS, READONLY, DEBUGGING
18 .comment 000006d6 00000000 00000000 00065309 2**0
CONTENTS, READONLY
19 .note.GNU-stack 00000000 00000000 00000000 000659df 2**0
CONTENTS, READONLY
20 .gnu.attributes 00000384 00000000 00000000 000659df 2**0
CONTENTS, READONLY
21 .debug_ranges 00000f60 00000000 00000000 00065d63 2**0
CONTENTS, READONLY, DEBUGGING
Just a command to show you how objs are compiled :
powerpc-linux-gnu-gcc -g -Os -fPIC -ffixed-r14 -meabi -D__KERNEL__
-DTEXT_BASE=0xFC000000 -I/a/good/path/to/include2 -I/a/good/path/to/include
-I/a/good/path/to/include -fno-builtin -ffreestanding -nostdinc
-isystem/usr/freescale-gcc-4.2.3/bin/../lib/gcc/powerpc-linux-gnu/4.2.3/include
-pipe -DCONFIG_PPC -D__powerpc__ -DCONFIG_8260 -DCONFIG_CPM2 -ffixed-r2
-ffixed-r29 -mstring -mcpu=603e -mmultiple -Wall -Wstrict-prototypes -c -o
/a/good/path/to/common/cmd_mac.o cmd_mac.c
And another command to see how u-boot is built :
powerpc-linux-gnu-ld -Bstatic -T /a/good/path/to/a/u-boot.lds -Ttext
0xFC000000 -n $UNDEF_SYM cpu/mpc8260/start.o \
--start-group lib_generic/libgeneric.a
board/rmp100/librmp100.a cpu/mpc8260/libmpc8260.a lib_ppc/libppc.a
fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a
fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a net/libnet.a disk/libdisk.a
rtc/librtc.a dtt/libdtt.a drivers/libdrivers.a drivers/nand/libnand.a
drivers/nand_legacy/libnand_legacy.a drivers/sk98lin/libsk98lin.a
post/libpost.a post/cpu/libcpu.a common/libcommon.a --end-group -L
/usr/freescale-gcc-4.2.3/bin/../lib/gcc/powerpc-linux-gnu/4.2.3 -lgcc \
-Map u-boot.map -o u-boot
If I do it with .a files compiled with gcc3 and after I do objcopy it works
but if I do it with .a files compiled with gcc4 it freezes.
NB :
- with gcc3, u-boot.bin has a size of 121KiB
- UNDEF_SYM=
-u__u_boot_cmd_autoscr -u__u_boot_cmd_bootm -u__u_boot_cmd_diskboot
-u__u_boot_cmd_end -u__u_boot_cmd_go -u__u_boot_cmd_help -u__u_boot_cmd_ide
-u__u_boot_cmd_printenv -u__u_boot_cmd_question_mark -u__u_boot_cmd_reset
-u__u_boot_cmd_setenv -u__u_boot_cmd_start -u__u_boot_cmd_version
- I know u-boot 1.1.6 is an older version but I have to use it not another
Thanks a lot for your attention and your futurs ideas...
Val.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.denx.de/pipermail/u-boot/attachments/20080618/22ef2ce8/attachment.htm
^ permalink raw reply [flat|nested] 2+ messages in thread
* [U-Boot-Users] trouble to build u-boot.bin with objcopy
2008-06-18 15:09 [U-Boot-Users] trouble to build u-boot.bin with objcopy valerian NA
@ 2008-06-18 15:23 ` Jerry Van Baren
0 siblings, 0 replies; 2+ messages in thread
From: Jerry Van Baren @ 2008-06-18 15:23 UTC (permalink / raw)
To: u-boot
valerian NA wrote:
> Hi all,
>
> I work with a linux cross-compiler (codesourcery with gcc 4.2.3) for
> embedded powerpc targets (mpc8248).
> So I tried to compile u-boot (version 1.1.6). It works fine with another
> and older version of gcc (3.3.2) but with the new cross-compiler (4.2.3)
> I have trouble to do this part :
> powerpc-linux-gnu-objcopy --gap-fill 0xff -O binary u-boot u-boot.bin
>
> This command freezes and uses a lot of memory without sucess (maybe I
> have not enough disk space).
Symptom of an inadvertent *large* gap in your "LOAD" sections.
> I decided to launch without "--gap-fill" to see the reaction :
> powerpc-linux-gnu-objcopy -O binary u-boot u-boot.bin
> It creates u-boot.bin file, and the system (host ls -al) tells that this
> file has a size nearest to 4GiB
>
> So I think it's a problem in the mapping of u-boot :
> powerpc-linux-gnu-objdump -h u-boot
>
> u-boot: file format elf32-powerpc
>
> Sections:
> Idx Name Size VMA LMA File off Algn
> 0 .text 00017e18 fc000000 fc000000 00002138 2**2
> CONTENTS, ALLOC, LOAD, READONLY, CODE
> 1 .reloc 00000804 fc018000 fc018000 0001a138 2**0
> CONTENTS, ALLOC, LOAD, DATA
> 2 .data 00001060 fc018804 fc018804 0001a93c 2**2
> CONTENTS, ALLOC, LOAD, DATA
> 3 .data.rel.ro.local 0000003c fc019864 fc019864 0001b99c 2**2
> CONTENTS, ALLOC, LOAD, DATA
> 4 .data.rel 0000003c fc0198a0 fc0198a0 0001b9d8 2**2
> CONTENTS, ALLOC, LOAD, DATA
> 5 .data.rel.local 00000634 fc0198dc fc0198dc 0001ba14 2**2
> CONTENTS, ALLOC, LOAD, DATA
> 6 .ppcenv 00000200 fc019f10 fc019f10 0001c048 2**2
> CONTENTS, ALLOC, LOAD, DATA
> 7 .u_boot_cmd 000000dc fc01a110 fc01a110 0001c248 2**2
> CONTENTS, ALLOC, LOAD, DATA
> 8 .bss 00001bf8 fc01b000 fc01b000 0001d138 2**3
> ALLOC
[snip]
> 13 .rodata.str1.1 0000209e 00000660 00000660 00000094 2**0
> CONTENTS, ALLOC, LOAD, READONLY, DATA
What is .rodata.str1.1? Is it new to gcc 4.2.3? It is being located at
the start of memory where all the rest of your "LOAD" sections are at
the end of memory. The result: 4GB binary images. You need to locate
this is a better location (close to the rest of the "LOAD" sections).
[snip]
> Thanks a lot for your attention and your futurs ideas...
>
> Val.
HTH,
gvb
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2008-06-18 15:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-18 15:09 [U-Boot-Users] trouble to build u-boot.bin with objcopy valerian NA
2008-06-18 15:23 ` Jerry Van Baren
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox