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