On 4/29/15 1:08 PM, Charles Davis wrote:
I’m tempted to say that your fix will reduce the performance of the relays slightly (since we’re loading the XMM registers from memory instead of from registers), but then it occurred to me that since we loaded that chunk of memory recently anyway, it should be cached.
My other concern is that as(1) is basically in maintenance mode now that we have Clang. (That’s why we still have bugs in it like the issue with ‘movq’ from registers.) I think Apple at some point wants to kill it off—or at least make -q the default.
I imagine that the performance hit will not be a major problem. If it is important to preserve the current relay code in situations where the change is not necessary for compilation, I suppose it could be made conditional on gcc, or even on the version of as being used. I agree that Apple's old as is probably on its last legs, but it's still in use and at present it still seems to be the easiest route to building 64-bit wine on OS X. (Otherwise you need to use both GCC (for compilation) and Clang (for assembly), and also to modify the build to both use Clang as an assembler and make sure -gstabs+ is not present so that Clang's assembler won't choke on the unrecognized directives.)
All right. But even with AJ’s suggestion (using separate wine32/wine64 directories for our DLLs), libwine itself still needs to be built fat, because it’s installed directly to $(libdir). For now, I think I’ll submit my patch to configure.
I was able to follow the WoW64 instructions on the winehq wiki and build a 32/64 wine install by just a sudo make install on OS X. Wine's 32-bit stuff went in /usr/local/lib and the 64-bit stuff in /usr/local/lib64 (that latter dir had nothing but wine libs). In your prior post you attached a configure patch that checked for __builtin_ms_va_list support as well as adding -pagezero_size,0x1000 to LDEXECFLAGS. I've still only been using the last hunk of that patch - the pagezero stuff. I didn't see the configure patch come across wine-patches. If you're concerned the rest might not be accepted, maybe a patch with the pagezero stuff alone would make it now?
The prefix I created ran at least one 64-bit Windows application without apparent errors: I ran a 64-bit version of PilotEdit ( http://www.pilotedit.com/Download.html ). The other things I tried crashed, but at least the installation allowed for some testing.
Since I've gotten an OS X wine install that runs a 64-bit windows app without using a patched set of build tools, I guess I'll submit the movq patch and see whether that gets in. Maybe then it will be easier to tell how many 64-bit apps will actually run on OS X.