From d8a3ea4c1b9852051b285619a685c540ca9dcca6 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 28 Nov 2010 15:11:08 +0100 Subject: [PATCH] config/path: split *FLAGS optimization to an seperate file 'config/optimize', cleanup, add -fPIC to LDFLAGS (for host and target), thanks to Wintemrute Signed-off-by: Stephan Raue --- config/optimize | 28 +++++++++++++++++++++++ config/path | 59 +++++++++++++++++++------------------------------ 2 files changed, 51 insertions(+), 36 deletions(-) create mode 100644 config/optimize diff --git a/config/optimize b/config/optimize new file mode 100644 index 0000000000..206a7ef1d9 --- /dev/null +++ b/config/optimize @@ -0,0 +1,28 @@ +if [ "$OPTIMIZATIONS" = speed ];then + GCC_OPTIM="-O4" + LD_OPTIM="" +fi + +if [ "$OPTIMIZATIONS" = normal ];then + GCC_OPTIM="-O2" + LD_OPTIM="" +fi + +if [ "$OPTIMIZATIONS" = size ];then + GCC_OPTIM="-Os" + LD_OPTIM="" +fi + +GCC_OPTIM="$GCC_OPTIM -ffast-math" +GCC_OPTIM="$GCC_OPTIM -ftree-loop-distribution" +GCC_OPTIM="$GCC_OPTIM -floop-interchange" +GCC_OPTIM="$GCC_OPTIM -floop-strip-mine" +GCC_OPTIM="$GCC_OPTIM -floop-block" +GCC_OPTIM="$GCC_OPTIM -fgraphite-identity" +GCC_OPTIM="$GCC_OPTIM -fexcess-precision=fast" +GCC_OPTIM="$GCC_OPTIM -flto" + +LD_OPTIM="$LD_OPTIM -fuse-linker-plugin" +LD_OPTIM="$LD_OPTIM -fuse-ld=gold" +LD_OPTIM="$LD_OPTIM -Wl,--as-needed" + diff --git a/config/path b/config/path index 2998c38ef3..fd951c0f07 100644 --- a/config/path +++ b/config/path @@ -101,27 +101,7 @@ XORG_PATH_DRIVERS=/usr/lib/xorg/modules/drivers TOOLCHAIN_LANGUAGES=c [ "$TOOLCHAIN_CXX" = yes ] && TOOLCHAIN_LANGUAGES=${TOOLCHAIN_LANGUAGES},c++ -if [ "$OPTIMIZATIONS" = speed ];then - GCC_OPTIM="-O3 -ffast-math $PROJECT_CFLAGS" - GCC_OPTIM="$GCC_OPTIM -ftree-loop-distribution" - GCC_OPTIM="$GCC_OPTIM -floop-interchange" - GCC_OPTIM="$GCC_OPTIM -floop-strip-mine" - GCC_OPTIM="$GCC_OPTIM -floop-block" - GCC_OPTIM="$GCC_OPTIM -fgraphite-identity" -fi - -if [ "$OPTIMIZATIONS" = normal ];then - GCC_OPTIM="-O2 -ffast-math $PROJECT_CFLAGS" -fi - -if [ "$OPTIMIZATIONS" = size ];then - GCC_OPTIM="-Os -ffast-math $PROJECT_CFLAGS" - GCC_OPTIM="$GCC_OPTIM -ftree-loop-distribution" - GCC_OPTIM="$GCC_OPTIM -floop-interchange" - GCC_OPTIM="$GCC_OPTIM -floop-strip-mine" - GCC_OPTIM="$GCC_OPTIM -floop-block" - GCC_OPTIM="$GCC_OPTIM -fgraphite-identity" -fi +. config/optimize TARGET_CC=${TARGET_PREFIX}gcc TARGET_CXX=${TARGET_PREFIX}g++ @@ -132,33 +112,37 @@ TARGET_NM=${TARGET_PREFIX}nm TARGET_RANLIB=${TARGET_PREFIX}ranlib TARGET_OBJCOPY=${TARGET_PREFIX}objcopy TARGET_STRIP=${TARGET_PREFIX}strip + TARGET_CPPFLAGS= -TARGET_CFLAGS="$GCC_OPTIM -Wall -pipe" +TARGET_CFLAGS="-Wall -pipe $GCC_OPTIM $PROJECT_CFLAGS" TARGET_CXXFLAGS="$TARGET_CFLAGS" -TARGET_LDFLAGS="" -TARGET_PKG_CONFIG_PATH="" -TARGET_PKG_CONFIG_LIBDIR="$SYSROOT_PREFIX/usr/lib/pkgconfig:$SYSROOT_PREFIX/usr/share/pkgconfig" -TARGET_PKG_CONFIG_SYSROOT_DIR="$SYSROOT_PREFIX" +TARGET_LDFLAGS="$GCC_OPTIM $LD_OPTIM" case $TARGET_ARCH in i386) - TARGET_CFLAGS="$TARGET_CFLAGS -march=$TARGET_CPU -m32 -fexcess-precision=fast" - TARGET_CXXFLAGS="$TARGET_CXXFLAGS -march=$TARGET_CPU -m32 -fexcess-precision=fast" + TARGET_CFLAGS="$TARGET_CFLAGS -march=$TARGET_CPU -m32" + TARGET_CXXFLAGS="$TARGET_CXXFLAGS -march=$TARGET_CPU -m32" + TARGET_LDFLAGS="$TARGET_LDFLAGS -march=$TARGET_CPU -m32" ;; x86_64) - TARGET_CFLAGS="$TARGET_CFLAGS -fPIC -march=$TARGET_CPU -m64 -fexcess-precision=fast" - TARGET_CXXFLAGS="$TARGET_CXXFLAGS -fPIC -march=$TARGET_CPU -m64 -fexcess-precision=fast" + TARGET_CFLAGS="$TARGET_CFLAGS -fPIC -march=$TARGET_CPU -m64" + TARGET_CXXFLAGS="$TARGET_CXXFLAGS -fPIC -march=$TARGET_CPU -m64" + TARGET_LDFLAGS="$TARGET_LDFLAGS -fPIC -march=$TARGET_CPU -m64" ;; esac +TARGET_PKG_CONFIG_PATH="" +TARGET_PKG_CONFIG_LIBDIR="$SYSROOT_PREFIX/usr/lib/pkgconfig:$SYSROOT_PREFIX/usr/share/pkgconfig" +TARGET_PKG_CONFIG_SYSROOT_DIR="$SYSROOT_PREFIX" + if [ "$DEBUG" = yes ]; then TARGET_CFLAGS="$TARGET_CFLAGS -ggdb" TARGET_CXXFLAGS="$TARGET_CXXFLAGS -ggdb" TARGET_LDFLAGS="$TARGET_LDFLAGS -ggdb" else - TARGET_CFLAGS="$TARGET_CFLAGS -flto -fomit-frame-pointer" - TARGET_CXXFLAGS="$TARGET_CXXFLAGS -flto -fomit-frame-pointer" - TARGET_LDFLAGS="$TARGET_LDFLAGS -s -fuse-linker-plugin -fuse-ld=gold -flto -Wl,--as-needed" + TARGET_CFLAGS="$TARGET_CFLAGS-fomit-frame-pointer" + TARGET_CXXFLAGS="$TARGET_CXXFLAGS -fomit-frame-pointer" + TARGET_LDFLAGS="$TARGET_LDFLAGS -s" fi HOST_AWK=gawk @@ -171,22 +155,25 @@ HOST_NM=nm HOST_RANLIB=ranlib HOST_OBJCOPY=objcopy HOST_STRIP=strip + HOST_CPPFLAGS="" HOST_CFLAGS="-O2 -Wall -pipe -I$ROOT/$TOOLCHAIN/include" HOST_CXXFLAGS="$HOST_CFLAGS" HOST_LDFLAGS="-Wl,-rpath,$ROOT/$TOOLCHAIN/lib -L$ROOT/$TOOLCHAIN/lib" -HOST_PKG_CONFIG_PATH="" -HOST_PKG_CONFIG_LIBDIR="$ROOT/$TOOLCHAIN/lib/pkgconfig:$ROOT/$TOOLCHAIN/share/pkgconfig" -HOST_PKG_CONFIG_SYSROOT_DIR="" # use -fPIC when necessary case "`uname -m`" in x86_64|ppc64|arm|armeb|armel) HOST_CFLAGS="$HOST_CFLAGS -fPIC" HOST_CXXFLAGS="$HOST_CXXFLAGS -fPIC" + HOST_LDFLAGS="$HOST_LDFLAGS -fPIC" ;; esac +HOST_PKG_CONFIG_PATH="" +HOST_PKG_CONFIG_LIBDIR="$ROOT/$TOOLCHAIN/lib/pkgconfig:$ROOT/$TOOLCHAIN/share/pkgconfig" +HOST_PKG_CONFIG_SYSROOT_DIR="" + export CCACHE_DIR=$ROOT/$BUILD/.ccache export MAKEFLAGS=-j$CONCURRENCY_MAKE_LEVEL export PKG_CONFIG=$ROOT/$TOOLCHAIN/bin/pkg-config