I would support this change for a number of reasons, especially that it makes cross-compilation much easier.
For cross compilation, with LLVM_ENABLE_RUNTIMES you get a runtime built for each target you’ve asked for, meaning that you’d get a working flang cross-compiler without extra work. Flang works fine for cross compilation already in my experience but you have to build the flang runtimes for the extra targets manually rather than as an extra step.
One thing we should be aware of making this change though is that we aspire at some point to be able to build flang without also building clang. At the moment the flang-new driver is too intertwined with the clang code to be built separately but flang can be built without that driver with a cmake flag, and then does not require clang. If we only support building with LLVM_ENABLE_RUNTIMES then clang becomes a hard dependency for the flang runtimes which I think we should try and avoid. I.e. we should continue to support building the flang runtimes with the host compiler as well as with the just-built clang.
I would say that wrt sharing code, we should just have the new fortran_runtime project be a dependency for flang, and use the headers directly from fortran_runtime. I don’t see a reason we would need to duplicate things, and flang assumes you’re using its own runtime in a lot of places so I don’t see a need to avoid the dependency either. I might have missed something here though!