dependencies: Deterministic LLVM compile and link arg ordering (#8959)
dependencies: Deterministic LLVM compile and link arg ordering (#8959)

* dependencies: Deterministic LLVM compile and link arg ordering

In LLVMDependencyConfigTool, the members compile_args and required_modules are
either converted to or stored as sets, which do not have a stable ordering. This
results in nondeterministic builds, particularly with required_modules causing
the order in which the LLVM libraries are linked in to the output binaries to
change across independent builds. As any guarantee about ordering for
compile_args is lost by being converted from a list to a set and back, and the
modules added to required_modules was even already sorted once, sort both when
converting them to lists.

* Use mesonlib.OrderedSet instead of sorting the sets.

Co-authored-by: Kaelyn Takata <f35cb6ffd3d6dc304afa73ffbf4436d327e70a53@protonmail.com>
pexip/meson,jpakkane/meson,pexip/meson,jpakkane/meson,mesonbuild/meson,pexip/meson,mesonbuild/meson,jpakkane/meson,mesonbuild/meson,pexip/meson,pexip/meson,jpakkane/meson,jpakkane/meson,mesonbuild/meson,mesonbuild/meson,jpakkane/meson,jpakkane/meson,mesonbuild/meson,pexip/meson,mesonbuild/meson,mesonbuild/meson,pexip/meson,jpakkane/meson,pexip/meson,jpakkane/meson,pexip/meson,pexip/meson,mesonbuild/meson,mesonbuild/meson