On Wed, 16 Oct 2019, Jiaxun Yang wrote:
This makes a part of the user ABI, so I would advise discussing this with libc folks. Also you probably want to report microMIPS support too.
How can hwcap advance libc? I know that Arm world is using it to probe SIMD extensions in high-level programs like ffmpeg.
Auxiliary vector entries do get used by libc, including HWCAP, so if you introduce new stuff, then you want to consult its potential users. And this is a part of the ABI, so once there it's cast in stone forever.
microMIPS binary can't be applied at runtime, so userspace programs shouldn't aware that.
Mixing regular MIPS and microMIPS software is fully supported at load time as indirect calls made through the GOT (or PLTGOT) are ISA-agnostic, i.e. you can use a microMIPS DSO with a regular MIPS executable and vice versa. This is something the dynamic loader can take advantage of, e.g. choosing a smaller microMIPS DSO where supported by hardware over a corresponding regular MIPS one will usually have a performance advantage due to a smaller cache footprint.
Actually regular MIPS ISA support should be reported these days too, as you can have a pure microMIPS CPU with no regular MIPS ISA implemented.
Should I Cc this discussion to libc-alpha or other lists?
For the GNU C Library libc-alpha@sourceware.org is indeed the right place; I can't speak for other libc implementations (uClibc, musl, etc.).
Maciej