
Hi James,
On Wed, Aug 14, 2019 at 1:08 PM James Wang James.Wang@rohde-schwarz.com wrote:
Hi Simon,
This is James and am working on u-boot to bring back MinGW tool chain for cross compiling host tools for Windows on Linux. After complete the code, I plan to generate a patch for community review.
Do you mean cross compiling U-Boot's mkimage tool for Windows on Linux using gcc-mingw-w64? Do you want to support building U-Boot on Windows as well?
During work, I face an compiling error in file <arch/x86/include/asm/byteorder.h> with macro *CONFIG_IS_ENABLED*. After some background study, seems this macro should not be available when compiling host tools.
After check history, it’s from 909780506773a9b09ae88cb267dbfa6a8d0caa7b on 2017-01-16 22:04:04, Below is the log message
x86: Fix up byteorder.h for x86_64*
Remove the very old x86 code and add support for 64-bit.*
Signed-off-by: Simon Glass <sjg@chromium.org sjg@chromium.org>*
*Reviewed-by: Bin Meng bmeng.cn@gmail.com bmeng.cn@gmail.com*
Below are the relevant changes.
*+#define _constant_swab16(x) ((__u16)( *
*+ (((__u16)(x) & (__u16)0x00ffU) << 8) | *
*+ (((__u16)(x) & (__u16)0xff00U) >> 8)))*
*+*
*static __inline__ __u16 ___arch__swab16(__u16 x)*
*{*
*+#if CONFIG_IS_ENABLED(X86_64) *
*+ return _constant_swab16(x);*
*+#else*
__asm__("xchgb %b0,%h0" /* swap
bytes */ *
: "=q" (x) \*
: "0" (x)); \*
return x;*
*+#endif*
*}*
I am not familiar with x86 instructions and not understand the purpose of this change, is it because instruction “xchgb” not available on 64-bit architecture or something else?
I can't remember the details of why Simon changed this. xchgb is available in 64-bit. We probably need revert this change, Simon?
Regards, Bin