gcc-multilib is useful for cross-compiling, that is, compiling a program to run on a different processor architecture. For example, you would need gcc-multilib if you are running on 64-bit Ubuntu and want to compile a program to run on 32-bit Ubuntu (or on ARM etc. you get the idea).
Multilib and Multiarch - Unix & Linux Stack Exchange
linux - Enabling gcc-multilib manually after successful gcc installation on Debian system? - Stack Overflow
macos - What does gcc without multilib mean? - Stack Overflow
c++ - Building GCC as an ARM cross compiler with multilib support - Stack Overflow
gcc-multilib is useful for cross-compiling, that is, compiling a program to run on a different processor architecture. For example, you would need gcc-multilib if you are running on 64-bit Ubuntu and want to compile a program to run on 32-bit Ubuntu (or on ARM etc. you get the idea).
Is this actually Apple's "fat binaries" or "universal binaries" model ported to Linux?
No.
Multilib is a mechanism to support building and running code for different ABIs for the same CPU family on a given system. Most commonly it was/is used to support 32-bit code on 64-bit systems and 64-bit code on 32-bit systems with a 64-bit kernel. It was also used at one stage to provide support for soft-float arm binaries on hard-float arm systems.
It has been around for a long time. Since at least Debian lenny, but it never had specific support in the packaging tools making library support awkward. Also on arm upstream treats the 64-bit and 32-bit architectures as completely separate architectures rather than variants of the same architecture, so you can't use multilib there.
In terms of running code on Debian and Ubuntu systems, multilib has been mostly replaced by multiarch, which is a more general mechanism allowing installation of packages from potentially any combination of architectures on the same system (though actually running those binaries may require installing emulation layers).
In terms of building code Debian/Ubuntu now offer proper cross-compiler packages, which are more flexible than multilib in that they in principle allow you to build for anything on anything (though in practice Debian doesn't offer the full set of combinations).
So I think multilib is mostly legacy at this time, it sticks around though because important packages still nedd it to build.
I don't get how I'm supposed to do this. When installing over yaourt the compilation fails and (frustratingly) doesn't cache anything meaning I have to redo the 2hr+ process where my CPU is consistently hotter than 75C to get to the failure point.
Over pacman I try to remove gcc just for every dependency and their mother to complain that it needs gcc.
This is frustrating, is there a source download where I could compile and install it manually so I'm not at the mercy of yaourt or pacman?
For the record all I am trying to do is build the PCSX2 project from source with a different Video plugin as the standard GSL plugin has issues with hardware rendering on Intel HD Cards (because Intel sucks at driver support). This single issues is making me want to dust off my Windows Desktop but I'd prefer to have a decent emulator setup on my Linux laptop.
Here's the output of pacman -Qs gcc, I have the libs from multilib which I think I have to first remove before I can switch over since I remember reading gcc vs multilib is all or nothing.
local/gcc 7.3.1+20180312-2 (base-devel)
The GNU Compiler Collection - C and C++ frontends
local/gcc-ada 7.3.1+20180312-2
Ada front-end for GCC (GNAT)
local/gcc-libs 7.3.1+20180312-2 (base)
Runtime libraries shipped by GCC
local/lib32-gcc-libs 7.3.1+20180312-2 (multilib-devel)
32-bit runtime libraries shipped by GCC
I haven't updated in a week don't yell at me if my packages are out of date.