Skip to contentSkip to conversation

cam_enc_4xx build failure

U-Boot Marek Vasut 4 participants 6 messages Mar 5, 2012 – Mar 7, 2012

lore
Share & tools
lore
#0 lore raw

Dear Heiko Schocher,

cam_enc_4xx does not build with ELDK4.2 . Can you please come up with a patch?

Thanks in advance!

Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Configuring for cam_enc_4xx board...
cam_enc_4xx.c: In function 'menu_handle':
cam_enc_4xx.c:609: warning: dereferencing type-punned pointer will break strict- aliasing rules
arm-linux-ld: u-boot-spl: Not enough room for program headers, try linking with -N
arm-linux-ld: final link failed: Bad value
make[1]: *** [/opt/work/jenkins/jobs/U- Boot/workspace/workspace/compiler/eldk4.2/device/arm___cam_enc_4xx/spl/u-boot- spl] Error 1
make: *** [spl/u-boot-spl.bin] Error 2
make: *** Waiting for unfinished jobs....
cmd_pxe.c: In function 'do_pxe_get':
cmd_pxe.c:334: warning: dereferencing type-punned pointer will break strict- aliasing rules
cmd_pxe.c: In function 'get_relfile_envaddr':
cmd_pxe.c:374: warning: dereferencing type-punned pointer will break strict- aliasing rules
arm-linux-size: './u-boot': No such file

--------------------- SUMMARY ---------------------------- Boards compiled: 1
Boards with warnings or errors: 1 ( cam_enc_4xx )
----------------------------------------------------------

Best regards,
Marek Vasut

#1 lore raw

Hello Marek,

Quoted 3 lines · Marek Vasut

Dear Heiko Schocher,

cam_enc_4xx does not build with ELDK4.2 . Can you please come up with a patch?

Hups, tested only with ELDK-5.1 compile/works fine!

Quoted 10 lines

Thanks in advance!

Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Configuring for cam_enc_4xx board...
cam_enc_4xx.c: In function 'menu_handle':
cam_enc_4xx.c:609: warning: dereferencing type-punned pointer will break strict- aliasing rules

fixed

Quoted 2 lines

arm-linux-ld: u-boot-spl: Not enough room for program headers, try linking with -N

Hmm.. I need here this patch (for ELDK-4.2 only):

config.mk +1 -1
index ddaa477..1aaf2a2 100644
@@ -254,7 +254,7 @@ ifneq ($(CONFIG_SYS_TEXT_BASE),)
 LDFLAGS_u-boot += -Ttext $(CONFIG_SYS_TEXT_BASE)
 endif
 
-LDFLAGS_u-boot-spl += -T $(obj)u-boot-spl.lds $(LDFLAGS_FINAL)
+LDFLAGS_u-boot-spl += -N -T $(obj)u-boot-spl.lds $(LDFLAGS_FINAL)
 ifneq ($(CONFIG_SPL_TEXT_BASE),)
 LDFLAGS_u-boot-spl += -Ttext $(CONFIG_SPL_TEXT_BASE)
 endif

compiles/works with ELDK-4.2 compiles/works with ELDK-5.1 ...

a) better ideas for a fix?
b) If patch is OK, should I send for this issue in a seperate patch?

Quoted 5 lines

arm-linux-ld: final link failed: Bad value
make[1]: *** [/opt/work/jenkins/jobs/U- Boot/workspace/workspace/compiler/eldk4.2/device/arm___cam_enc_4xx/spl/u-boot- spl] Error 1
make: *** [spl/u-boot-spl.bin] Error 2

Quoted 8 lines

make: *** Waiting for unfinished jobs....
cmd_pxe.c: In function 'do_pxe_get':
cmd_pxe.c:334: warning: dereferencing type-punned pointer will break strict- aliasing rules
cmd_pxe.c: In function 'get_relfile_envaddr':
cmd_pxe.c:374: warning: dereferencing type-punned pointer will break strict- aliasing rules
arm-linux-size: './u-boot': No such file

added Jason Hobbs <[email protected]> to Cc.

Jason? Could you fix this?

Removed cmd_pxe support for the cam_enc_4xx board, as it is not needed.

Thanks!

bye,
Heiko

Signature · 2 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#2 lore raw

On Mon, Mar 05, 2012 at 03:39:39AM -0500, Heiko Schocher wrote:

...

Quoted 14 lines
Quoted 5 lines

arm-linux-ld: final link failed: Bad value
make[1]: *** [/opt/work/jenkins/jobs/U- Boot/workspace/workspace/compiler/eldk4.2/device/arm___cam_enc_4xx/spl/u-boot- spl] Error 1
make: *** [spl/u-boot-spl.bin] Error 2

Quoted 8 lines

make: *** Waiting for unfinished jobs....
cmd_pxe.c: In function 'do_pxe_get':
cmd_pxe.c:334: warning: dereferencing type-punned pointer will break strict- aliasing rules
cmd_pxe.c: In function 'get_relfile_envaddr':
cmd_pxe.c:374: warning: dereferencing type-punned pointer will break strict- aliasing rules
arm-linux-size: './u-boot': No such file

