Patchwork [U-Boot] cam_enc_4xx build failure

login
register
mail settings
Submitter Heiko Schocher
Date March 5, 2012, 8:39 a.m.
Message ID <4F547BCB.1010201@denx.de>
Download mbox | patch
Permalink /patch/144628/
State Not Applicable
Headers show

Comments

Heiko Schocher - March 5, 2012, 8:39 a.m.
Hello Marek,

Marek Vasut wrote:
> 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!

> 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

> 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):


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?

> 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

added Jason Hobbs <jason.hobbs@calxeda.com> 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
Jason Hobbs - March 5, 2012, 2:30 p.m.
On Mon, Mar 05, 2012 at 03:39:39AM -0500, Heiko Schocher wrote:

...

> > 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
> 
> added Jason Hobbs <jason.hobbs@calxeda.com> to Cc.
> 
> Jason? Could you fix this?

Yes - I'll send a patch in shortly.

Thanks,
Jason
Marek Vasut - March 5, 2012, 3:36 p.m.
Dear Jason Hobbs,

> On Mon, Mar 05, 2012 at 03:39:39AM -0500, Heiko Schocher wrote:
> 
> ...
> 
> > > 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
> > 
> > added Jason Hobbs <jason.hobbs@calxeda.com> 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
Wolfgang Denk - March 5, 2012, 4:32 p.m.
Dear Heiko,

In message <4F547BCB.1010201@denx.de> you wrote:
> 
> > 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):
...
> -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

Patch

diff --git a/config.mk b/config.mk
index ddaa477..1aaf2a2 100644
--- a/config.mk
+++ b/config.mk
@@ -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