Fix dtc bugs for 64-bit compile

Jon Loeliger jdl at jdl.com
Thu Nov 12 14:43:43 EST 2009


> I've just tested building dtc as an x86_64 binary on a 32-bit i386
> host by using:
> 	make CC="gcc -m64"
> This patch fixes a handful of minor bugs thus discovered:
> 
>  * There is a printf() type mismatch on 64-bit in value-labels.c
> 
>  * For the tests which use libdl, we were using the GNU make feature
> where it will find libdl.so given a dependency in the form '-ldl'.
> But this built-in make logic doesn't know we're compiling 64-bit so
> finds the 32-bit version of the library.  We avoid using this and
> instead explicitly pass -ldl to CC, which being the 64-bit version
> does know where to look.
> 
>  * To process dtc's asm output into .so files, run_tests.sh was
> directly invoking the (default instance of) the assembler and linker.
> Instead invoke these via the CC driver, and allow that to be overriden
> from the make environment.
> 
>  * The x86_64 assembler doesn't 0 fill with the .balign directive
> (presumably it is NOP filling).  That doesn't produce strictly
> incorrect trees, but it is confusing and confounds are testcases which
> do byte-by-byte comparison of the trees produced by asm output with
> direct dtb output (which does 0 pad where necessary, of course).  This
> patch uses the optional second argument to .balign to force gas to
> zero-fill instead.
> 
> Signed-off-by: David Gibson <david at gibson.dropbear.id.au>

Applied.

jdl



More information about the devicetree-discuss mailing list