Hi! On Fri, May 14, 2021 at 11:42:32AM +0900, Masahiro Yamada wrote: > In my best guess, the reason why powerpc adding the endian flag to CPP > is this line in arch/powerpc/kernel/vdso64/vdso64.lds.S > > #ifdef __LITTLE_ENDIAN__ > OUTPUT_FORMAT("elf64-powerpcle", "elf64-powerpcle", "elf64-powerpcle") > #else > OUTPUT_FORMAT("elf64-powerpc", "elf64-powerpc", "elf64-powerpc") > #endif Which is equivalent to #ifdef __LITTLE_ENDIAN__ OUTPUT_FORMAT("elf64-powerpcle") #else OUTPUT_FORMAT("elf64-powerpc") #endif so please change that at the same time if you touch this :-) > __LITTLE_ENDIAN__ is defined by powerpc gcc and clang. This predefined macro is required by the newer ABIs, but all older compilers have it as well. _LITTLE_ENDIAN is not supported on all platforms (but it is if your compiler targets Linux, which you cannot necessarily rely on). These macros are PowerPC-specific. For GCC, for all targets, you can say #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ You do not need any of the other *ORDER__ macros in most cases. See "info cpp" for the sordid details. > [2] powerpc-linux-gnu-gcc + -mlittle-endian -> __LITTLE_ENDIAN__ is defined You can just write -mbig and -mlittle btw. Those aren't available on all targets, but neither are the long-winded -m{big,little}-endian option names. Pet peeve, I know :-) HtH, Segher