Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Building boost with different gcc version

Tags:

gcc

build

boost

I have access to server where I need to build boost 1.46. How can I force bootstrap.sh to use /usr/bin/gcc-4.4. By default it uses /usr/bin/gcc and I can't figure out how to change this

like image 452
Sergej Andrejev Avatar asked Mar 17 '11 23:03

Sergej Andrejev


3 Answers

I cross built Boost for an ARM toolchain using something like this:

echo "using gcc : arm-unknown-linux-gnueabi : /usr/local/arm/bin/g++ ; " >> tools/build/v2/user-config.jam

You should be able to do something like this:

boost version 1.59 and above:

echo "using gcc : 4.4 : /usr/bin/g++-4.4 ; " >> tools/build/src/user-config.jam

boost version 1.58 and below:

echo "using gcc : 4.4 : /usr/bin/g++-4.4 ; " >> tools/build/v2/user-config.jam

and then build with

bjam --toolset=gcc-4.4
like image 97
Sean Avatar answered Nov 11 '22 04:11

Sean


With the most recent version of Boost 1.71 works the below way:

>export CC=<path to custom gcc>/gcc
>export CXX=<path to custom gcc>/g++
>./bootstrap.sh
>./b2 --toolset=gcc stage threading=multi link=shared

You could check the gcc version used for build with bellow command

>ldd b2
    linux-vdso.so.1 =>  (0x00007ffcaa5f4000)
    libstdc++.so.6 => <path to custom gcc>/lib64/libstdc++.so.6 (0x00002b85ab701000)
    libm.so.6 => /lib64/libm.so.6 (0x00002b85abaaa000)
    libgcc_s.so.1 => <path to custom gcc>/lib64/libgcc_s.so.1 (0x00002b85abdac000)
    libc.so.6 => /lib64/libc.so.6 (0x00002b85abfc3000)
    /lib64/ld-linux-x86-64.so.2 (0x00002b85ab4dd000)

or in bin.v2/project-cache.jam file

like image 4
N0dGrand87 Avatar answered Nov 11 '22 03:11

N0dGrand87


Update for Boost 1.59

Now you need to do this:

echo "using gcc : : /usr/bin/g++44 ; " >> tools/build/src/user-config.jam
like image 3
Carlos Cordoba Avatar answered Nov 11 '22 03:11

Carlos Cordoba