> Is there some hope to get some of the big set of patches merged > upstream? > > Some #ifdef __OpenBSD__ patches look like they could use a check for > the specific thing (at least xattrs, not sure if there are others) and > conditioning on that instead of OpenBSD/not.
I doubt much will be merged upstream. Many updates we have can technically run on other OSes (%gs stubs won't be built on Linux because %gs is correctly set, SIGUSR1 will work but less optimally, etc). However I picked an approach where everything that is done for OpenBSD is just marked as OpenBSD only. I did that purely to simplify my life while I was working on it and clearly mark the changes. When I was talking to Wine maintainers a month ago, they were hesitant to accept even patching Wine so it compiles for OpenBSD, mostly because it's another OS they will have to support and keep operational, while the %gs stub fix is something they definitely cannot take upstream. They are very hesitant to take anything that is changing the "emulated" application code. The xattr change was a recent addition from Fabien, I suspect mostly to support the Mono installer that creates a lot of symlinks for different framework versions. I guess it can be taken upstream with `#if !defined(HAVE_SYS_XATTR_H) && !defined(HAVE_SYS_EXTATTR_H)`, among other places (server/fd.c) that need this change. In short - merging upstream is not a current goal, at least for me. There are still some stability issues, especially with very demanding 3d games. I'll see where we stand in a few months. > I'm concerned about this. Really need some information about how to > generate these, ideally an automated method that can run from llvm/clang > source tarballs as part of the emulators/wine build so that wine doesn't > block every lang/clang update, but if not then at least something that > can run from a make target. I'll leave the details to Fabien/Thomas, but nothing is actually generated. The llvm package strips out clang's freestanding headers (float.h inttypes.h iso646.h limits.h stdarg.h stdbool.h stddef.h stdint.h) and we need them for Windows builds. They are copied unchanged from clang/lib/Headers at the llvmorg tag that matches MODCLANG_VERSION, so it can be automated. It does mean that we have to download ~150 MB distfile for those 8 header files though.
