[llvm-dev] Users of MIPS and PowerPC backends in production-class projects?

Simon Dardis via llvm-dev llvm-dev at lists.llvm.org
Wed Feb 22 06:44:47 PST 2017


For MIPS, the common OSes would be Linux/FreeBSD/NetBSD/OpenBSD.

Endianness is somewhat variable as many MIPS designs have big endian and
little endian variants. Typically you can assume big endian but little endian is
fairly common as well.

For the ABI would be O32 for 32 bit MIPS and N64 for 64 bit MIPS. There is
another ABI, N32 which fulfils a similar role as X32 for x86_64 i.e. 32bit pointers
with 64 integers. This is what stock GCC targets by default for mips64. LLVM for
mips64 targets N64 by default for historical reasons.

Historically, MIPS has had other ABIs defined for it, such as GNU's EABI and it's
64 bit variant and O64. You can stick with O32/N64/N32 as most of the OS
distributions will only use those ABIs.

The usual linker would be the GNU linker and GOLD. LLD is in a good shape for
MIPS.

For baremetal / embedded / kernel environments, the tools and ABIS are the
same but you compile code as non-pic and use custom linker scripts and
startup code tailored to the environment.

Thanks,
Simon

> -----Original Message-----
> From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of ardi
> via llvm-dev
> Sent: 22 February 2017 09:48
> To: llvm-dev
> Subject: [llvm-dev] Users of MIPS and PowerPC backends in production-class
> projects?
> 
> Hi,
> 
> I'd like to experiment with the MIPS and PowerPC backends, but, considering
> that they aren't widely used processors, I'd like to start with the same
> environment (OS/ABI/linker) used by the people who work with these
> backends.
> 
> So, what OS/ABI/linker use the people who use these backends for
> production work?
> 
> Thanks!!
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev


More information about the llvm-dev mailing list