LTO/Graphite/OpenMP rules updated.

This commit is contained in:
Kolan Sh 2013-10-26 15:49:32 +04:00
parent bd7042764d
commit 1d340243f0
2 changed files with 113 additions and 107 deletions

View File

@ -2,15 +2,6 @@ CFLAGS="-O2 -pipe -march=native"
CXXFLAGS="${CFLAGS}" CXXFLAGS="${CFLAGS}"
LDFLAGS="-Wl,-O1 -Wl,--as-needed" LDFLAGS="-Wl,-O1 -Wl,--as-needed"
#### LTO/Graphite/OpenMP ####
TMP_GRAPHITE="-floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block"
TMP_COMMON_CLDFLAGS="-flto=4 ${TMP_GRAPHITE} -ftree-vectorize -fopenmp -floop-parallelize-all"
CFLAGS="${CFLAGS} ${TMP_COMMON_CLDFLAGS}"
CXXFLAGS="${CFLAGS}"
LDFLAGS="${LDFLAGS} ${TMP_COMMON_CLDFLAGS}"
USE="${USE} graphite"
#############################
CHOST="x86_64-pc-linux-gnu" CHOST="x86_64-pc-linux-gnu"
CBUILD="x86_64-pc-linux-gnu" CBUILD="x86_64-pc-linux-gnu"
MAKEOPTS="-j2" MAKEOPTS="-j2"
@ -33,7 +24,7 @@ PORTAGE_ELOG_CLASSES="warn error log"
PORTAGE_ELOG_SYSTEM="save" PORTAGE_ELOG_SYSTEM="save"
# cpu # cpu
USE="${USE} custom-cflags" USE="${USE} custom-cflags graphite"
# gpu # gpu
USE="${USE} directfb dri dri2 fbcon fbcondecor fbosd opengl opencl vaapi" USE="${USE} directfb dri dri2 fbcon fbcondecor fbosd opengl opencl vaapi"

View File

