diff options
Diffstat (limited to 'eclass/kernel-2.eclass')
-rw-r--r-- | eclass/kernel-2.eclass | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/eclass/kernel-2.eclass b/eclass/kernel-2.eclass index edbb4a8584d4..ece1edfb36c6 100644 --- a/eclass/kernel-2.eclass +++ b/eclass/kernel-2.eclass @@ -1227,16 +1227,21 @@ unipatch() { UNIPATCH_LIST_GENPATCHES+=" ${DISTDIR}/${tarball}" debug-print "genpatches tarball: $tarball" - # check gcc version < 4.9.X uses patch 5000 and = 4.9.X uses patch 5010 - if [[ $(gcc-major-version) -eq 4 ]] && [[ $(gcc-minor-version) -ne 9 ]]; then - # drop 5000_enable-additional-cpu-optimizations-for-gcc-4.9.patch - if [[ $UNIPATCH_DROP != *"5010_enable-additional-cpu-optimizations-for-gcc-4.9.patch"* ]]; then - UNIPATCH_DROP+=" 5010_enable-additional-cpu-optimizations-for-gcc-4.9.patch" + local GCC_MAJOR_VER=$(gcc-major-version) + local GCC_MINOR_VER=$(gcc-minor-version) + + # support old kernels for a period. For now, remove as all gcc versions required are masked + UNIPATCH_DROP+=" 5010_enable-additional-cpu-optimizations-for-gcc.patch" + + # optimization patch for gcc < 8.X and kernel > 4.13 + if [[ ${GCC_MAJOR_VER} -lt 8 ]] && [[ ${GCC_MAJOR_VER} -gt 4 ]]; then + if kernel_is ge 4 13 ; then + UNIPATCH_DROP+=" 5011_enable-cpu-optimizations-for-gcc8.patch" fi - else - if [[ $UNIPATCH_DROP != *"5000_enable-additional-cpu-optimizations-for-gcc.patch"* ]]; then - #drop 5000_enable-additional-cpu-optimizations-for-gcc.patch - UNIPATCH_DROP+=" 5000_enable-additional-cpu-optimizations-for-gcc.patch" + # optimization patch for gcc >= 8 and kernel ge 4.13 + elif [[ "${GCC_MAJOR_VER}" -ge 8 ]]; then + if kernel_is ge 4 13; then + UNIPATCH_DROP+=" 5010_enable-additional-cpu-optimizations-for-gcc-4.9.patch" fi fi fi |