![]() |
Problem building fst on a multilib system
Im using Slackware 14.0 64 bit, and I installed the multilib packages from Alien Bob, following his guide. It seems to work fine because I could build both 32 bit wine and 32 bit jack-audio-connection-kit without any problems. However when I try to build the package fst from slackbuilds.org I run into trouble.
This is the error message I get: Code:
winegcc -mwindows -o fst audiomaster.o fst.o fstinfofile.o gtk.o jfst.o fpsparser.o vstwin.o -L/usr/lib32 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgiCode:
>>>grep libjack /var/log/packages/jack-audio-connection-kit-compat32-0.121.3-x86_64-1_SBocompat32 |
It looks like you didn't edit the slackbuild and change the line that has
LIBDIRSUFFIX="64" to LIBDIRSUFFIX="" Don't forget to run ". /etc/profile.d/32dev.sh" (including the dot) first. |
Thanks, I actually did edit the slackbuild like you explained. Here's what I did:
Code:
>. /etc/profile.d/32dev.shadded this line: Code:
ARCH=x86_64Code:
elif [ "$ARCH" = "x86_64" ]; thenCode:
Slackware package /tmp/jack-audio-connection-kit-0.121.3-x86_64-1_SBo.tgz createdCode:
>sudo convertpkg-compat32 -i /tmp/jack-audio-connection-kit-0.121.3-x86_64-1_SBo.tgzCode:
>sudo installpkg /tmp/jack-audio-connection-kit-compat32-0.121.3-x86_64-1_SBocompat32.txz |
If a 32bit application needs some other 32bit dep to build that is not in standard slackware, and then not in the compat32 packages distributed by Alien, general path to follow is to install its x86_64 version and the corrisponding compat32 package together.
This is more or less how I do it: I have three of them that I use this way here, OpenAL, jack and lua (I use the first two for wine and the other for etlegacy): for each of them I built a 32bit package on a slackware 32bit virtual machine (I don't usually build 32bit packages on multilib) that I after converted on the target system in a compat32 package on the target system with multilib with Code:
convertpkg-compat32 -i my32bitpackage.txzThen, to build wine, I source /etc/profile.d/32dev.sh and I use ARCH=x86_64: the resulting binary is 32bit Code:
$ file /usr/bin/wine |
Quote:
I suspect that each time you ran sudo you lost the environment that was setup by . /etc/profile.d/32dev.sh so that although it used /usr/lib instead of /usr/lib64 it still generated a 64-bit package. Run su - and THEN run . /etc/profile.d/32dev.sh and it should generate a 32-bit library. (Don't forget that dot at the beginning is important). |
Quote:
Just to test it out, I made both 32-bit and 64-bit versions of jack-audio-connection-kit and it worked: Code:
~# ls /var/log/packages/jack* |
Thanks psionl0, you where right, changing user to root and then sourcing /etc/profile.d/32dev.sh and running the slackbuild fixed the problem.
Just out of curiosity, does anyone know the purpose of setting ARCH to x86_64? I tried setting it to i686 and that also worked in this case. |
It looks like problem [SOLVED] ;). Alien Bob is smarter than me so if he says, set ARCH to x86_64 then I set ARCH to x86_64.
BTW the only time I use sudo is when I select a menu item or click on a WBAR icon that needs root privileges to run (eg "shutdown"). From the terminal, I almost always use su. |
Hello,
Quote:
Quote:
-- SeB |
| All times are GMT -5. The time now is 12:23 AM. |