Quoted 3 lines

added Jason Hobbs <[email protected]> to Cc.

Jason? Could you fix this?

Yes - I'll send a patch in shortly.

Thanks,
Jason

#3 lore raw

Dear Jason Hobbs,

Quoted 18 lines · Heiko Schocher

...

Quoted 14 lines
Quoted 13 lines

arm-linux-ld: final link failed: Bad value
make[1]: *** [/opt/work/jenkins/jobs/U- Boot/workspace/workspace/compiler/eldk4.2/device/arm___cam_enc_4xx/spl/ u-boot- spl] Error 1
make: *** [spl/u-boot-spl.bin] Error 2
make: *** Waiting for unfinished jobs....
cmd_pxe.c: In function 'do_pxe_get':
cmd_pxe.c:334: warning: dereferencing type-punned pointer will break strict- aliasing rules
cmd_pxe.c: In function 'get_relfile_envaddr':
cmd_pxe.c:374: warning: dereferencing type-punned pointer will break strict- aliasing rules
arm-linux-size: './u-boot': No such file

Quoted 8 lines
Quoted 3 lines

added Jason Hobbs <[email protected]> to Cc.

Jason? Could you fix this?

Yes - I'll send a patch in shortly.

Thanks,
Jason

Thank you very much!

Best regards,
Marek Vasut

#4 lore raw
In reply to Heiko Schocher

Dear Heiko,

Quoted 3 lines · In message <[email protected]> you wrote:
Quoted 3 lines

arm-linux-ld: u-boot-spl: Not enough room for program headers, try linking with -N

...

Quoted 1 line

Hmm.. I need here this patch (for ELDK-4.2 only):

...

Quoted 10 lines
config.mk +1 -1
-LDFLAGS_u-boot-spl += -T $(obj)u-boot-spl.lds $(LDFLAGS_FINAL)
+LDFLAGS_u-boot-spl += -N -T $(obj)u-boot-spl.lds $(LDFLAGS_FINAL)
 ifneq ($(CONFIG_SPL_TEXT_BASE),)
 LDFLAGS_u-boot-spl += -Ttext $(CONFIG_SPL_TEXT_BASE)
 endif

compiles/works with ELDK-4.2 compiles/works with ELDK-5.1 ...

a) better ideas for a fix?
b) If patch is OK, should I send for this issue in a seperate patch?

Hm... checking the documentation what -N does:

`-N'
`--omagic'
Set the text and data sections to be readable and writable. Also, do not page-align the data segment, and disable linking against shared libraries. If the output format supports Unix style magic numbers, mark the output as `OMAGIC'. Note: Although a writable text section is allowed for PE-COFF targets, it does not conform to the format specification published by Microsoft.

Attributes like "readable and writable" don't play a role here, and we are not using any shared libraries either.

So it must be the "do not page-align the data segment" part - which indocated that you should adjust your image size assumptions and/or your linker script.

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
It would seem that evil retreats when forcibly confronted
	-- Yarnek of Excalbia, "The Savage Curtain", stardate 5906.5
#5 lore raw
In reply to Marek Vasut

Hello Marek,

added Tom Rini to cc...

Quoted 10 lines · Marek Vasut

Dear Heiko Schocher,

cam_enc_4xx does not build with ELDK4.2 . Can you please come up with a patch?

Thanks in advance!

Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Quoted 7 lines

Configuring for cam_enc_4xx board...
cam_enc_4xx.c: In function 'menu_handle':
cam_enc_4xx.c:609: warning: dereferencing type-punned pointer will break strict- aliasing rules
arm-linux-ld: u-boot-spl: Not enough room for program headers, try linking with -N
arm-linux-ld: final link failed: Bad value

If I try a SPL_TEXT_BASE = 0x00000000 or SPL_TEXT_BASE = 0x00000080 it compiles fine with ELDK-4.2, but I need SPL_TEXT_BASE = 0x00000020 as the RBL copies code from nand to 0x00000020 ...

I can fix this with this patch:

board/ait/cam_enc_4xx/config.mk +7 -0
index b1f9b6c..744b927 100644
@@ -12,4 +12,11 @@ PAD_TO       := 12320
 UBL_CONFIG = $(SRCTREE)/board/$(BOARDDIR)/ublimage.cfg
 ifndef CONFIG_SPL_BUILD
 ALL-y += $(obj)u-boot.ubl
+else
+# as SPL_TEXT_BASE is not page-aligned, we need for some
+# linkers the -n flag (Do not page align data), to prevent
+# the following error message:
+# arm-linux-ld: u-boot-spl: Not enough room for program headers, try linking
+# with -N
+LDFLAGS_u-boot-spl += -n
 endif

I must admit, that I do not really understand, whats the real problem is.

Can somebody help here?

bye,
Heiko

Signature · 2 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany