Messages in this thread | | | From | Michael Ellerman <> | Subject | Re: [PATCH] powerpc: Make set_endian() return EINVAL when not supporting little endian | Date | Fri, 27 Aug 2021 00:23:50 +1000 |
| |
Christophe Leroy <christophe.leroy@csgroup.eu> writes: > Le 26/08/2021 à 05:41, Michael Ellerman a écrit : >> Christophe Leroy <christophe.leroy@csgroup.eu> writes: >>> There is no point in modifying MSR_LE bit on CPUs not supporting >>> little endian. >> >> Isn't that an ABI break? > > Or an ABI fix ? I don't know.
It could break existing applications, even if the new semantics make more sense. So that's a break IMHO :)
> My first thought was that all other 32 bits architectures were returning -EINVAL, but looking at the > man page of prctl, it is explicit that this is powerpc only.
It could be generic, but yeah seems we're the only arch that implements it.
>> set_endian(PR_ENDIAN_BIG) should work on a big endian CPU, even if it >> does nothing useful. > > Fair enough. But shouldn't in that case get_endian() return PR_ENDIAN_BIG instead of returning EINVAL ?
> We can do one or the other, but I think it should at least be consistant between them, shouldn't it ?
It should be consistent, but it isn't, and if we change it now we potentially break existing userspace, which is bad.
I don't think it's widely used, and the risk of breakage would be minimal, but it's not zero.
So I'm not sure it's worth changing it just for the sake of consistency.
cheers
| |