Convert 32 bit to 64 bit program, is it possible
My question here is that before installing the multilib libraries, how does a 32 bit program differ from a 64 bit. For instance, and here I am showing my ignorance, but surely if I download a program source, shouldn't the resultant binary following compiling and building be a result of the platform it is built on, or does the source code include references to whether it is a 32 or 64 bit program.
Only asking as I have just gone to Slack13_x64, and was hoping that wine might build as a 64bit program.
Or, am I stuck with having to install the multilib libs?
A 32 bit program doesn't usually differ intentionally from a 64 bit one, but there are subtle ways in which code can make assumptions about the platform it is on.
There are assumptions about the size of values in structures, about the storage size of arrays of pointers, the ranges of some of the types, unsafe type conversions, alignment of structure members, just to mention a few things that can cause problems. There are ways to make these things portable, but C programmers have become quite used to 32 bits being the standard word size, so we have been slack at times.
My understanding is that the 64 bit version of Wine is still not in a stable state.
If you need wine, you should install multi-lib, as a 64-bit wine version has little use (you probably use wine to run 32-bit Windows programs).
There are some other reasons to go multi-lib, like GoogleEarth or Skype, both only available on 32-bits.
Most other (open) software simply will compile and run fine on 64-bits Slackware.
Disclaimer: I am not a multi-lib user but a "pure" 64-bit user. But I had all these doubts some time ago when I switched to Slackware64.
If wine were an emulator then you could probably compile it as a 64bit program and let it run the 32bit windows executables in its emulated environment. But as the Wine guys say "Wine Is Not an Emulator". The wine run-time is linked directly to the 32bit windows executables at run-time and therefore also needs to be 32bit.
My understanding of this stuff is basic to say the least, but I think that's the general gist of it.
|All times are GMT -5. The time now is 01:17 AM.|