@@ -535,9 +535,10 @@ usage() {
535
535
echo " --skip-cleanup Skip post-build cleanup" >&2
536
536
echo " --skip-compiler-check Skip compiler version matching check" >&2
537
537
echo " (not recommended)" >&2
538
+ echo " -p, --profile-data specify profile data for PGO (clang only)" >&2
538
539
}
539
540
540
- options=" $( getopt -o ha:r:s:c:v:j:t:n:o:dR -l " help,archversion:,sourcerpm:,sourcedir:,config:,vmlinux:,jobs:,target:,name:,output:,oot-module:,oot-module-src:,debug,skip-gcc-check,skip-compiler-check,skip-cleanup,non-replace" -- " $@ " ) " || die " getopt failed"
541
+ options=" $( getopt -o ha:r:s:c:v:j:t:n:o:dRp: -l " help,archversion:,sourcerpm:,sourcedir:,config:,vmlinux:,jobs:,target:,name:,output:,oot-module:,oot-module-src:,debug,skip-gcc-check,skip-compiler-check,skip-cleanup,non-replace,profile-data " -- " $@ " ) " || die " getopt failed"
541
542
542
543
eval set -- " $options "
543
544
@@ -619,6 +620,10 @@ while [[ $# -gt 0 ]]; do
619
620
echo " WARNING: Skipping compiler version matching check (not recommended)"
620
621
SKIPCOMPILERCHECK=1
621
622
;;
623
+ -p|--profile-data)
624
+ PROFILE_DATA=" $( readlink -f " $2 " ) "
625
+ shift
626
+ ;;
622
627
* )
623
628
[[ " $1 " = " --" ]] && shift && continue
624
629
[[ ! -f " $1 " ]] && die " patch file '$1 ' not found"
896
901
897
902
if [[ -n " $CONFIG_CC_IS_CLANG " ]]; then
898
903
echo " WARNING: Clang support is experimental"
904
+ if [[ -z " $PROFILE_DATA " ]] && [[ -n " $CONFIG_PGO_CLANG " ]]; then
905
+ die " Please specify profile-data for CONFIG_PGO_CLANG"
906
+ fi
907
+ if [[ -n " $PROFILE_DATA " ]] && [[ -z " $CONFIG_PGO_CLANG " ]]; then
908
+ echo " WARNING profile-data specified w/o CONFIG_PGO_CLANG, ignore it"
909
+ fi
910
+ else
911
+ if [[ -n " $PROFILE_DATA " ]]; then
912
+ die " Only supports profile-data with Clang"
913
+ fi
899
914
fi
900
915
901
916
if [[ " $SKIPCOMPILERCHECK " -eq 0 ]]; then
@@ -943,6 +958,9 @@ declare -a MAKEVARS
943
958
if [[ -n " $CONFIG_CC_IS_CLANG " ]]; then
944
959
MAKEVARS+=(" CC=${KPATCH_CC_PREFIX}${CLANG} " )
945
960
MAKEVARS+=(" HOSTCC=clang" )
961
+ if [[ -n " $CONFIG_PGO_CLANG " ]]; then
962
+ MAKEVARS+=(" CFLAGS_PGO_CLANG=-fprofile-use=$PROFILE_DATA " )
963
+ fi
946
964
else
947
965
MAKEVARS+=(" CC=${KPATCH_CC_PREFIX}${GCC} " )
948
966
fi
0 commit comments