Re: Trouble compiling Winelib DLL for 64-bit on OpenSUSE
David Kahurani <[email protected]>
| Newsgroups | gmane.comp.emulators.wine.devel |
|---|---|
| Message-ID | <CAAZOf25mup32cE0By__EkPE1-4q+UdyD0pYgkLWTu7hKn3k9qw@mail.gmail.com> |
On Tue, Oct 15, 2024 at 11:43 PM Stefan Dösinger <[email protected]> wrote: > Hello Alexander, > > Am Dienstag, 15. Oktober 2024, 15:18:57 GMT+3 schrieb > [email protected]: > > I have previously asked about the problem I'm describing below on > openSUSE's > > forums [1], StackOverflow [2] and Wine's forums [3], where dimesio told > me > > that I could try to ask here. If this is the wrong place to ask, I > > apologise. > > The mailing ist is the right place to ask :-) > If you post as bug on bugzilla, someone might help :-) > > I'll try to answer some of your questions below, but I am not much of a > winelib expert and sadly winelib is getting relatively little love. In my > quick test building a 32 and 64 bit .dll.so worked, but I would not be > surprised if there are bugs. > > Wine itself has transitioned to a more formal (fake-)syscall and unix call > interface to switch between the Windows and the Linux side. I think there > are > no DLLs left in Wine any more that have the old hybrid PE and ELF linkage. > > > winegcc -m32 -L/usr/lib64/wine/i386-unix -shared -o myproject.dll > > myproject_main.c myproject.spec > > Does the 32 bit DLL link without the -L path? You shouldn't need it, > winegcc > and winebuild should know their installation path. > > > As I've discovered, openSUSE's wine-devel package does not provide any > > archive files in /usr/lib64/wine/x86_64-unix, whereas wine-devel-32bit > does > > provide archive files under /usr/lib/wine/i386-unix (symlinked with the > > same directory in /usr/lib64). > > It is quite likely a bug on openSUSE's side. They probably didn't even > test > winegcc with the wine-devel packages, as it is a pretty rare case that > someone > needs it. > > I think your best choice would be to build wine from source and install it > to > a custom prefix in your home directory. Hopefully the wine-devel packages > pull > in the right headers etc to make it easy to do. > > e.g. in pseudo code: > > ./configure --enable-win64 --prefix=~/mywine > make && make install # no need for sudo. add -j X for faster build > export PATH=~/mywine/bin:$PATH > > Now you should run winegcc from ~/mywine/bin/winegcc, and it has the 64 > bit .a > files in ~/mywine/lib/wine/x86_64-unix. > > Any .dll.so generated that way should run with your system wide wine > installation, so you should be able to copy it to other machines etc. If > in > doubt check out the oldest Wine version you want your binaries to run on. > > >