"GCC requires the freestanding environment provide memcpy, memmove, memset
and memcmp" [1].
Hence in GNUEABI targets LLVM should not convert 'memops' to their equivalent
'__aeabi_memops'. This convertion violates GCC contract.
The -meabi flag controls whether or not LLVM will modify 'memops' in GNUEABI
targets.
Without -meabi: use the triple default EABI. With -meabi=default: use the triple default EABI. With -meabi=gnu: use 'memops'. With -meabi=4 or -meabi=5: use '__aeabi_memops'. With -meabi set to an unknown value: same as -meabi=default.
[1] https://gcc.gnu.org/onlinedocs/gcc-5.2.0/gcc/Standards.html
This is the wrong spelling. This option is not arm specific, but applies to PPC, MIPS, and ARM. This should be done in the frontend (clang), and passed along, and we can add the option to the other tools as necessary (similar to -march, -mcpu, ...).