SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
As you all probably know, the initial version of Slackware64 didn't support the gcc multilib option and thus compiling of 32-bit based applications was impossible out of the box.
I thought that I will end up with the chroot solution, but then I've spotted the Slackware64 changelog update (the 25th of May), which could save me from the chroot.
But again compiling wine with updated packages failed and there's still the '--disable-multilib' option specified when asking compiler:
Code:
gcc -m32 -v
So is it possible to compile wine with the latest slackware64 update?
You may need a few extra items. Run over to http://www.slamd64.com/download and in particular check out the slamd64/slackware64-current directory. There are a number of packages for the a, d, l, n, x series. From the readme:
Quote:
This directory contains the start of 32-bit compatibility packages for
Slackware64-current.
Tested with:
- Skype (dynamic build)
- RTCW: ET
- Wine (built withs script from builds.slamd64.com)
Slamd64's c/ set isn't quite right for this purpose; my goal with these
packages is to add 32-bit compatibility as unobtrusively as possible.
...
Just tried a compile after adding the compatibility libraries on Fred's site. I got the following error in the config.log created in the slackbuild build directory.
Quote:
gcc (GCC) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
configure:2734: $? = 0
configure:2741: gcc -v >&5
Reading specs from /usr/lib64/gcc/x86_64-slackware-linux/4.3.3/specs
Target: x86_64-slackware-linux
Configured with: ../gcc-4.3.3/configure --prefix=/usr --libdir=/usr/lib64 --enable-shared --enable-bootstrap --enable-languages=ada,c,c++,fortran,java,objc --enable-threads=posix --enable-checking=release --with-system-zlib --disable-libunwind-exceptions --enable-__cxa_atexit --enable-libssp --with-gnu-ld --verbose --disable-multilib --target=x86_64-slackware-linux --build=x86_64-slackware-linux --host=x86_64-slackware-linux
Thread model: posix
gcc version 4.3.3 (GCC)
configure:2745: $? = 0
configure:2752: gcc -V >&5
gcc: '-V' option must have argument
configure:2756: $? = 1
configure:2779: checking for C compiler default output file name
configure:2801: gcc -O2 -march=i486 -mtune=i686 conftest.c >&5
conftest.c:1: error: CPU you selected does not support x86-64 instruction set
configure:2805: $? = 1
configure:2843: result:
configure: failed program was:
| /* confdefs.h. */
| #define PACKAGE_NAME "Wine"
| #define PACKAGE_TARNAME "wine"
| #define PACKAGE_VERSION "1.1.20"
| #define PACKAGE_STRING "Wine 1.1.20"
| #define PACKAGE_BUGREPORT "wine-devel@winehq.org"
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:2849: error: in `/tmp/SBo/wine-1.1.20':
configure:2852: error: C compiler cannot create executables
See `config.log' for more details.
As you can see from the bold entries the slackbuild has been overruled by gcc. I specified --libdir=/usr/lib in the slackbuild, and i486 as the architecture, it also shows that it is not allowing multi-lib.
I would appreciate it if someone could suggest a way to overcome this.
Quote:
You still have to specify x86_64 (not i486) as the $ARCH, even though you are building 32bit binaries by adding "-m32" to gcc.
OK Eric I will try that as my next experiment.
WORKED
The new gcc and binutils used in conjunction with the compatibility libraries on Slamd's site, work with the wine.Slackbuild when x86_64 is used as the $ARCH. No other modification is required to the slackbuild.
You still have to specify x86_64 (not i486) as the $ARCH, even though you are building 32bit binaries by adding "-m32" to gcc.
Eric
No matter what I do, I can't get rid of this:
configure: error: C compiler cannot create executables
IT SEEMS I FINALLY DID GET RID OF IT. Read below:
All of these are set as well:
--build="x86_64-slackware-linux" --host="x86_64-slackware-linux" --target="x86_64-slackware-linux" CC="gcc -m64" CFLAGS="-march=x86_64 -fPIC"
I just found out that "-march=x86_64 -fPIC" is incorrect. It needs to be set here as x86-64
Once I changed that, I was able to finally run configure without further errors.
I just want anyone who reads this to see that multilib is still disabled:
And that's with the latest version of gcc (reinstalled just to make sure).
/pub/packages/slapt-get/./slackware64/d/gcc-4.3.3-x86_64-4.txz
Even with finally getting configure to run (after all of these failed attempts), it is still obvious here that the build won't be multilib. CORRECTION REQUIRED: --enable-multilib has to set in configure for every build.
That --disable-multilib has nothing to do with the fact that gcc would not "support" a multilib environment. It only means that the gcc build will not produce the 32bit compilers, only the 64bit compilers. There is a difference!
If you look at the gcc.SlackBuild which Fred Emmott published as part of his 32bit compatibility set for Slackware64 at ftp://anorien.warwick.ac.uk/slamd64/.../gcc-compat32/ you will see that he uses "--enable-multilib" which will result in the 32bit compilers being built. The extra binaries that get produced are the only effect from adding "--enable-multilib".
It was stated nowhere that slackware64 would be able to compile 32bit software out of the box. You will need to install additional packages.
but Fred has published it already with sources and slackbuilds on his site, the link of a mirror is over here
or you mean you would like to see it moved on slackbuilds.org?
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.