@ -1,112 +1,127 @@
# no-lto # no-lto
if [[ true = false if [[ true != false
|| ${CATEGORY}/${PN} = sys-apps/sandbox && ${CATEGORY}/${PN} != sys-apps/sandbox
|| ${CATEGORY}/${PN} = sys-apps/sysvinit && ${CATEGORY}/${PN} != sys-apps/sysvinit
|| ${CATEGORY}/${PN} = dev-lang/perl && ${CATEGORY}/${PN} != dev-lang/perl
|| ${CATEGORY}/${PN} = sys-apps/gawk && ${CATEGORY}/${PN} != sys-apps/gawk
|| ${CATEGORY}/${PN} = sys-apps/coreutils && ${CATEGORY}/${PN} != sys-apps/coreutils
|| ${CATEGORY}/${PN} = dev-libs/elfutils && ${CATEGORY}/${PN} != dev-libs/elfutils
|| ${CATEGORY}/${PN} = sys-apps/shadow && ${CATEGORY}/${PN} != sys-apps/shadow
|| ${CATEGORY}/${PN} = dev-lang/python && ${CATEGORY}/${PN} != dev-lang/python
|| ${CATEGORY}/${PN} = dev-libs/glib && ${CATEGORY}/${PN} != dev-libs/glib
|| ${CATEGORY}/${PN} = sys-fs/e2fsprogs && ${CATEGORY}/${PN} != sys-fs/e2fsprogs
|| ${CATEGORY}/${PN} = net-misc/openssh && ${CATEGORY}/${PN} != net-misc/openssh
|| ${CATEGORY}/${PN} = sys-apps/hdparm && ${CATEGORY}/${PN} != sys-apps/hdparm
|| ${CATEGORY}/${PN} = sys-apps/hwinfo && ${CATEGORY}/${PN} != sys-apps/hwinfo
|| ${CATEGORY}/${PN} = media-libs/alsa-lib && ${CATEGORY}/${PN} != media-libs/alsa-lib
|| ${CATEGORY}/${PN} = dev-util/valgrind && ${CATEGORY}/${PN} != dev-util/valgrind
|| ${CATEGORY}/${PN} = sys-fs/mtools && ${CATEGORY}/${PN} != sys-fs/mtools
|| ${CATEGORY}/${PN} = dev-libs/boost && ${CATEGORY}/${PN} != dev-libs/boost
|| ${CATEGORY}/${PN} = app-text/rarian && ${CATEGORY}/${PN} != app-text/rarian
|| ${CATEGORY}/${PN} = net-analyzer/nmap && ${CATEGORY}/${PN} != net-analyzer/nmap
|| ${CATEGORY}/${PN} = sys-apps/pciutils && ${CATEGORY}/${PN} != sys-apps/pciutils
|| ${CATEGORY}/${PN} = sys-devel/distcc && ${CATEGORY}/${PN} != sys-devel/distcc
|| ${CATEGORY}/${PN} = media-libs/libcdr && ${CATEGORY}/${PN} != media-libs/libcdr
|| ${CATEGORY}/${PN} = media-libs/libvisio && ${CATEGORY}/${PN} != media-libs/libvisio
|| ${CATEGORY}/${PN} = sys-devel/llvm && ${CATEGORY}/${PN} != sys-devel/llvm
|| ${CATEGORY}/${PN} = app-admin/sudo && ${CATEGORY}/${PN} != app-admin/sudo
|| ${CATEGORY}/${PN} = x11-base/xorg-server && ${CATEGORY}/${PN} != x11-base/xorg-server
|| ${CATEGORY}/${PN} = sys-power/upower && ${CATEGORY}/${PN} != sys-power/upower
|| ${CATEGORY}/${PN} = dev-qt/qtdeclarative && ${CATEGORY}/${PN} != dev-qt/qtdeclarative
|| ${CATEGORY}/${PN} = media-libs/mesa && ${CATEGORY}/${PN} != media-libs/mesa
|| ${CATEGORY}/${PN}/${PV} = dev-lang/spidermonkey-1.8.5 && ${CATEGORY}/${PN}/${PV} != dev-lang/spidermonkey-1.8.5
|| ${CATEGORY}/${PN} = games-action/minetest && ${CATEGORY}/${PN} != games-action/minetest
|| ${CATEGORY}/${PN} = app-emulation/wine && ${CATEGORY}/${PN} != app-emulation/wine
|| ${CATEGORY}/${PN} = app-emulation/virtualbox && ${CATEGORY}/${PN} != app-emulation/virtualbox
|| ${CATEGORY}/${PN} = media-video/ffmpeg && ${CATEGORY}/${PN} != media-video/ffmpeg
|| ${CATEGORY}/${PN} = x11-libs/wxGTK && ${CATEGORY}/${PN} != x11-libs/wxGTK
|| ${CATEGORY}/${PN} = www-client/firefox && ${CATEGORY}/${PN} != www-client/firefox
|| ${CATEGORY}/${PN} = mail-client/thunderbird && ${CATEGORY}/${PN} != mail-client/thunderbird
|| ${CATEGORY}/${PN} = dev-tex/luatex && ${CATEGORY}/${PN} != dev-tex/luatex
|| ${CATEGORY}/${PN} = dev-python/notify-python && ${CATEGORY}/${PN} != dev-python/notify-python
|| ${CATEGORY}/${PN} = media-plugins/audacious-plugins && ${CATEGORY}/${PN} != media-plugins/audacious-plugins
|| ${CATEGORY}/${PN} = media-video/avidemux && ${CATEGORY}/${PN} != media-video/avidemux
|| ${CATEGORY}/${PN} = media-video/mplayer2 && ${CATEGORY}/${PN} != media-video/mplayer2
|| ${CATEGORY}/${PN} = media-libs/avidemux-plugins && ${CATEGORY}/${PN} != media-libs/avidemux-plugins
|| ${CATEGORY}/${PN} = net-p2p/eiskaltdcpp && ${CATEGORY}/${PN} != net-p2p/eiskaltdcpp
|| ${CATEGORY}/${PN} = dev-qt/qtwebkit && ${CATEGORY}/${PN} != dev-qt/qtwebkit
|| ${CATEGORY}/${PN} = net-libs/webkit-gtk && ${CATEGORY}/${PN} != net-libs/webkit-gtk
|| ${CATEGORY}/${PN} = media-libs/avidemux-core && ${CATEGORY}/${PN} != media-libs/avidemux-core
|| ${CATEGORY}/${PN} = dev-libs/libaio # Required by Qemu && ${CATEGORY}/${PN} != dev-libs/libaio # Required by Qemu
|| ${CATEGORY}/${PN} = dev-games/simgear && ${CATEGORY}/${PN} != dev-games/simgear
|| ${CATEGORY}/${PN} = dev-qt/qtgui && ${CATEGORY}/${PN} != dev-qt/qtgui
]] ; then ]] ; then
CFLAGS="${CFLAGS} -fno-lto -fno-use-linker-plugin" tmp="-flto=4"
CXXFLAGS="${CXXFLAGS} -fno-lto -fno-use-linker-plugin" CFLAGS="${CFLAGS} ${tmp}"
LDFLAGS="${LDFLAGS} -fno-lto -fno-use-linker-plugin" CXXFLAGS="${CXXFLAGS} ${tmp}"
LDFLAGS="${LDFLAGS} ${tmp}"
fi fi
# No parallelize-loops-all # No parallelize-loops-all
if [[ true = false if [[ true != false
|| ${CATEGORY}/${PN} = dev-lang/perl && ${CATEGORY}/${PN} != dev-lang/perl
|| ${CATEGORY}/${PN} = sys-apps/gawk # Internal error when emerging hyphen && ${CATEGORY}/${PN} != sys-apps/gawk # Internal error when emerging hyphen
|| ${CATEGORY}/${PN} = app-shells/bash && ${CATEGORY}/${PN} != app-shells/bash
|| ${CATEGORY}/${PN} = sys-apps/groff && ${CATEGORY}/${PN} != sys-apps/groff
|| ${CATEGORY}/${PN} = media-libs/libogg && ${CATEGORY}/${PN} != media-libs/libogg
|| ${CATEGORY}/${PN} = dev-libs/openssl && ${CATEGORY}/${PN} != dev-libs/openssl
|| ${CATEGORY}/${PN} = sys-libs/ncurses && ${CATEGORY}/${PN} != sys-libs/ncurses
|| ${CATEGORY}/${PN} = dev-libs/expat && ${CATEGORY}/${PN} != dev-libs/expat
|| ${CATEGORY}/${PN} = media-video/dirac && ${CATEGORY}/${PN} != media-video/dirac
|| ${CATEGORY}/${PN} = dev-games/openscenegraph && ${CATEGORY}/${PN} != dev-games/openscenegraph
|| ${CATEGORY}/${PN} = dev-vcs/subversion && ${CATEGORY}/${PN} != dev-vcs/subversion
|| ${CATEGORY}/${PN} = media-video/ffmpeg && ${CATEGORY}/${PN} != media-video/ffmpeg
|| ${CATEGORY}/${PN} = media-video/mjpegtools && ${CATEGORY}/${PN} != media-video/mjpegtools
|| ${CATEGORY}/${PN} = media-libs/gegl && ${CATEGORY}/${PN} != media-libs/gegl
|| ${CATEGORY}/${PN} = media-gfx/graphviz && ${CATEGORY}/${PN} != media-gfx/graphviz
|| ${CATEGORY}/${PN} = media-sound/audacious && ${CATEGORY}/${PN} != media-sound/audacious
|| ${CATEGORY}/${PN} = app-text/texlive-core && ${CATEGORY}/${PN} != app-text/texlive-core
|| ${CATEGORY}/${PN} = media-video/mplayer2 && ${CATEGORY}/${PN} != media-video/mplayer2
|| ${CATEGORY}/${PN} = media-video/vlc && ${CATEGORY}/${PN} != media-video/vlc
|| ${CATEGORY}/${PN} = media-libs/avidemux-core && ${CATEGORY}/${PN} != media-libs/avidemux-core
|| ${CATEGORY}/${PN} = games-fps/nexuiz && ${CATEGORY}/${PN} != games-fps/nexuiz
|| ${CATEGORY}/${PN} = sys-apps/dbus && ${CATEGORY}/${PN} != sys-apps/dbus
|| ${CATEGORY}/${PN} = dev-qt/qtgui && ${CATEGORY}/${PN} != dev-qt/qtgui
|| ${CATEGORY}/${PN} = media-gfx/inkscape && ${CATEGORY}/${PN} != media-gfx/inkscape
|| ${CATEGORY}/${PN} = dev-libs/glib # epiphany hangs (GObject) && ${CATEGORY}/${PN} != dev-libs/glib # epiphany hangs (GObject)
|| ${CATEGORY}/${PN} = www-client/firefox && ${CATEGORY}/${PN} != www-client/firefox
]] ; then ]] ; then
CFLAGS="${CFLAGS} -fno-loop-parallelize-all" tmp="-floop-parallelize-all"
CXXFLAGS="${CXXFLAGS} -fno-loop-parallelize-all" CFLAGS="${CFLAGS} ${tmp}"
LDFLAGS="${LDFLAGS} -fno-loop-parallelize-all" CXXFLAGS="${CXXFLAGS} ${tmp}"
LDFLAGS="${LDFLAGS} ${tmp}"
fi fi
# No OpenMP # No OpenMP
if [[ true = false if [[ true != false
|| ${CATEGORY}/${PN} = sys-apps/busybox && ${CATEGORY}/${PN} != sys-apps/busybox
|| ${CATEGORY}/${PN} = media-libs/mesa && ${CATEGORY}/${PN} != media-libs/mesa
|| ${CATEGORY}/${PN} = app-emulation/wine && ${CATEGORY}/${PN} != app-emulation/wine
|| ${CATEGORY}/${PN} = dev-db/sqlite # Required to emerge avidemux-core && ${CATEGORY}/${PN} != dev-db/sqlite # Required to emerge avidemux-core
]] ; then ]] ; then
CFLAGS="${CFLAGS} -fno-openmp" tmp="-fopenmp"
CXXFLAGS="${CFLAGS} -fno-openmp" CFLAGS="${CFLAGS} ${tmp}"
LDFLAGS="${LDFLAGS} -fno-openmp" CXXFLAGS="${CFLAGS} ${tmp}"
LDFLAGS="${LDFLAGS} ${tmp}"
fi fi
# no-graphite # no-graphite
if [[ true = false if [[ true != false
|| ${CATEGORY}/${PN} = undefined/undefined && ${CATEGORY}/${PN} != undefined/undefined
]] ; then ]] ; then
CFLAGS="${CFLAGS} -fno-loop-interchange -fno-tree-loop-distribution -fno-loop-strip-mine -fno-loop-block" tmp="-floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block"
CXXFLAGS="${CXXFLAGS} -fno-loop-interchange -fno-tree-loop-distribution -fno-loop-strip-mine -fno-loop-block" CFLAGS="${CFLAGS} ${tmp}"
LDFLAGS="${LDFLAGS} -fno-loop-interchange -fno-tree-loop-distribution -fno-loop-strip-mine -fno-loop-block" CXXFLAGS="${CXXFLAGS} ${tmp}"
LDFLAGS="${LDFLAGS} ${tmp}"
fi
# fno-tree-vectorize
if [[ true != false
&& ${CATEGORY}/${PN} != undefined/undefined
&& ${CATEGORY}/${PN} != www-client/firefox
]] ; then
tmp="-ftree-vectorize"
CFLAGS="${CFLAGS} ${tmp}"
CXXFLAGS="${CXXFLAGS} ${tmp}"
LDFLAGS="${LDFLAGS} ${tmp}"
fi fi