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 <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2010-11-28 15:11:08 +01:00
parent 0006f62633
commit d8a3ea4c1b
2 changed files with 51 additions and 36 deletions

28
config/optimize Normal file
View File

@ -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"

View File

@ -101,27 +101,7 @@ XORG_PATH_DRIVERS=/usr/lib/xorg/modules/drivers
TOOLCHAIN_LANGUAGES=c TOOLCHAIN_LANGUAGES=c
[ "$TOOLCHAIN_CXX" = yes ] && TOOLCHAIN_LANGUAGES=${TOOLCHAIN_LANGUAGES},c++ [ "$TOOLCHAIN_CXX" = yes ] && TOOLCHAIN_LANGUAGES=${TOOLCHAIN_LANGUAGES},c++
if [ "$OPTIMIZATIONS" = speed ];then . config/optimize
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
TARGET_CC=${TARGET_PREFIX}gcc TARGET_CC=${TARGET_PREFIX}gcc
TARGET_CXX=${TARGET_PREFIX}g++ TARGET_CXX=${TARGET_PREFIX}g++
@ -132,33 +112,37 @@ TARGET_NM=${TARGET_PREFIX}nm
TARGET_RANLIB=${TARGET_PREFIX}ranlib TARGET_RANLIB=${TARGET_PREFIX}ranlib
TARGET_OBJCOPY=${TARGET_PREFIX}objcopy TARGET_OBJCOPY=${TARGET_PREFIX}objcopy
TARGET_STRIP=${TARGET_PREFIX}strip TARGET_STRIP=${TARGET_PREFIX}strip
TARGET_CPPFLAGS= TARGET_CPPFLAGS=
TARGET_CFLAGS="$GCC_OPTIM -Wall -pipe" TARGET_CFLAGS="-Wall -pipe $GCC_OPTIM $PROJECT_CFLAGS"
TARGET_CXXFLAGS="$TARGET_CFLAGS" TARGET_CXXFLAGS="$TARGET_CFLAGS"
TARGET_LDFLAGS="" TARGET_LDFLAGS="$GCC_OPTIM $LD_OPTIM"
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"
case $TARGET_ARCH in case $TARGET_ARCH in
i386) i386)
TARGET_CFLAGS="$TARGET_CFLAGS -march=$TARGET_CPU -m32 -fexcess-precision=fast" TARGET_CFLAGS="$TARGET_CFLAGS -march=$TARGET_CPU -m32"
TARGET_CXXFLAGS="$TARGET_CXXFLAGS -march=$TARGET_CPU -m32 -fexcess-precision=fast" TARGET_CXXFLAGS="$TARGET_CXXFLAGS -march=$TARGET_CPU -m32"
TARGET_LDFLAGS="$TARGET_LDFLAGS -march=$TARGET_CPU -m32"
;; ;;
x86_64) x86_64)
TARGET_CFLAGS="$TARGET_CFLAGS -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 -fexcess-precision=fast" TARGET_CXXFLAGS="$TARGET_CXXFLAGS -fPIC -march=$TARGET_CPU -m64"
TARGET_LDFLAGS="$TARGET_LDFLAGS -fPIC -march=$TARGET_CPU -m64"
;; ;;
esac 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 if [ "$DEBUG" = yes ]; then
TARGET_CFLAGS="$TARGET_CFLAGS -ggdb" TARGET_CFLAGS="$TARGET_CFLAGS -ggdb"
TARGET_CXXFLAGS="$TARGET_CXXFLAGS -ggdb" TARGET_CXXFLAGS="$TARGET_CXXFLAGS -ggdb"
TARGET_LDFLAGS="$TARGET_LDFLAGS -ggdb" TARGET_LDFLAGS="$TARGET_LDFLAGS -ggdb"
else else
TARGET_CFLAGS="$TARGET_CFLAGS -flto -fomit-frame-pointer" TARGET_CFLAGS="$TARGET_CFLAGS-fomit-frame-pointer"
TARGET_CXXFLAGS="$TARGET_CXXFLAGS -flto -fomit-frame-pointer" TARGET_CXXFLAGS="$TARGET_CXXFLAGS -fomit-frame-pointer"
TARGET_LDFLAGS="$TARGET_LDFLAGS -s -fuse-linker-plugin -fuse-ld=gold -flto -Wl,--as-needed" TARGET_LDFLAGS="$TARGET_LDFLAGS -s"
fi fi
HOST_AWK=gawk HOST_AWK=gawk
@ -171,22 +155,25 @@ HOST_NM=nm
HOST_RANLIB=ranlib HOST_RANLIB=ranlib
HOST_OBJCOPY=objcopy HOST_OBJCOPY=objcopy
HOST_STRIP=strip HOST_STRIP=strip
HOST_CPPFLAGS="" HOST_CPPFLAGS=""
HOST_CFLAGS="-O2 -Wall -pipe -I$ROOT/$TOOLCHAIN/include" HOST_CFLAGS="-O2 -Wall -pipe -I$ROOT/$TOOLCHAIN/include"
HOST_CXXFLAGS="$HOST_CFLAGS" HOST_CXXFLAGS="$HOST_CFLAGS"
HOST_LDFLAGS="-Wl,-rpath,$ROOT/$TOOLCHAIN/lib -L$ROOT/$TOOLCHAIN/lib" 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 # use -fPIC when necessary
case "`uname -m`" in case "`uname -m`" in
x86_64|ppc64|arm|armeb|armel) x86_64|ppc64|arm|armeb|armel)
HOST_CFLAGS="$HOST_CFLAGS -fPIC" HOST_CFLAGS="$HOST_CFLAGS -fPIC"
HOST_CXXFLAGS="$HOST_CXXFLAGS -fPIC" HOST_CXXFLAGS="$HOST_CXXFLAGS -fPIC"
HOST_LDFLAGS="$HOST_LDFLAGS -fPIC"
;; ;;
esac 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 CCACHE_DIR=$ROOT/$BUILD/.ccache
export MAKEFLAGS=-j$CONCURRENCY_MAKE_LEVEL export MAKEFLAGS=-j$CONCURRENCY_MAKE_LEVEL
export PKG_CONFIG=$ROOT/$TOOLCHAIN/bin/pkg-config export PKG_CONFIG=$ROOT/$TOOLCHAIN/bin/pkg-config