You are not logged in.

#1 2013-07-12 10:21:46

Blµb
Administrator
Registered: 2013-01-24
Posts: 57

ArchBSD goes [multilib] (including wine on ArchBSD-64)

I've been quite busy the last few days setting up our [multilib] repository. Which mostly meant getting the -m32 compile option to work (and for gcc: setup a specs file so it actually accepts this option...).
In order for multilib to work a few changes had to be made to the freebsd-world and freebsd-lib32 packages:
The /usr/include/machine headers have been moved to /usr/include/machine/64 and the 32 bit versions have been added to the 32/ directory.
/usr/include/machine now contains wrapper headers which include the ones from 64/ or 32/ depending on whether -m32 was used or not.
The libstdc++ library has been removed from freebsd-lib32, and lib32-devel now provides a newer one. This means we also have C++11 support with g++ -m32.

The rest was just packaging, packaging, and packaging.
Our [multilib] repository now has 80 fine packages, and of course freebsd-lib32 which covers a whole set of base packages like bzip2 and zlib.

And the best part: wine's running too - and you do not need a 32bit chroot for it.

So here are some screenshots of what I've been up to:
Star Craft II - HOTS: (Game runs, I'm having some issues with the launcher/updater though, but that's not too uncommon with wine)
multilib-wine-0.jpg
Warsow: (Yes I know it also runs native but it's good to take wine out for a spin anyway)
multilib-wine-2.jpg

Packaging for [multilib]:
-) Replace the gcc-multilib dependency with lib32-devel
-) Replace glibc, zlib, bz2, ... (the default world ones) with: freebsd-lib32
-) strip -fstack-protector from CFLAGS/CPPFLAGS/CXXFLAGS
-) build
(Almost all the multilib PKGBUILDs have been based on the ArchLinux ones with the usual modifications (such as replacing install -D), and the above mentioned CFLAGS change.)

wine:
The current package only includes the 32 bit wine. Up to now I didn't care much about the 64 bit part but I'm confident it'll build just fine once I get around to recompiling the beast wink
Don't forget that you probably want lib32-nvidia-utils installed.

Offline

Board footer

Powered by FluxBB