The 3.8 branch produces broken code for divisions on arm/windows.
The brokenness can appear as incorrect behaviour or crashes.
The 3.9 branch isn't released yet, but is probably a better target
to base any work on at the moment.
The previously existing patch needed some modifications to fit
on top of lld 3.9.
Patch 2 makes sure that one still can use the lld built in this
way for linking in MSVC mode.
Patch 3 fixes linking binaries larger than 4 MB or so (previously
the binaries linked fine but didn't work).
Patch 4 makes sure to error out if the relocations are too far
away (instead of producing a broken binary), which happens after
16 MB.
Patch 5 fixes relocations that have an offset, which probably
happens in hand-written assembly (in libav).
Patches 1 and 2 fix a bug (that has been present in 3.7 and 3.8)
where it can use the wrong instruction in some cases (libav
with inline assembly disabled), causing rounding errors in
integer audio dct's there.
Patch 3 allows building inline assembly with clang/llvm in MSVC mode.
Patches 1-2 are just rebased from the earlier version for clang
3.8, no changes in surrounding code there.
Patch 3 is necessary to fix a regression in assembling standalone
assembly files in 3.9.
Patch 4 makes clang work in MSVC mode with the MSVC SDK for ARM
(to simplify testing of the toolchain in that mode).