commit
526187a054
85 changed files with 62038 additions and 0 deletions
@ -0,0 +1,24 @@ |
|||
#!/usr/bin/env bash |
|||
|
|||
if [[ "${FEATURES}" == *ccache* && "${EBUILD_PHASE_FUNC}" == src_* ]] |
|||
then |
|||
if [[ "${CCACHE_DIR}" == "${EPREFIX}"/usr/ccache ]] |
|||
then |
|||
# Set the ccache dir to whatever CCACHE_DIR is + category + name of the package |
|||
export CCACHE_DIR="${EPREFIX}"/usr/ccache/${CATEGORY}/${PN} |
|||
mkdir -p "${CCACHE_DIR}" || die "Failed to create ccache directory" |
|||
# Copy ccache.conf if it is found in "old" CCACHE_DIR |
|||
if [ -f "${EPREFIX}"/usr/ccache/ccache.conf ] |
|||
then |
|||
cp "${EPREFIX}"/usr/ccache/ccache.conf /usr/ccache/"${CATEGORY}"/"${PN}"/ccache.conf || die "Failed to copy ccache config" |
|||
fi |
|||
fi |
|||
fi |
|||
|
|||
|
|||
# Verbose ebuild phase |
|||
|
|||
if [ -n "${EBUILD_PHASE}" ] && [ ! "${EBUILD_PHASE}" = "depend" ] |
|||
then |
|||
echo "[ $(date +%H:%M:%S) ] ${EBUILD_PHASE^^} for version ${PV} of ${PN} from ${CATEGORY}" |
|||
fi |
@ -0,0 +1,768 @@ |
|||
#!/bin/bash |
|||
# (C) Martin V\"ath <martin at mvath.de> |
|||
# SPDX-License-Identifier: GPL-2.0-only |
|||
|
|||
FLAG_FILTER_C_CXX=( |
|||
'-fall-intrinsics' |
|||
'-fbackslash' |
|||
'-fcray-pointer' |
|||
'-fd-lines-as-*' |
|||
'-fdec*' |
|||
'-fdefault-*' |
|||
'-fdollar-ok' |
|||
'-ffixed-*' |
|||
'-ffree-*' |
|||
'-fimplicit-none' |
|||
'-finteger-4-integer-8' |
|||
'-fmax-identifier-length*' |
|||
'-fmodule-private' |
|||
'-fno-range-check' |
|||
'-freal-*' |
|||
'-ftest-forall-temp' |
|||
'-std=f*' |
|||
'-std=gnu' |
|||
'-std=legacy' |
|||
) |
|||
|
|||
FLAG_FILTER_CXX_FORTRAN=( |
|||
'-std=c1*' |
|||
'-std=c8*' |
|||
'-std=c9*' |
|||
'-std=gnu1*' |
|||
'-std=gnu8*' |
|||
'-std=gnu9*' |
|||
'-std=iso*' |
|||
'-Wimplicit-function-declaration' |
|||
) |
|||
|
|||
FLAG_FILTER_C_FORTRAN=( |
|||
'-fabi-*' |
|||
'-faligned-new' |
|||
'-fcheck-new' |
|||
'-fconcepts' |
|||
'-fconstexpr-*' |
|||
'-fdeduce-init-list' |
|||
'-fext*' |
|||
'-ffor-scope' |
|||
'-ffriend-injection' |
|||
'-fms-extensions' |
|||
'-fnew-inheriting-ctors' |
|||
'-fnew-ttp-matching' |
|||
'-fno-access-control' |
|||
'-fno-elide-constructors' |
|||
'-fno-enforce-eh-specs' |
|||
'-fno-extern-tls-init' |
|||
'-fno-for-scope' |
|||
'-fno-gnu-keywords' |
|||
'-fno-implement-inlines' |
|||
'-fno-implicit-*' |
|||
'-fno-nonansi-builtins' |
|||
'-fno-operator-names' |
|||
'-fno-optional-diags' |
|||
'-fno-pretty-templates' |
|||
'-fno-rtti' |
|||
'-fno-threadsafe-statics' |
|||
'-fno-use-cxa-get-exception-ptr' |
|||
'-fno-weak' |
|||
'-fnothrow-opt' |
|||
'-fpermissive' |
|||
'-frepo' |
|||
'-fsized-deallocation' |
|||
'-fstrict-enums' |
|||
'-fstrong-eval-order' |
|||
'-ftemplate-*' |
|||
'-fuse-cxa-atexit' |
|||
'-fvisibility-*' |
|||
'-nostdinc++' |
|||
'-std=c++*' |
|||
'-std=gnu++*' |
|||
'-Wabi*' |
|||
'-Wctor-dtor-privacy' |
|||
'-Wdelete-non-virtual-dtor' |
|||
'-Weffc++' |
|||
'-Wliteral-suffix' |
|||
'-Wlto-type-mismatch' |
|||
'-Wmultiple-inheritance' |
|||
'-Wnamespaces' |
|||
'-Wno-narrowing' |
|||
'-Wno-non-template-friend' |
|||
'-Wno-pmf-conversions' |
|||
'-Wno-terminate' |
|||
'-Wnoexcept' |
|||
'-Wnon-virtual-dtor' |
|||
'-Wold-style-cast' |
|||
'-Woverloaded-virtual' |
|||
'-Wregister' |
|||
'-Wreorder' |
|||
'-Wsign-promo' |
|||
'-Wstrict-null-sentinel' |
|||
'-Wtemplates' |
|||
'-Wvirtual-inheritance' |
|||
) |
|||
|
|||
FLAG_FILTER_CFLAGS=( |
|||
) |
|||
|
|||
FLAG_FILTER_CXXFLAGS=( |
|||
) |
|||
|
|||
FLAG_FILTER_FORTRAN=( |
|||
'-ansi' |
|||
'-fallow-parameterless-variadic-functions' |
|||
'-fcilkplus' |
|||
'-fcond-mismatch' |
|||
'-fdirectives-only' |
|||
'-ffreestanding' |
|||
'-fgimple' |
|||
'-fgnu-tm' |
|||
'-fgnu89-inline' |
|||
'-fhosted' |
|||
'-flax-vector-conversions' |
|||
'-fms-extensions' |
|||
'-fno-asm' |
|||
'-fno-builtin*' |
|||
'-fno-signed-bitfields' |
|||
'-fno-unsigned-bitfields' |
|||
'-fpermitted-flt-eval-methods*' |
|||
'-fplan9-extensions' |
|||
'-fsigned-*' |
|||
'-fsso-struct*' |
|||
'-funsigned-*' |
|||
'-Wchkp' |
|||
'-Wclobbered' |
|||
'-Wformat*' |
|||
'-Wvolatile-register-var' |
|||
) |
|||
|
|||
FLAG_FILTER_FFLAGS=( |
|||
) |
|||
|
|||
FLAG_FILTER_FCFLAGS=( |
|||
) |
|||
|
|||
FLAG_FILTER_F77FLAGS=( |
|||
) |
|||
|
|||
FLAG_FILTER_NONGNU=( |
|||
'-fcf-protection*' |
|||
'-fdevirtualize-at-ltrans' |
|||
'-fdevirtualize-speculatively' |
|||
'-fdirectives-only' |
|||
'-ffat-lto-objects' |
|||
'-fgcse*' |
|||
'-fgraphite*' |
|||
'-finline-functions' |
|||
'-fipa-pta' |
|||
'-fira-loop-pressure' |
|||
'-fisolate-erroneous-paths-attribute' |
|||
'-fivopts' |
|||
'-flimit-function-alignment' |
|||
'-floop*' |
|||
'-flto=[0-9]*' |
|||
'-flto=auto' |
|||
'-flto=jobserver' |
|||
'-flto-partition=*' |
|||
'-flto-compression-level=*' |
|||
'-fmodulo*' |
|||
'-fno-enforce-eh-specs' |
|||
'-fno-ident' |
|||
'-fno-ipa-cp-clone' |
|||
'-fno-plt' # causes various runtime segfaults for clang:6 compiled code |
|||
'-fno-semantic-interposition' |
|||
'-fnothrow-opt' |
|||
'-fpredictive-commoning' |
|||
'-frename-registers' |
|||
'-freorder-functions' |
|||
'-frerun-cse-after-loop' |
|||
'-fsched*' |
|||
'-fsection-anchors' |
|||
'-fstack-clash-protection' |
|||
'-ftree*' |
|||
'-funsafe-loop*' |
|||
'-fuse-linker-plugin' |
|||
'-fvect-cost-model' |
|||
'-fweb' |
|||
'-fwhole-program' |
|||
'-malign-data*' |
|||
'-mfunction-return*' |
|||
'-mindirect-branch*' |
|||
'-mvectorize*' |
|||
'-Wl,-z,retpolineplt' # does not work, currently |
|||
) |
|||
|
|||
FLAG_FILTER_GNU=( |
|||
'-emit-llvm' |
|||
'-flto=full' |
|||
'-flto=thin' |
|||
'-flto-jobs=*' |
|||
'-fopenmp=*' |
|||
'-frewrite-includes' |
|||
'-fsanitize=cfi' |
|||
'-fsanitize=safe-stack' |
|||
'-mllvm' |
|||
'-mretpoline*' |
|||
'-polly*' |
|||
'-Wl,-z,retpolineplt' |
|||
) |
|||
|
|||
FlagEval() { |
|||
case $- in |
|||
*f*) eval "$*";; |
|||
*) set -f |
|||
eval "$*" |
|||
set +f;; |
|||
esac |
|||
} |
|||
|
|||
FlagNodupAdd() { |
|||
local addres addf addvar dups |
|||
dups=$1 |
|||
shift |
|||
addvar=$1 |
|||
shift |
|||
eval addres=\$$addvar |
|||
for addf |
|||
do case " $addres $dups " in |
|||
*[[:space:]]"$addf"[[:space:]]*) |
|||
continue;; |
|||
esac |
|||
addres=$addres${addres:+\ }$addf |
|||
done |
|||
eval $addvar=\$addres |
|||
} |
|||
|
|||
FlagAdd() { |
|||
FlagNodupAdd '' "$@" |
|||
} |
|||
|
|||
FlagSub() { |
|||
local subres subpat subf subvar sublist |
|||
subvar=$1 |
|||
shift |
|||
subres= |
|||
eval sublist=\$$subvar |
|||
for subf in $sublist |
|||
do for subpat |
|||
do [ -n "${subpat:++}" ] || continue |
|||
case $subf in |
|||
$subpat) |
|||
subf= |
|||
break;; |
|||
esac |
|||
done |
|||
[ -z "${subf:++}" ] || subres=$subres${subres:+\ }$subf |
|||
done |
|||
eval $subvar=\$subres |
|||
} |
|||
|
|||
FlagReplace() { |
|||
local repres repf repcurr repvar reppat |
|||
repvar=$1 |
|||
shift |
|||
eval repf=\$$repvar |
|||
reppat=$1 |
|||
shift |
|||
repres= |
|||
for repcurr in $repf |
|||
do case $repcurr in |
|||
$reppat) |
|||
$repfound && FlagAdd repres "$@" |
|||
continue;; |
|||
esac |
|||
repres=$repres${repres:+\ }$repcurr |
|||
done |
|||
eval $repvar=\$repres |
|||
} |
|||
|
|||
FlagSet() { |
|||
local setvar |
|||
setvar=$1 |
|||
shift |
|||
eval $setvar=\$* |
|||
} |
|||
|
|||
FlagAddCFlags() { |
|||
FlagAdd CFLAGS "$@" |
|||
FlagAdd CXXFLAGS "$@" |
|||
} |
|||
|
|||
FlagSubCFlags() { |
|||
FlagSub CFLAGS "$@" |
|||
FlagSub CXXFLAGS "$@" |
|||
FlagSub CPPFLAGS "$@" |
|||
FlagSub OPTCFLAGS "$@" |
|||
FlagSub OPTCXXFLAGS "$@" |
|||
FlagSub OPTCPPFLAGS "$@" |
|||
} |
|||
|
|||
FlagReplaceCFlags() { |
|||
FlagReplace CFLAGS "$@" |
|||
FlagReplace CXXFLAGS "$@" |
|||
FlagReplace CPPFLAGS "$@" |
|||
FlagSub OPTCFLAGS "$1" |
|||
FlagSub OPTCXXFLAGS "$1" |
|||
FlagSub OPTCPPFLAGS "$1" |
|||
} |
|||
|
|||
FlagSetCFlags() { |
|||
FlagSet CFLAGS "$@" |
|||
CXXFLAGS=$CFLAGS |
|||
CPPFLAGS= |
|||
OPTCFLAGS= |
|||
OPTCXXFLAGS= |
|||
OPTCPPFLAGS= |
|||
} |
|||
|
|||
FlagAddFFlags() { |
|||
FlagAdd FFLAGS "$@" |
|||
FlagAdd FCFLAGS "$@" |
|||
FlagAdd F77FLAGS "$@" |
|||
} |
|||
|
|||
FlagSubFFlags() { |
|||
FlagSub FFLAGS "$@" |
|||
FlagSub FCFLAGS "$@" |
|||
FlagSub F77FLAGS "$@" |
|||
} |
|||
|
|||
FlagReplaceFFlags() { |
|||
FlagReplace FFLAGS "$@" |
|||
FlagReplace FCFLAGS "$@" |
|||
FlagReplace F77FLAGS "$@" |
|||
} |
|||
|
|||
FlagSetFFlags() { |
|||
FlagSet FFLAGS "$@" |
|||
FlagSet FCFLAGS "$@" |
|||
FlagSet F77FLAGS "$@" |
|||
} |
|||
|
|||
FlagAddAllFlags() { |
|||
FlagAddCFlags "$@" |
|||
FlagAddFFlags "$@" |
|||
} |
|||
|
|||
FlagSubAllFlags() { |
|||
FlagSubCFlags "$@" |
|||
FlagSubFFlags "$@" |
|||
FlagSub LDFLAGS "$@" |
|||
FlagSub OPTLDFLAGS "$@" |
|||
} |
|||
|
|||
FlagReplaceAllFlags() { |
|||
FlagReplaceCFlags "$@" |
|||
FlagReplaceFFlags "$@" |
|||
FlagSub LDFLAGS "$1" |
|||
FlagSub OPTLDFLAGS "$1" |
|||
} |
|||
|
|||
FlagSetAllFlags() { |
|||
FlagSetCFlags "$@" |
|||
FlagSetFFlags "$@" |
|||
LDFLAGS= |
|||
OPTLDFLAGS= |
|||
} |
|||
|
|||
FlagAthlon() { |
|||
FlagSubCFlags '-march=*' |
|||
FlagAddCFlags '-march=athlon-4' |
|||
command -v x86_64-pc-linux-gnu-gcc32 >/dev/null 2>&1 && \ |
|||
export CC=x86_64-pc-linux-gnu-gcc32 |
|||
command -v x86_64-pc-linux-gnu-g++32 >/dev/null 2>&1 && \ |
|||
export CXX=x86_64-pc-linux-gnu-g++32 |
|||
} |
|||
|
|||
FlagExecute() { |
|||
local ex exy excurr |
|||
for excurr |
|||
do case $excurr in |
|||
'#'*) |
|||
return;; |
|||
'!'*) |
|||
[ "$HOSTTYPE" = 'i686' ] || continue |
|||
ex=${excurr#?};; |
|||
'~'*) |
|||
[ "$HOSTTYPE" = 'x86_64' ] || continue |
|||
ex=${excurr#?};; |
|||
*) |
|||
ex=$excurr;; |
|||
esac |
|||
case $ex in |
|||
/*/*) |
|||
ex=${ex%/} |
|||
ex=${ex#/} |
|||
FlagEval FlagReplaceAllFlags "${ex%%/*}" "${ex#*/}";; |
|||
'-'*) |
|||
FlagAddCFlags "$ex";; |
|||
'+flto*') |
|||
FlagSubAllFlags '-flto*' '-fuse-linker-plugin' '-emit-llvm';; |
|||
'+'*) |
|||
FlagSubAllFlags "-${ex#+}";; |
|||
'C*FLAGS-='*) |
|||
FlagEval FlagSubCFlags ${ex#*-=};; |
|||
'C*FLAGS+='*) |
|||
FlagEval FlagAddCFlags ${ex#*+=};; |
|||
'C*FLAGS='*) |
|||
FlagEval FlagSetCFlags "${ex#*=}";; |
|||
'C*FLAGS/=/'*/*) |
|||
ex=${ex%/} |
|||
ex=${ex#*/=/} |
|||
FlagEval FlagReplaceCFlags "${ex%%/*}" "${ex#*/}";; |
|||
'F*FLAGS-='*) |
|||
FlagEval FlagSubFFlags ${ex#*-=};; |
|||
'F*FLAGS+='*) |
|||
FlagEval FlagAddFFlags ${ex#*+=};; |
|||
'F*FLAGS='*) |
|||
FlagEval FlagSetFFlags "${ex#*=}";; |
|||
'F*FLAGS/=/'*/*) |
|||
ex=${ex%/} |
|||
ex=${ex#*/=/} |
|||
FlagEval FlagReplaceFFlags "${ex%%/*}" "${ex#*/}";; |
|||
'*FLAGS-='*) |
|||
FlagEval FlagSubAllFlags ${ex#*-=};; |
|||
'*FLAGS+='*) |
|||
FlagEval FlagAddAllFlags ${ex#*+=};; |
|||
'*FLAGS='*) |
|||
FlagEval FlagSetAllFlags "${ex#*=}";; |
|||
'*FLAGS/=/'*/*) |
|||
ex=${ex%/} |
|||
ex=${ex#*/=/} |
|||
FlagEval FlagReplaceAllFlags "${ex%%/*}" "${ex#*/}";; |
|||
'ATHLON32') |
|||
FlagAthlon;; |
|||
'NOC*OPT='*|'NOC*='*) |
|||
FlagEval FlagSet NOCOPT "${ex#*=}" |
|||
NOCXXOPT=$NOCOPT |
|||
NOCPPOPT=$NOCOPT;; |
|||
'NO*OPT='*) |
|||
FlagEval FlagSet NOCOPT "${ex#*=}" |
|||
NOCXXOPT=$NOCOPT |
|||
NOCPPOPT=$NOCOPT |
|||
NOLDOPT=$NOCOPT;; |
|||
'NOLD*='*) |
|||
FlagEval FlagSet NOLDOPT "${ex#*=}" |
|||
NOLDADD=$NOLDOPT;; |
|||
'NO*'*) |
|||
FlagEval FlagSet NOCOPT "${ex#*=}" |
|||
NOCXXOPT=$NOCOPT |
|||
NOCPPOPT=$NOCOPT |
|||
NOLDOPT=$NOCOPT |
|||
NOLDADD=$NOCOPT |
|||
NOFFLAGS=$NOCOPT |
|||
NOFCFLAGS=$NOCOPT |
|||
NOF77FLAGS=$NOCOPT;; |
|||
'SAFE') |
|||
NOCOPT=1 |
|||
NOCXXOPT=1 |
|||
NOCPPOPT=1 |
|||
NOLDOPT=1 |
|||
MESONDEDUP=1 |
|||
LDFLAGS= |
|||
CONFIG_SITE= |
|||
NOLAFILEREMOVE=1 |
|||
unset CMAKE_MAKEFILE_GENERATOR;; |
|||
*' '*'='*) |
|||
FlagEval "$ex";; |
|||
*'/=/'*'/'*) |
|||
ex=${ex%/} |
|||
exy=${ex#*/=/} |
|||
FlagEval FlagReplace "${ex%%/=/*}" "${exy%%/*}" "${exy#*/}";; |
|||
*'-='*) |
|||
FlagEval FlagSub "${ex%%-=*}" ${ex#*-=};; |
|||
*'+='*) |
|||
FlagEval FlagAdd "${ex%%+=*}" ${ex#*+=};; |
|||
*'='*) |
|||
FlagEval FlagSet "${ex%%=*}" "${ex#*=}";; |
|||
*) |
|||
FlagEval "$ex";; |
|||
esac |
|||
done |
|||
} |
|||
|
|||
FlagMask() { |
|||
if command -v masked-packages >/dev/null 2>&1 |
|||
then |
|||
FlagMask() { |
|||
masked-packages -qm "$1" -- "$CATEGORY/$PF:${SLOT:-0}${PORTAGE_REPO_NAME:+::}${PORTAGE_REPO_NAME-}" |
|||
} |
|||
else |
|||
FlagMask() { |
|||
local add= |
|||
case ${1%::*} in |
|||
*':'*) |
|||
add=:${SLOT:-0};; |
|||
esac |
|||
case $1 in |
|||
*'::'*) |
|||
add=$add::$PORTAGE_REPO_NAME;; |
|||
esac |
|||
case $1 in |
|||
'~'*) |
|||
case "~$CATEGORY/$PN-$PV$add" in |
|||
$1) |
|||
return;; |
|||
esac;; |
|||
'='*) |
|||
case "=$CATEGORY/$PF$add" in |
|||
$1) |
|||
return;; |
|||
esac;; |
|||
*) |
|||
case "$CATEGORY/$PN$add" in |
|||
$1) |
|||
return;; |
|||
esac;; |
|||
esac |
|||
return 1 |
|||
} |
|||
fi |
|||
FlagMask "$@" |
|||
} |
|||
|
|||
FlagParseLine() { |
|||
local scanp scanl scansaveifs |
|||
scanl=$2 |
|||
while : |
|||
do case $scanl in |
|||
[[:space:]]*) |
|||
scanl=${scanl#?} |
|||
continue;; |
|||
'#'*) |
|||
return;; |
|||
*[[:space:]]*) |
|||
break;; |
|||
esac |
|||
return |
|||
done |
|||
scanp=${scanl%%[[:space:]]*} |
|||
scanl=${scanl#*[[:space:]]} |
|||
[ -n "${scanl:++}" ] || return 0 |
|||
FlagMask "$scanp" || return 0 |
|||
scansaveifs=$IFS |
|||
IFS=$1 |
|||
BashrcdEcho "$scanfile -> $scanp: $scanl" |
|||
FlagEval FlagExecute $scanl |
|||
IFS=$scansaveifs |
|||
} |
|||
|
|||
FlagScanFiles() { |
|||
local scanfile scanl oldifs scanifs |
|||
scanifs=$IFS |
|||
IFS= |
|||
for scanfile |
|||
do [ -z "${scanfile:++}" ] && continue |
|||
test -r "$scanfile" || continue |
|||
while read -r scanl |
|||
do FlagParseLine "$scanifs" "$scanl" |
|||
done <"$scanfile" |
|||
done |
|||
IFS=$scanifs |
|||
} |
|||
|
|||
FlagScanDir() { |
|||
local scantmp scanifs scanfile |
|||
scanifs=$IFS |
|||
if test -d "$1" |
|||
then IFS=' |
|||
' |
|||
for scantmp in `find -L "$1" \ |
|||
'(' '(' -name '.*' -o -name '*~' ')' -prune ')' -o \ |
|||
-type f -print` |
|||
do IFS=$scanifs |
|||
FlagScanFiles "$scantmp" |
|||
done |
|||
else FlagScanFiles "$1" |
|||
fi |
|||
scanfile='FLAG_ADDLINES' |
|||
IFS=' |
|||
' |
|||
for scantmp in $FLAG_ADDLINES |
|||
do FlagParseLine "$scanifs" "$scantmp" |
|||
done |
|||
IFS=$scanifs |
|||
} |
|||
|
|||
FlagSetUseNonGNU() { |
|||
case $CC$CXX in |
|||
*clang*) |
|||
return 0;; |
|||
esac |
|||
return 1 |
|||
} |
|||
|
|||
FlagSetNonGNU() { |
|||
: ${NOLDADD:=1} |
|||
FlagSubAllFlags "${FLAG_FILTER_NONGNU[@]}" |
|||
FlagReplaceAllFlags '-fstack-check*' '-fstack-check' |
|||
# FlagAddCFlags '-flto' '-emit-llvm' |
|||
} |
|||
|
|||
FlagSetGNU() { |
|||
FlagSubAllFlags "${FLAG_FILTER_GNU[@]}" |
|||
} |
|||
|
|||
FlagMesonDedup() { |
|||
local newld= |
|||
FlagNodupAdd "$CFLAGS $CXXFLAGS $CPPFLAGS $FFLAGS $FCFLAGS $F77FLAGS" \ |
|||
newld $LDFLAGS |
|||
LDFLAGS=$newld |
|||
} |
|||
|
|||
FlagSetFlags() { |
|||
local ld i |
|||
ld= |
|||
: ${PGO_PARENT:=/var/cache/pgo} |
|||
: ${PGO_DIR:=$PGO_PARENT/$CATEGORY:$P} |
|||
FlagScanDir "${PORTAGE_CONFIGROOT%/}/etc/portage/package.cflags" |
|||
[ -z "${USE_NONGNU++}" ] && FlagSetUseNonGNU && USE_NONGNU=1 |
|||
if BashrcdTrue "${USE_NONGNU-}" |
|||
then FlagSetNonGNU |
|||
else FlagSetGNU |
|||
fi |
|||
if [ -n "$FLAG_ADD" ] |
|||
then BashrcdEcho "FLAG_ADD: $FLAG_ADD" |
|||
FlagEval FlagExecute "$FLAG_ADD" |
|||
fi |
|||
PGO_DIR=${PGO_DIR%/} |
|||
case ${PGO_DIR:-/} in |
|||
/) |
|||
error 'PGO_DIR must not be empty' |
|||
false;; |
|||
/*) |
|||
:;; |
|||
*) |
|||
error 'PGO_DIR must be an absolute path' |
|||
false;; |
|||
esac || { |
|||
die 'Bad PGO_DIR' |
|||
exit 2 |
|||
} |
|||
use_pgo=false |
|||
if test -r "$PGO_DIR" |
|||
then unset PGO |
|||
BashrcdTrue $NOPGO || use_pgo=: |
|||
fi |
|||
if BashrcdTrue $PGO |
|||
then FlagAddCFlags "-fprofile-generate=$PGO_DIR" \ |
|||
-fvpt -fprofile-arcs |
|||
FlagAdd LDFLAGS -fprofile-arcs |
|||
addpredict "$PGO_PARENT" |
|||
elif $use_pgo |
|||
then FlagAddCFlags "-fprofile-use=$PGO_DIR" \ |
|||
-fvpt -fbranch-probabilities -fprofile-correction |
|||
else : ${KEEPPGO:=:} |
|||
fi |
|||
BashrcdTrue $NOLDOPT || FlagAdd LDFLAGS $OPTLDFLAGS |
|||
BashrcdTrue $NOCADD || BashrcdTrue $MESONDEDUP || \ |
|||
case " $LDFLAGS $CFLAGS $CXXFLAGS" in |
|||
*[[:space:]]'-flto'*) |
|||
ld="$CFLAGS $CXXFLAGS";; |
|||
esac |
|||
BashrcdTrue $NOLDADD || BashrcdTrue $MESONDEDUP || FlagAddCFlags $LDFLAGS |
|||
FlagAdd LDFLAGS $ld |
|||
BashrcdTrue $NOCOPT || FlagAdd CFLAGS $OPTCFLAGS |
|||
BashrcdTrue $NOCXXOPT || FlagAdd CXXFLAGS $OPTCXXFLAGS |
|||
BashrcdTrue $NOCPPOPT || FlagAdd CPPFLAGS $OPTCPPFLAGS |
|||
BashrcdTrue $NOFFLAGS || FFLAGS=$CFLAGS |
|||
BashrcdTrue $NOFCFLAGS || FCFLAGS=$FFLAGS |
|||
BashrcdTrue $NOF77FLAGS || F77FLAGS=$FFLAGS |
|||
BashrcdTrue $NOFILTER_CXXFLAGS || FlagSub CXXFLAGS \ |
|||
"${FLAG_FILTER_C_CXX[@]}" "${FLAG_FILTER_CXX_FORTRAN[@]}" \ |
|||
"${FLAG_FILTER_CXXFLAGS[@]}" |
|||
BashrcdTrue $NOFILTER_CFLAGS || FlagSub CFLAGS \ |
|||
"${FLAG_FILTER_C_CXX[@]}" "${FLAG_FILTER_C_FORTRAN[@]}" \ |
|||
"${FLAG_FILTER_CFLAGS[@]}" |
|||
BashrcdTrue $NOFILTER_FFLAGS || FlagSub FFLAGS \ |
|||
"${FLAG_FILTER_C_FORTRAN[@]}" "${FLAG_FILTER_CXX_FORTRAN[@]}" \ |
|||
"${FLAG_FILTER_FORTRAN[@]}" "${FLAG_FILTER_FFLAGS[@]}" |
|||
BashrcdTrue $NOFILTER_FCFLAGS || FlagSub FCFLAGS \ |
|||
"${FLAG_FILTER_C_FORTRAN[@]}" "${FLAG_FILTER_CXX_FORTRAN[@]}" \ |
|||
"${FLAG_FILTER_FORTRAN[@]}" "${FLAG_FILTER_FCFLAGS[@]}" |
|||
BashrcdTrue $NOFILTER_F77FLAGS || FlagSub FCFLAGS \ |
|||
"${FLAG_FILTER_C_FORTRAN[@]}" "${FLAG_FILTER_CXX_FORTRAN[@]}" \ |
|||
"${FLAG_FILTER_FORTRAN[@]}" "${FLAG_FILTER_F77LAGS[@]}" |
|||
! BashrcdTrue $MESONDEDUP || FlagMesonDedup |
|||
unset OPTCFLAGS OPTCXXFLAGS OPTCPPFLAGS OPTLDFLAGS |
|||
unset NOLDOPT NOLDADD NOCOPT NOCXXOPT NOFFLAGS NOFCFLAGS NOF77FLAGS |
|||
unset NOFILTER_CXXFLAGS NOFILTER_CFLAGS |
|||
unset NOFILTER_FFLAGS NOFILTER_FCFLAGS NOFILTER_F77FLAGS |
|||
} |
|||
|
|||
FlagInfoExport() { |
|||
local out |
|||
for out in FEATURES CFLAGS CXXFLAGS CPPFLAGS FFLAGS FCFLAGS F77FLAGS \ |
|||
LDFLAGS MAKEOPTS EXTRA_ECONF EXTRA_EMAKE USE_NONGNU |
|||
do eval "if [ -n \"\${$out:++}\" ] |
|||
then export $out |
|||
BashrcdEcho \"$out='\$$out'\" |
|||
else unset $out |
|||
fi" |
|||
done |
|||
if BashrcdTrue $PGO |
|||
then BashrcdEcho "Create PGO into $PGO_DIR" |
|||
elif $use_pgo |
|||
then BashrcdEcho "Using PGO from $PGO_DIR" |
|||
fi |
|||
out=`${CC:-gcc} --version | head -n 1` || out= |
|||
BashrcdEcho "${out:-cannot determine gcc version}" |
|||
out=`${CXX:-g++} --version | head -n 1` || out= |
|||
BashrcdEcho "${out:-cannot determine g++ version}" |
|||
out=`${LD:-ld} --version | head -n 1` || out= |
|||
BashrcdEcho "${out:-cannot determine ld version}" |
|||
BashrcdEcho "`uname -a`" |
|||
} |
|||
|
|||
FlagCompile() { |
|||
eerror \ |
|||
"${PORTAGE_CONFIGROOT%/}/etc/portage/bashrc.d/*flag.sh strange order of EBUILD_PHASE:" |
|||
die "compile or preinst before setup" |
|||
exit 2 |
|||
} |
|||
|
|||
FlagPreinst() { |
|||
FlagCompile |
|||
} |
|||
|
|||
FlagSetup() { |
|||
FlagCompile() { |
|||
: |
|||
} |
|||
local use_pgo |
|||
FlagSetFlags |
|||
if BashrcdTrue $PGO |
|||
then |
|||
FlagPreinst() { |
|||
test -d "$PGO_DIR" || mkdir -p -m +1777 -- "$PGO_DIR" || { |
|||
eerror "cannot create pgo directory $PGO_DIR" |
|||
die 'cannot create PGO_DIR' |
|||
exit 2 |
|||
} |
|||
ewarn "$CATEGORY/$PN will write profile info to world-writable" |
|||
ewarn "$PGO_DIR" |
|||
ewarn 'Reemerge it soon for an optimized version and removal of that directory' |
|||
} |
|||
elif BashrcdTrue $KEEPPGO |
|||
then |
|||
FlagPreinst() { |
|||
: |
|||
} |
|||
else |
|||
FlagPreinst() { |
|||
test -d "$PGO_DIR" || return 0 |
|||
BashrcdLog "removing pgo directory $PGO_DIR" |
|||
rm -r -f -- "$PGO_DIR" || { |
|||
eerror "cannot remove pgo directory $PGO_DIR" |
|||
die 'cannot remove PGO_DIR' |
|||
exit 2 |
|||
} |
|||
local g |
|||
g=${PGO_DIR%/*} |
|||
[ -z "$g" ] || rmdir -p -- "$g" >/dev/null 2>&1 |
|||
} |
|||
fi |
|||
FlagInfoExport |
|||
} |
|||
|
|||
BashrcdPhase compile FlagCompile |
|||
BashrcdPhase preinst FlagPreinst |
|||
BashrcdPhase setup FlagSetup |
@ -0,0 +1,47 @@ |
|||
#!/bin/bash |
|||
# (C) Martin V\"ath <martin at mvath.de> |
|||
# SPDX-License-Identifier: GPL-2.0-only |
|||
|
|||
QlopSetup() { |
|||
local num sec hour min date |
|||
! BashrcdTrue "${NOQLOP-}" && command -v qlop >/dev/null 2>&1 || return 0 |
|||
qlop -amH -- "$CATEGORY/$PN" |
|||
qlop -tmH -- "$CATEGORY/$PN" |
|||
command -v title >/dev/null 2>&1 || return 0 |
|||
num=$(tail -n1 /var/log/emerge.log | \ |
|||
sed -e 's/^.*(\([0-9]*\) of \([0-9]*\)).*$/\1|\2/') \ |
|||
&& [ -n "$num" ] || { |
|||
date=$(date +%T) |
|||
title "emerge $date $PN" |
|||
return |
|||
} |
|||
case ${QLOPCOUNT:-1} in |
|||
*[!0123456789]*) |
|||
sec=$(qlop -ACMm -- "$CATEGORY/$PN" | awk \ |
|||
'/[[:space:]][0123456789]+$/{a=$NF} |
|||
END{if(a!=""){print a}}');; |
|||
[123456789]*) |
|||
sec=$(qlop -tCMm -- "$CATEGORY/$PN" | \ |
|||
awk -v 'i=0' -v 'm=0' -v "n=${QLOPCOUNT:-3}" \ |
|||
'/[[:space:]][0123456789]+$/{a[i++]=$NF;if(i>m){m=i};if(i>=n){i=0}} |
|||
END{s=0;for(i=m;i>0;){s+=a[--i]};if(m>0){print int(s/m+1/2)}}');; |
|||
*) |
|||
false;; |
|||
esac && [ -n "$sec" ] || { |
|||
date=$(date +%T) |
|||
title "emerge $date $num $PN" |
|||
return |
|||
} |
|||
hour=$(( $sec / 3600 )) |
|||
[ "$hour" -gt 0 ] || hour= |
|||
hour=$hour${hour:+:} |
|||
sec=$(( $sec % 3600 )) |
|||
min=$(( $sec / 60 )) |
|||
sec=$(( $sec % 60 )) |
|||
[ "$min" -gt 9 ] || min=0$min |
|||
[ "$sec" -gt 9 ] || sec=0$sec |
|||
date=$(date +%T) |
|||
title "emerge $date $num $PN $hour$min:$sec" |
|||
} |
|||
|
|||
BashrcdPhase setup QlopSetup |
@ -0,0 +1 @@ |
|||
/var/db/repos/lto-overlay/sys-config/ltoize/files/bashrc.d/41-lto-patch.sh |
@ -0,0 +1 @@ |
|||
/var/db/repos/lto-overlay/sys-config/ltoize/files/bashrc.d/43-lto-no-common.sh |
@ -0,0 +1,42 @@ |
|||
#!/bin/bash |
|||
# (C) Martin V\"ath <martin at mvath.de> |
|||
# SPDX-License-Identifier: GPL-2.0-only |
|||
|
|||
# Portage explicitly unsets all CCACHE_* variables in each phase. |
|||
# Therefore, we save them to BASHRCD_CCACHE_* in the setup phase; |
|||
# in all later phases, we restore CCACHE_* from these variables |
|||
CcacheSetup() { |
|||
local i |
|||
: ${CCACHE_BASEDIR=${PORTAGE_TMPDIR:-/var/tmp}/portage} |
|||
: ${CCACHE_SLOPPINESS='file_macro,time_macros,include_file_mtime,include_file_ctime,file_stat_matches,pch_defines'} |
|||
: ${CCACHE_COMPRESS=true} |
|||
if BashrcdTrue $USE_NONGNU && BashrcdTrue $CCACHE_CPP2_OPTIONAL |
|||
then : ${CCACHE_CPP2=true} |
|||
fi |
|||
# Default to NOHASHDIR unless contrary is specified |
|||
BashrcdTrue "${CCACHE_HASHDIR-}" || CCACHE_NOHASHDIR=true |
|||
for i in ${!CCACHE_*} |
|||
do if eval "BashrcdTrue \$$i" |
|||
then eval BASHRCD_$i=\$$i |
|||
export $i |
|||
else unset $i |
|||
fi |
|||
done |
|||
CcacheRestore() { |
|||
local i j |
|||
unset ${!CCACHE_*} |
|||
for i in ${!BASHRCD_CCACHE_*} |
|||
do j=${i##BASHRCD_} |
|||
eval $j=\$$i |
|||
export $j |
|||
done |
|||
} |
|||
} |
|||
|
|||
CcacheRestore() { |
|||
: |
|||
} |
|||
|
|||
# Register CcacheRestore before CcacheSetup to save time in setup phase |
|||
BashrcdPhase all CcacheRestore |
|||
BashrcdPhase setup CcacheSetup |
@ -0,0 +1,412 @@ |
|||
#!/bin/bash |
|||
# (C) Martin V\"ath <martin at mvath.de> |
|||
# SPDX-License-Identifier: GPL-2.0-only |
|||
|
|||
ALL_LOCALES=" |
|||
aa |
|||
af |
|||
af_ZA |
|||
am |
|||
am_ET |
|||
ang |
|||
ar |
|||
ar_AE |
|||
ar_BH |
|||
ar_DZ |
|||
ar_EG |
|||
ar_IN |
|||
ar_IQ |
|||
ar_JO |
|||
ar_KW |
|||
ar_LB |
|||
ar_LY |
|||
ar_MA |
|||
ar_OM |
|||
ar_QA |
|||
ar_SA |
|||
ar_SD |
|||
ar_SY |
|||
ar_TN |
|||
ar_YE |
|||
as |
|||
ast |
|||
az |
|||
az_AZ |
|||
az_IR |
|||
be |
|||
be@latin |
|||
be_BY |
|||
bg |
|||
bg_BG |
|||
bn |
|||
bn_IN |
|||
br |
|||
br_FR |
|||
bs |
|||
bs_BA |
|||
byn |
|||
ca |
|||
ca@valencia |
|||
ca_ES |
|||
ca_ES@euro |
|||
ca_ES@valencia |
|||
chs |
|||
cht |
|||
crh |
|||
cs |
|||
cs_CZ |
|||
cy |
|||
cy_GB |
|||
cz |
|||
da |
|||
da_DK |
|||
de |
|||
de_AT |
|||
de_AT@euro |
|||
de_BE |
|||
de_BE@euro |
|||
de_CH |
|||
de_DE |
|||
de_DE.UTF-8 |
|||
de_DE@euro |
|||
de_LU |
|||
de_LU@euro |
|||
dk |
|||
dv |
|||
dz |
|||
el |
|||
el_GR |
|||
el_GR.UTF-8 |
|||
el_GR@euro |
|||
en |
|||
en@IPA |
|||
en@boldquot |
|||
en@quot |
|||
en@shaw |
|||
en_AU |
|||
en_BW |
|||
en_CA |
|||
en_DK |
|||
en_GB |
|||
en_GB.UTF-8 |
|||
en_HK |
|||
en_IE |
|||
en_IE@euro |
|||
en_IN |
|||
en_NZ |
|||
en_PH |
|||
en_RN |
|||
en_SG |
|||
en_UK |
|||
en_US |
|||
en_US.UTF-8 |
|||
en_ZA |
|||
en_ZW |
|||
eo |
|||
eo_EO |
|||
es |
|||
es_AR |
|||
es_BO |
|||
es_CL |
|||
es_CO |
|||
es_CR |
|||
es_DO |
|||
es_EC |
|||
es_ES |
|||
es_ES.UTF-8 |
|||
es_ES@euro |
|||
es_GT |
|||
es_HN |
|||
es_MX |
|||
es_NI |
|||
es_PA |
|||
es_PE |
|||
es_PR |
|||
es_PY |
|||
es_SV |
|||
es_US |
|||
es_UY |
|||
es_VE |
|||
et |
|||
et_EE |
|||
eu |
|||
eu_ES |
|||
eu_ES@euro |
|||
fa |
|||
fa_IR |
|||
fa_IR.UTF-8 |
|||
fi |
|||
fi_FI |
|||
fi_FI@euro |
|||
fo |
|||
fo_FO |
|||
fr |
|||
fr_BE |
|||
fr_BE@euro |
|||
fr_CA |
|||
fr_CH |
|||
fr_FR |
|||
fr_FR.UTF-8 |
|||
fr_FR@euro |
|||
fr_LU |
|||
fr_LU@euro |
|||
fur |
|||
fy |
|||
ga |
|||
ga_IE |
|||
ga_IE@euro |
|||
gd |
|||
gd_GB |
|||
gez |
|||
gl |
|||
gl_ES |
|||
gl_ES@euro |
|||
gr |
|||
gu |
|||
gv |
|||
gv_GB |
|||
haw |
|||
he |
|||
he_IL |
|||
hi |
|||
hi_IN |
|||
hi_IN.UTF-8 |
|||
hr |
|||
hr_HR |
|||
hu |
|||
hu_HU |
|||
hy |
|||
hy_AM |
|||
ia |
|||
id |
|||
id_ID |
|||
is |
|||
is_IS |
|||
it |
|||
it_CH |
|||
it_IT |
|||
it_IT@euro |
|||
iu |
|||
iw |
|||
iw_IL |
|||
ja |
|||
ja_JP |
|||
ja_JP.EUC |
|||
ja_JP.EUC-JP |
|||
ja_JP.UTF-8 |
|||
ja_JP.eucJP |
|||
ka |
|||
ka_GE |
|||
kk |
|||
kl |
|||
kl_GL |
|||
km |
|||
km_KH |
|||
kn |
|||
ko |
|||
ko_KR |
|||
ko_KR.EUC-KR |
|||
ko_KR.UTF-8 |
|||
kok |
|||
ku |
|||
kw |
|||
kw_GB |
|||
ky |
|||
la |
|||
lg |
|||
li |
|||
lo |
|||
lt |
|||
lt_LT |
|||
lv |
|||
lv_LV |
|||
mai |
|||
mg |
|||
mhr |
|||
mi |
|||
mi_NZ |
|||
mk |
|||
mk_MK |
|||
ml |
|||
mn |
|||
mr |
|||
mr_IN |
|||
mr_IN.UTF-8 |
|||
ms |
|||
ms_MY |
|||
mt |
|||
mt_MT |
|||
my |
|||
my_MM |
|||
nb |
|||
nb_NO |
|||
nds |
|||
ne |
|||
nl |
|||
nl_BE |
|||
nl_BE@euro |
|||
nl_NL |
|||
nl_NL@euro |
|||
nn |
|||
nn_NO |
|||
no |
|||
no_NO |
|||
nso |
|||
nyc |
|||
oc |
|||
oc_FR |
|||
om |
|||
or |
|||
pa |
|||
pl |
|||
pl_PL |
|||
ps |
|||
pt |
|||
pt_BR |
|||
pt_PT |
|||
pt_PT@euro |
|||
rm |
|||
ro |
|||
ro_RO |
|||
ru |
|||
ru_RU |
|||
ru_RU.KOI8-R |
|||
ru_RU.UTF-8 |
|||
ru_UA |
|||
rw |
|||
sa |
|||
si |
|||
sid |
|||
sk |
|||
sk_SK |
|||
sl |
|||
sl_SI |
|||
so |
|||
sp |
|||
sq |
|||
sq_AL |
|||
sr |
|||
sr@Latn |
|||
sr@ije |
|||
sr@latin |
|||
sr_RS |
|||
sr_YU |
|||
sr_YU@cyrillic |
|||
sv |
|||
sv_FI |
|||
sv_FI@euro |
|||
sv_SE |
|||
sw |
|||
syr |
|||
ta |
|||
ta_IN |
|||
te |
|||
te_IN |
|||
tg |
|||
tg_TJ |
|||
th |
|||
th_TH |
|||
ti |
|||
ti_ER |
|||
ti_ET |
|||
tig |
|||
tk |
|||
tl |
|||
tl_PH |
|||
tr |
|||
tr_TR |
|||
tt |
|||
tt_RU |
|||
ug |
|||
uk |
|||
uk_UA |
|||
ur |
|||
ur_PK |
|||
uz |
|||
uz@Latn |
|||
uz_UZ |
|||
ve |
|||
vi |
|||
vi_VN |
|||
vi_VN.UTF-8 |
|||
wa |
|||
wal |
|||
wo |
|||
xh |
|||
yi |
|||
yi_US |
|||
zh |
|||
zh_CN |
|||
zh_CN.GB18030 |
|||
zh_CN.GB2312 |
|||
zh_CN.GBK |
|||
zh_CN.UTF-8 |
|||
zh_HK |
|||
zh_HK.UTF-8 |
|||
zh_SG |
|||
zh_TW |
|||
zh_TW.Big5 |
|||
zh_TW.EUC-TW |
|||
zh_TW.UTF-8 |
|||
zu |
|||
" |
|||
|
|||
LocalePurgeNokeep() { |
|||
local locale_keep |
|||
for locale_keep in $KEEP_LOCALES |
|||
do case $1 in |
|||
$locale_keep) |
|||
return 1;; |
|||
esac |
|||
done |
|||
} |
|||
|
|||
LocalePurgeMain() { |
|||
local locale_list locale_item locale_cmd |
|||
locale_list= |
|||
for locale_item in $ALL_LOCALES ${ALL_LOCALES_ADD-} |
|||
do [ -n "$locale_item" ] && LocalePurgeNokeep "$locale_item" && \ |
|||
locale_list=$locale_list' '$locale_item |
|||
done |
|||
locale_cmd='for d |
|||
do for l in $locale_list |
|||
do if test -d "$d/$l$k" |
|||
then rm -rvf -- "$d/$l" |
|||
fi |
|||
done |
|||
done' |
|||
export locale_list |
|||
shell=`command -v sh` || shell= |
|||
: ${shell:=/bin/sh} |
|||
if BashrcdTrue $LOCALEPURGE |
|||
then einfo 'removing undesired locales' |
|||
find "$ED" -name locale -type d \ |
|||
-exec "$shell" -c "k='/LC_MESSAGES' |
|||
$locale_cmd" sh '{}' '+' |
|||
fi |
|||
if BashrcdTrue $MANPURGE |
|||
then einfo 'removing undesired manpages' |
|||
find "$ED" -name man -type d \ |
|||
-exec "$shell" -c "k= |
|||
$locale_cmd" sh '{}' '+' |
|||
fi |
|||
unset locale_list |
|||
} |
|||
|
|||
LocalePurge() { |
|||
if BashrcdTrue $NOLOCALEPURGE || { |
|||
! BashrcdTrue $LOCALEPURGE && ! BashrcdTrue $MANPURGE |
|||
} || [ -z "${KEEP_LOCALES++}" ] |
|||
then return 0 |
|||
fi |
|||
case $- in |
|||
*f*) |
|||
LocalePurgeMain;; |
|||
*) |
|||
set -f |
|||
LocalePurgeMain |
|||
set +f;; |
|||
esac |
|||
} |
|||
|
|||
BashrcdPhase preinst LocalePurge |
@ -0,0 +1,25 @@ |
|||
#!/bin/bash |
|||
# (C) Martin V\"ath <martin at mvath.de> |
|||
# SPDX-License-Identifier: GPL-2.0-only |
|||
|
|||
Remove_la() { |
|||
BashrcdTrue $NOLAFILEREMOVE && return |
|||
# Some packages are known to rely on .la files (e.g. for building of plugins): |
|||
case "$CATEGORY/$PN" in |
|||
'media-libs/gst-plugins-base'|'media-libs/libsidplay') |
|||
return 0;; |
|||
esac |
|||
einfo 'removing unneeded *.la files' |
|||
local shell |
|||
shell=`command -v sh` || shell= |
|||
: ${shell:=/bin/sh} |
|||
Dexport=$ED find "$ED" -name '*.la' '!' -name 'libltdl.la' \ |
|||
-exec "$shell" -c "for i |
|||
do if grep -q -- '^shouldnotlink=no\$' \"\$i\" |
|||
then printf '\\t%s\\n' \"\${i#\$Dexport}\" |
|||
rm -- \"\$i\" || echo 'removing failed!' |
|||
fi |
|||
done" sh '{}' '+' |
|||
} |
|||
|
|||
BashrcdPhase preinst Remove_la |
Binary file not shown.
@ -0,0 +1,86 @@ |
|||
#!/bin/bash |
|||
# (C) Martin V\"ath <martin at mvath.de> |
|||
# SPDX-License-Identifier: GPL-2.0-only |
|||
|
|||
BashrcdTrue() { |
|||
case ${1:-n} in |
|||
[nNfF]*|[oO][fF]*|0|-) |
|||
return 1;; |
|||
esac |
|||
: |
|||
} |
|||
|
|||
BashrcdLog() { |
|||
local i m=elog |
|||
BashrcdTrue $BASHRCDNOLOG && m=einfo |
|||
for i |
|||
do $m "$i" |
|||
done |
|||
} |
|||
|
|||
BashrcdEcho() { |
|||
local i m=einfo |
|||
BashrcdTrue $BASHRCDLOG && m=elog |
|||
for i |
|||
do $m "$i" |
|||
done |
|||
} |
|||
|
|||
BashrcdPhase() { |
|||
local c |
|||
eval c=\${bashrcd_phases_c_$1} |
|||
if [ -n "${c:++}" ] |
|||
then c=$(( $c + 1 )) |
|||
else c=0 |
|||
fi |
|||
eval "bashrcd_phases_c_$1=\$c |
|||
bashrcd_phases_${c}_$1=\$2" |
|||
} |
|||
|
|||
BashrcdMain() { |
|||
local bashrcd |
|||
for bashrcd in "${PORTAGE_CONFIGROOT%/}/etc/portage/bashrc.d/"*.sh |
|||
do case $bashrcd in |
|||
*'/bashrcd.sh') |
|||
continue;; |
|||
esac |
|||
test -r "$bashrcd" || continue |
|||
. "$bashrcd" |
|||
BashrcdTrue $BASHRCD_DEBUG && BashrcdEcho "$bashrcd sourced" |
|||
done |
|||
unset -f BashrcdPhase |
|||
BashrcdMain() { |
|||
local bashrcd_ebuild_phase bashrcd_phase bashrcd_num bashrcd_max |
|||
bashrcd_ebuild_phase=$EBUILD_PHASE |
|||
[ -n "${bashrcd_ebuild_phase:++}" ] || [ $# -eq 0 ] || bashrcd_ebuild_phase=$1 |
|||
: ${ED:=${D%/}${EPREFIX%/}/} |
|||
BashrcdTrue $BASHRCD_DEBUG && BashrcdEcho \ |
|||
"$0: $* ($# args)" \ |
|||
"EBUILD_PHASE=$EBUILD_PHASE" \ |
|||
"PORTDIR=$PORTDIR" \ |
|||
"CATEGORY=$CATEGORY" \ |
|||
"P=$P" \ |
|||
"USER=$USER" \ |
|||
"UID=$UID" \ |
|||
"HOME=$HOME" \ |
|||
"PATH=$PATH" \ |
|||
"ROOT=$ROOT" \ |
|||
"PORTAGE_CONFIGROOT=$PORTAGE_CONFIGROOT" \ |
|||
"LD_PRELOAD=$LD_PRELOAD" \ |
|||
"EPREFIX=$EPREFIX" \ |
|||
"D=$D" \ |
|||
"ED=$ED" |
|||
for bashrcd_phase in all "$bashrcd_ebuild_phase" |
|||
do eval bashrcd_max=\${bashrcd_phases_c_$bashrcd_phase} |
|||
[ -z "${bashrcd_max:++}" ] && continue |
|||
bashrcd_num=0 |
|||
while { |
|||
eval eval \"\\\${bashrcd_phases_${bashrcd_num}_$bashrcd_phase}\" |
|||
[ $bashrcd_num -ne $bashrcd_max ] |
|||
} |
|||
do bashrcd_num=$(( $bashrcd_num + 1 )) |
|||
done |
|||
done |
|||
} |
|||
BashrcdMain "$@" |
|||
} |
Binary file not shown.
Binary file not shown.
@ -0,0 +1,6 @@ |
|||
COMMON_FLAGS="-flto -O3 -march=haswell -pipe" |
|||
CFLAGS="${COMMON_FLAGS}" |
|||
CXXFLAGS="${COMMON_FLAGS}" |
|||
FCFLAGS="${COMMON_FLAGS}" |
|||
FFLAGS="${COMMON_FLAGS}" |
|||
LDFLAGS="-Wl,-O1 -Wl,--no-as-needed" |
@ -0,0 +1,5 @@ |
|||
COMMON_FLAGS="-march=native -O2 -pipe" |
|||
CFLAGS="${COMMON_FLAGS}" |
|||
CXXFLAGS="${COMMON_FLAGS}" |
|||
FCFLAGS="${COMMON_FLAGS}" |
|||
FFLAGS="${COMMON_FLAGS}" |
@ -0,0 +1 @@ |
|||
CFLAGS="${CFLAGS} -fno-lto" |
@ -0,0 +1,5 @@ |
|||
COMMON_FLAGS="-march=native -O3 -pipe -fno-strict-aliasing" |
|||
CFLAGS="${COMMON_FLAGS}" |
|||
CXXFLAGS="${COMMON_FLAGS}" |
|||
FCFLAGS="${COMMON_FLAGS}" |
|||
FFLAGS="${COMMON_FLAGS}" |
@ -0,0 +1 @@ |
|||
PORTAGE_TMPDIR="/var/tmpnotmpfs" |
File diff suppressed because it is too large
File diff suppressed because it is too large
@ -0,0 +1,48 @@ |
|||
#NTHREADS="8" |
|||
#source /etc/portage/make.conf.lto.defines |
|||
# |
|||
#COMMON_FLAGS="-march=native -O3 ${GRAPHITE} ${DEVIRTLTO} ${IPAPTA} \ |
|||
# ${SEMINTERPOS} ${FLTO} -fuse-linker-plugin -falign-functions=32" |
|||
|
|||
COMMON_FLAGS="-march=native -O2 -pipe" |
|||
CFLAGS="${COMMON_FLAGS}" |
|||
CXXFLAGS="${CFLAGS}" |
|||
FCFLAGS="${CFLAGS}" |
|||
FFLAGS="${CFLAGS}" |
|||
|
|||
PORTAGE_BINHOST="http://packages.gentooexperimental.org/packages/" |
|||
GENTOO_MIRRORS="https://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/ \ |
|||
https://gentoo.osuosl.org/ \ |
|||
http://ftp.vectranet.pl/gentoo/ \ |
|||
http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/" |
|||
|
|||
#MAKEOPTS="-j8 --load-average=6.4" |
|||
#EMERGE_DEFAULT_OPTS="--jobs=8 --load-average=6.4 --with-bdeps=y --keep-going=y --quiet-build" |
|||
|
|||
MAKEOPTS="-j3 --load-average=3.3" |
|||
EMERGE_DEFAULT_OPTS="--jobs=3 --load-average=3.3 --with-bdeps=y --keep-going=y --quiet-build" |
|||
|
|||
ACCEPT_LICENSE="*" |
|||
ACCEPT_KEYWORDS="~amd64" |
|||
|
|||
CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" |
|||
|
|||
FEATURES="${FEATURES} sign ccache buildpkg userfetch multilib-strict sandbox userpriv usersandbox collision-protect" |
|||
|
|||
USE="-bluetooth" |
|||
|
|||
PORTAGE_GPG_KEY="D34FB8A44F324B8A" |
|||
SIGNED_OFF_BY="Marcin Woźniak <y0rune@aol.com>" |
|||
|
|||
RUBY_TARGETS="ruby30 ruby26 ruby27" |
|||
|
|||
PORTDIR="/var/db/repos/gentoo" |
|||
DISTDIR="/var/cache/distfiles" |
|||
PKGDIR="/var/cache/binpkgs" |
|||
CCACHE_DIR="/var/cache/ccache" |
|||
|
|||
LC_MESSAGES=C |
|||
|
|||
INPUT_DEVICES="mouse keyboard synaptics libinput" |
|||
VIDEO_CARDS="nvidia" |
|||
GRUB_PLATFORMS="efi-64" |
@ -0,0 +1 @@ |
|||
/var/db/repos/lto-overlay/sys-config/ltoize/files/make.conf.lto |
@ -0,0 +1 @@ |
|||
/var/db/repos/lto-overlay/sys-config/ltoize/files/make.conf.lto.defines |
@ -0,0 +1 @@ |
|||
../../var/db/repos/gentoo/profiles/default/linux/amd64/17.1 |
@ -0,0 +1,11 @@ |
|||
sys-apps/openrc -~amd64 |
|||
net-misc/tigervnc -~amd64 |
|||
mail-client/neomutt -~amd64 |
|||
net-libs/nodejs -~amd64 |
|||
app-emulation/docker -~amd64 |
|||
app-emulation/docker-proxy -~amd64 |
|||
app-emulation/containerd -~amd64 |
|||
app-emulation/runc -~amd64 |
|||
dev-util/cppcheck -~amd64 |
|||
net-misc/streamlink ** |
|||
net-misc/youtube-dl ** |
@ -0,0 +1 @@ |
|||
/var/db/repos/lto-overlay/sys-config/ltoize/files/package.cflags/clang.conf |
@ -0,0 +1 @@ |
|||
/var/db/repos/lto-overlay/sys-config/ltoize/files/package.cflags/cmake-makefile.conf |
@ -0,0 +1 @@ |
|||
/var/db/repos/lto-overlay/sys-config/ltoize/files/package.cflags/devirtualize-at-ltrans.conf |
@ -0,0 +1 @@ |
|||
/var/db/repos/lto-overlay/sys-config/ltoize/files/package.cflags/graphite.conf |
@ -0,0 +1 @@ |
|||
/var/db/repos/lto-overlay/sys-config/ltoize/files/package.cflags/ipa-pta.conf |
@ -0,0 +1 @@ |
|||
/var/db/repos/lto-overlay/sys-config/ltoize/files/package.cflags/lto.conf |
@ -0,0 +1 @@ |
|||
/var/db/repos/lto-overlay/sys-config/ltoize/files/package.cflags/no-common-libtool.conf |
@ -0,0 +1 @@ |
|||
/var/db/repos/lto-overlay/sys-config/ltoize/files/package.cflags/no-plt.conf |
@ -0,0 +1 @@ |
|||
/var/db/repos/lto-overlay/sys-config/ltoize/files/package.cflags/no-semantic-interposition.conf |
@ -0,0 +1 @@ |
|||
/var/db/repos/lto-overlay/sys-config/ltoize/files/package.cflags/optimizations.conf |
@ -0,0 +1 @@ |
|||
/var/db/repos/lto-overlay/sys-config/ltoize/files/package.cflags/portage-bashrc-mv.conf |
@ -0,0 +1 @@ |
|||
/var/db/repos/lto-overlay/sys-config/ltoize/files/package.cflags/tls-dialect.conf |
@ -0,0 +1 @@ |
|||
/var/db/repos/lto-overlay/sys-config/ltoize/files/package.cflags/use-ld.conf |
@ -0,0 +1,18 @@ |
|||
app-office/libreoffice notmpfs.conf |
|||
dev-lang/spidermonkey notmpfs.conf |
|||
dev-lang/rust notmpfs.conf |
|||
dev-libs/libaio no-fno-lto.conf |
|||
dev-libs/libbsd no-fno-lto.conf |
|||
sys-apps/sandbox no-fno-lto.conf |
|||
media-libs/x264 no-fno-lto.conf |
|||
media-libs/alsa-lib no-fno-lto.conf |
|||
sys-libs/efivar no-fno-lto.conf |
|||
sys-libs/libomp no-fno-lto.conf |
|||
dev-python/twisted no-fno-lto.conf |
|||
app-text/texlive-core no-fno-lto.conf |
|||
app-text/lcdf-typetools no-lto.conf |
|||
sys-devel/llvm no-lto.conf |
|||
dev-lang/ruby no-lto.conf |
|||
net-analyzer/wireshark no-lto.conf |
|||
dev-qt/* no-lto.conf |
|||
net-libs/webkit-gtk no-lto.conf |
@ -0,0 +1,4 @@ |
|||
dev-haskell/*::gentoo |
|||
x11-drivers/nvidia-drivers::hossie |
|||
net-misc/megasync::guru |
|||
sys-apps/flatpak::guru |
@ -0,0 +1 @@ |
|||
app-i18n/mozc |
@ -0,0 +1,422 @@ |
|||
#vim |
|||
app-editors/vim python |
|||
|
|||
# Emacs |
|||
app-editors/emacs jpeg lcms png svg X gui gtk xft tiff libxml2 |
|||
app-emacs/emacs-common-gentoo X gui |
|||
app-emacs/emacs-common gui |
|||
|
|||
app-emulation/docker cli |
|||
|
|||
media-gfx/gnome-screenshot X |
|||
sys-kernel/gentoo-sources experimental |
|||
>=dev-libs/libpcre2-10.34 pcre16 |
|||
>=sys-boot/grub-2.04-r1 device-mapper mount |
|||
>=x11-libs/libxcb-1.13.1 xkb |
|||
net-wireless/wpa_supplicant dbus |
|||
>=x11-libs/gdk-pixbuf-2.40.0 X |
|||
>=x11-libs/pango-1.42.4-r2 X |
|||
>=x11-libs/libX11-1.6.9 abi_x86_32 |
|||
>=x11-libs/libXext-1.3.4 abi_x86_32 |
|||
>=x11-libs/libvdpau-1.3 abi_x86_32 |
|||
>=x11-libs/cairo-1.16.0-r3 X |
|||
>=x11-libs/libxcb-1.13.1 abi_x86_32 |
|||
>=virtual/pkgconfig-1 abi_x86_32 |
|||
>=dev-util/pkgconf-1.6.3 abi_x86_32 |
|||
>=dev-libs/libpthread-stubs-0.4-r1 abi_x86_32 |
|||
>=x11-libs/libXau-1.0.9 abi_x86_32 |
|||
>=x11-libs/libXdmcp-1.1.3 abi_x86_32 |
|||
>=x11-base/xcb-proto-1.13 abi_x86_32 |
|||
>=media-plugins/alsa-plugins-1.2.1 pulseaudio |
|||
>=media-libs/speexdsp-1.2.0 abi_x86_32 |
|||
>=dev-dotnet/libgdiplus-6.0.2 cairo |
|||
>=app-text/ghostscript-gpl-9.50 cups |
|||
>=app-text/xmlto-0.0.28-r1 text |
|||
>=dev-libs/glib-2.60.7 dbus |
|||
>=sys-auth/polkit-0.96-r1 elogind |
|||
>=app-crypt/gcr-3.34.0 gtk |
|||
>=dev-lang/python-2.7.17:2.7 sqlite |
|||
>=app-crypt/pinentry-1.1.0-r3 gnome-keyring |
|||
>=dev-cpp/gtkmm-3.24.2 X |
|||
>=x11-libs/cairo-1.16.0-r3 X |
|||
>=net-misc/meganz-sdk-3.6.5 qt libuv mediainfo |
|||
net-misc/megasync threads python |
|||
>=x11-libs/libxkbcommon-0.9.1 X |
|||
media-sound/teamspeak-client alsa pulseaudio |
|||
>=dev-qt/qtgui-5.13.2 dbus accessibility |
|||
>=dev-qt/qtwebengine-5.13.2 widgets alsa pulseaudio geolocation |
|||
>=dev-qt/qtwebchannel-5.13.2 qml |
|||
>=dev-libs/libxml2-2.9.9-r2 icu |
|||
>=media-libs/libvpx-1.8.1 svc |
|||
>=sys-libs/zlib-1.2.11-r2 minizip abi_x86_32 static-libs |
|||
>=virtual/libcrypt-1 abi_x86_32 |
|||
>=app-arch/zstd-1.4.4-r2 abi_x86_32 |
|||
media-sound/cmus alsa ffmpeg pulseaudio |
|||
sys-devel/gcc graphite lto pgo |
|||
|
|||
# NM APPLET |
|||
>=gnome-extra/nm-applet-1.8.24 gtk |
|||
>=virtual/rust-1.45.1 abi_x86_32 |
|||
>=dev-lang/rust-1.45.1 abi_x86_32 |
|||
|
|||
# QEMU |
|||
app-emulation/qemu gtk nfs spice ssh vnc QEMU_SOFTMMU_TARGETS: x86_64 QEMU_USER_TARGETS: x86_64 |
|||
app-emulation/virt-manager gtk |
|||
>=net-misc/spice-gtk-0.39 usbredir |
|||
>=net-dns/dnsmasq-2.84-r101 script |
|||
|
|||
#KODI |
|||
>=dev-libs/boost-1.72.0 abi_x86_32 |
|||
>=net-libs/nghttp2-1.40.0 abi_x86_32 |
|||
>=net-misc/curl-7.67.0-r1 http2 |
|||
>=media-video/ffmpeg-4.2.1 mp3 openssl X x264 dav1d vaapi |
|||
media-tv/kodi webserver pulseaudio alsa |
|||
|
|||
#steam |
|||
games-util/game-device-udev-rules acl elogind |
|||
app-arch/bzip2 abi_x86_32 |
|||
dev-db/sqlite abi_x86_32 |
|||
dev-libs/atk abi_x86_32 |
|||
dev-libs/expat abi_x86_32 |
|||
dev-libs/fribidi abi_x86_32 |
|||
dev-libs/glib abi_x86_32 |
|||
dev-libs/gmp abi_x86_32 |
|||
dev-libs/icu abi_x86_32 |
|||
dev-libs/libcroco abi_x86_32 |
|||
dev-libs/libffi abi_x86_32 |
|||
dev-libs/libpcre abi_x86_32 |
|||
dev-libs/libpthread-stubs abi_x86_32 |
|||
dev-libs/libtasn1 abi_x86_32 |
|||
dev-libs/libunistring abi_x86_32 |
|||
dev-libs/libxml2 abi_x86_32 |
|||
dev-libs/lzo static-libs abi_x86_32 |
|||
dev-libs/nettle abi_x86_32 |
|||
dev-libs/nspr abi_x86_32 |
|||
dev-libs/nss abi_x86_32 |
|||
dev-libs/openssl abi_x86_32 |
|||
dev-libs/wayland abi_x86_32 |
|||
dev-util/pkgconfig abi_x86_32 |
|||
gnome-base/librsvg abi_x86_32 |
|||
media-gfx/graphite2 abi_x86_32 |
|||
media-libs/fontconfig abi_x86_32 |
|||
media-libs/freetype abi_x86_32 |
|||
media-libs/harfbuzz abi_x86_32 |
|||
media-libs/libpng abi_x86_32 |
|||
edia-libs/openal abi_x86_32 |
|||
media-libs/tiff abi_x86_32 |
|||
net-dns/libidn2 abi_x86_32 |
|||
net-libs/gnutls abi_x86_32 |
|||
net-misc/curl abi_x86_32 |
|||
net-nds/openldap abi_x86_32 |
|||
net-print/cups abi_x86_32 |
|||
sys-apps/attr abi_x86_32 |
|||
sys-apps/dbus abi_x86_32 |
|||
sys-apps/util-linux abi_x86_32 |
|||
sys-devel/gettext abi_x86_32 |
|||
sys-devel/llvm abi_x86_32 |
|||
sys-libs/binutils-libs abi_x86_32 |
|||
sys-fs/eudev abi_x86_32 |
|||
>=virtual/libintl-0-r2 abi_x86_32 |
|||
sys-libs/gpm abi_x86_32 |
|||
sys-libs/ncurses abi_x86_32 |
|||
sys-libs/readline abi_x86_32 |
|||
sys-libs/zlib abi_x86_32 |
|||
virtual/libffi abi_x86_32 |
|||
virtual/libiconv abi_x86_32 |
|||
virtual/libudev abi_x86_32 |
|||
virtual/pkgconfig abi_x86_32 |
|||
x11-libs/cairo abi_x86_32 |
|||
x11-libs/gdk-pixbuf abi_x86_32 |
|||
x11-libs/gtk+:2 abi_x86_32 |
|||
x11-libs/libX11 abi_x86_32 |
|||
x11-libs/libXScrnSaver abi_x86_32 |
|||
x11-libs/libXau abi_x86_32 |
|||
x11-libs/libXcomposite abi_x86_32 |
|||
x11-libs/libXcursor abi_x86_32 |
|||
x11-libs/libXdamage abi_x86_32 |
|||
x11-libs/libXdmcp abi_x86_32 |
|||
x11-libs/libXext abi_x86_32 |
|||