This check-list tries to document the obvious, to reduce the time spent fixing toolchain related errors while cross compiling.

  1. Export the toolchain location to the PATH environment variable
  2. Set proper --sysroot for CFLAGS, CXXFLAGS and LDFLAGS
  3. Set proper PKG_CONFIG_SYSROOT_DIR, PKG_CONFIG_PATH and PKG_CONFIG_LIBDIR for pkg-config tool. This is important for build scripts which use pkg-config to determine the proper build flags.

Note: Use pkg-config >= 0.26 . There is bug with previous versions of pkg-config which ignores the PKG_CONFIG_SYSROOT_DIR value

A sample configuration

export __CB_TOOLCHAIN_DIR=/opt/cross-toolchain
export __CB_TOOLCHAIN_SYSROOT=${__CB_TOOLCHAIN_DIR}/sysroot
export PATH=${__CB_TOOLCHAIN_DIR}/bin:${PATH}
export PKG_CONFIG_SYSROOT_DIR=${__CB_TOOLCHAIN_SYSROOT}
export PKG_CONFIG_PATH=${PKG_CONFIG_SYSROOT_DIR}/usr/lib/pkgconfig
export PKG_CONFIG_LIBDIR=${PKG_CONFIG_SYSROOT_DIR}/usr/lib/pkgconfig
export CFLAGS+="--sysroot=${__CB_TOOLCHAIN_SYSROOT} "
export CXXFLAGS+="--sysroot=${__CB_TOOLCHAIN_SYSROOT} "
export LDFLAGS+="--sysroot=${__CB_TOOLCHAIN_SYSROOT} "
#export PKG_CONFIG_DEBUG_SPEW=true # this one is for debugging pkg-config

Note : Need to update the post on how to cross compile packages which use autoconf tools