(BTW, apologies for the Firewall/CSI thing in my previous message's "From:" line - they've been mucking about with our external mail server, and it messed something up - Hope people didn't get bounces if they tried replying directly - hopefully it'll be fixed for this message.)
Alexandre Julliard wrote:
No, pretty much everything that can be done in C already is, the rest really needs to be in assembly. It's a perfect opportunity to learn PA-RISC assembly <g>
I was afraid you'd say that -- 'cause I know as soon as I'm done the HP-UX port, I'm going to be asked to do an AIX port. Oh well - maybe I can piggyback off some of the MacOS stuff...
I don't suppose there's any documentation around anywhere talking about exactly what the assembly code in winebuild is trying to accomplish, and why it can't be done in C? I'm afraid that my assembly is rough enough that I haven't been able to figure out what all of the import/export set up code is trying to do.
Taking a description of what it's supposed to do, and then learning enough pa-risc assembly to do it will certainly be faster than reverse-engineering the assembly that's there and then trying to implement it for the pa-risc.
Here's a brief summary of where I am: after making a few changes to various Makefile.in files to fix places where .so was used instead of $(LIBEXT), and fixing winegcc so that .so wasn't hardcoded in it either (patches will be forthcoming this aft), I'm at the point where the vast majority of the .c files compile (about 1470 - my linux build has 1596 .o files in it) - but nothing outside of libs/loader links, because of winebuild... So my next goal is really to get winebuild working...
I guess I'll be cracking the pa-risc assembly language manual open soon... :-)
Warren
Warren_Baird/CSI@cimmetry.com writes:
I don't suppose there's any documentation around anywhere talking about exactly what the assembly code in winebuild is trying to accomplish, and why it can't be done in C? I'm afraid that my assembly is rough enough that I haven't been able to figure out what all of the import/export set up code is trying to do.
Well, it's basically function calls, either an indirect jump through an import table entry, or a call to the delay load function with proper registers setup. Of course the devil is in the details... I'm afraid you may have to be volunteered for writing the documentation too ;-)