Welcome to Eric Hameleers (Alien BOB)'s Wiki pages.

If you want to support my work, please consider a small donation:

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

slackware:multilib [2013/11/09 00:32]
alien Updated for Slackware 14.1.
slackware:multilib [2014/04/05 14:51] (current)
alien [Compiling 32-bit programs] Fix the 32-bit compilation instructions for modern Slackware.
Line 43: Line 43:
 # mkdir multilib # mkdir multilib
 # cd multilib # cd multilib
-# lftp -c "open http://taper.alienbase.nl/mirrors/people/alien/multilib/ ; mirror ${SLACKVER}"+# lftp -c "open http://taper.alienbase.nl/mirrors/people/alien/multilib/ ; mirror -c -e ${SLACKVER}"
 # cd ${SLACKVER} # cd ${SLACKVER}
 </code> </code>
Line 243: Line 243:
 ===== Compiling 32-bit programs ===== ===== Compiling 32-bit programs =====
  
-In case you need to compile a 32-bit program (wine and grub are two examples of open source programs that are 32-bit only) you first configure your shell environment by running the command: <code> +In case you need to compile a 32-bit program (wine and grub are two examples of open source programs that are 32-bit only) you first configure root's shell environment by running the command: <code> 
-. /etc/profile.d/32dev.sh +. /etc/profile.d/32dev.sh 
-</code> Note the 'dot' in front of the filename - that is actually part of the commandline!  Running this command changes or creates several environment variables.  The effect of this is, that 32-bit versions of binaries are preferred over 64bit binaries when you compile source code - you will be running a 32bit compilation.  The effect will last until you logout from your shell.+</code> Note the 'dot' at the beginning of the line - that is actually part of the commandline! The use of the dot is equivalent to the 'source' command. \\ Running this command changes or creates several environment variables.  The effect of this is, that 32-bit versions of binaries are preferred over 64bit binaries when you compile source code - you will be running a 32bit compilation.  The effect will last until you logout from your root shell.
  
-In this changed environment, you will be able to use standard SlackBuilds to build 32-bit packages for Slackware64.  There are two things to keep in mind: +In this changed environment, you will be able to use standard SlackBuilds to build 32-bit packages for Slackware64.  There's a couple of things to keep in mind: 
-  - You will have to define the ARCH variable as 'x86_64' even though you are compiling a 32-bit program! \\ This is related to the //triplet// of "$ARCH-slackware-linux" which is normally used in the "configure" command. Alsotry setting the ARCH to for instance "i486and you will see that the //CFLAGS// definition for that architecture will result in gcc errors like "//compiler can not create executables//". This is related to the design of SlackBuild script. Rather than editing the script and change/remove //CFLAGS// definitions, you can set the ARCH to "x86_64" and save yourself some time. The real work is being done by the 32dev.sh script+  - You have to define the ARCH variable as 'i486because even on your 'x86_64' computer you are compiling a 32-bit program! \\ This is related to the //triplet// of "$ARCH-slackware-linux" which is normally used in the "configure" command. 
-  - You will have to edit the SlackBuild if it wants to use 'lib64/directories for "$ARCH = x86_64". You have to force it to use 'lib/' directories instead.  Usually, this is accomplished by finding a definition like: <code> +    - As an exceptionyou will have to compile the "winepackage with 'ARCH=x86_64' because you will install this package directly on your multilib computer without converting to a 'compat32' package
-      LIBDIRSUFFIX="64" +  - If you want to install this 32-bit package on Slackware64-multilib you will have to convert it to 'compat32package\\ <code> 
-</code> and changing this line to <code> +# convertpkg-compat32 -i /path/to/your/fresh/foo-VERSION-i486-BUILD.tgz 
-      LIBDIRSUFFIX=""+# upgradepkg --install-new /tmp/foo-compat32-VERSION-x86_64-BUILDcompat32.txz
 </code> </code>
- 
- 
 ===== Caveats ===== ===== Caveats =====
  
Line 453: Line 451:
  
 Eric Eric
 +

Personal Tools
sponsoring