Messages in this thread |  | | Date | Mon, 17 May 2021 13:23:11 +1000 | Subject | Re: [PATCH kernel v3] powerpc/makefile: Do not redefine $(CPP) for preprocessor | From | Alexey Kardashevskiy <> |
| |
On 5/14/21 18:46, Segher Boessenkool wrote: > 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 :-)
"If you touch this" approach did not work well with this patch so sorry but no ;)
and for a separate patch, I'll have to dig since when it is equal, do you know?
> >> __LITTLE_ENDIAN__ is defined by powerpc gcc and clang. > > This predefined macro is required by the newer ABIs, but all older
That's good so I'll stick to it.
> 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 :-)
I am looking the same guarantees across modern enough gcc and clang and I am not sure all of the above is valid for clang 10.0.something (or whatever we say we support) ;)
-- Alexey
|  |