4.6. Build Variables

Setting Host and Target

During the building of the cross-compile tools you will need to set a few variables that will be dependent on your particular needs. The first variable will be the triplet of the host machine, which will be put into the CLFS_HOST variable. To account for the possibility that the host and target are the same arch, as cross-compiling won't work when host and target are the same, part of the triplet needs to be changed slightly - in our case, we will change part of the triplet to "cross". Set CLFS_HOST using the following command:

export CLFS_HOST=$(echo ${MACHTYPE} | sed -e 's/-[^-]*/-cross/')

Now you will need to set the triplet for the target architecture. Set the target variable using the following command:

For a MIPS Little Endian Machine:

export CLFS_TARGET="mips64el-unknown-linux-gnu"

For a MIPS Big Endian Machine:

export CLFS_TARGET="mips64-unknown-linux-gnu"

Now set the target triplet for 32 bits:

export CLFS_TARGET32="$(echo ${CLFS_TARGET}| sed -e 's/64//g')"

We will need to setup target-specific flags for the compiler and linker:

export BUILD32="-mabi=32"
export BUILDN32="-mabi=n32"
export BUILD64="-mabi=64"

Copy settings to Environment

Now add the host and target variables, and compiler and linker flags, to ~/.bashrc, just in case you have to exit and restart building later:

cat >> ~/.bashrc << EOF
export CLFS_HOST="${CLFS_HOST}"
export CLFS_TARGET="${CLFS_TARGET}"
export CLFS_TARGET32="${CLFS_TARGET32}"
export BUILD32="${BUILD32}"
export BUILDN32="${BUILDN32}"
export BUILD64="${BUILD64}"
EOF