summaryrefslogtreecommitdiffstats
path: root/development/gcc5/README
blob: 043d62efcf3caeca027ad50b2c10c030cadceb7c (plain)
This gcc5 package can be installed alongside Slackware's gcc-7 packages.
These version 7 compilers can sometimes be quite a bit more strict about
what they accept as valid code. As a consequence, you will regularly run
into compilation issues with software. Not just the software made with
the scripts on slackbuilds.org, but also some of the software in
the Slackware core distribution requires patches in order to get them
to compile.

Still having the gcc version 5 compilers can sometimes be a lifesaver.
Particulars of the gcc5 package:
- The gcc5 binaries were given a suffix '-5' to make them stand apart
  from Slackware's default compilers.
- The gcc5 package only contains the C, C++ and Java language compilers.
- One all-encompassing package is built by the SlackBuild script.
- Profile scripts are added to /etc/profile.d/. You can 'source'
  the profile script to prefer the gcc-5 compilers over gcc-7.
- On 64bit Slackware, the gcc5.SlackBuild will detect an existing gcc
  multilib compiler and will then build a multilib capable gcc5.
  If you run pure 64bit Slackware, then a pure 64bit gcc5 package is built.

How to use these gcc5 compilers instead of Slackware's default C and C++?
Simple:
In your console or terminal, you 'source' the provided profile script,
like this (a c-shell compatible script is available as well):

  source /etc/profile.d/gcc5.sh

The command 'source' is equivalent to the dot command ' . '.
The profile script will (re-)define the common variables that are used
by make and other programs to determine which binary to run as the compiler:

export CC=gcc-5
export CPP=cpp-5
export CXX=g++-5
export AR=gcc-ar-5
export NM=gcc-nm-5
export RANLIB=gcc-ranlib-5

Nothing else needs to be done after sourcing the profile script.
All you do next is run your compile job as usual in that same console.
Your program will be compiled with the binaries provided by the gcc5 package.

** WARNING:
** The temporary build location used by the script (defaulting here to /tmp/SBo)
** should *NOT* be a directory path a non-root user could create later...