Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[Solved] How to set CFLAGS to kernels compiled by genkernel?
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware
View previous topic :: View next topic  
Author Message
Cruslan
n00b
n00b


Joined: 06 Jan 2024
Posts: 17

PostPosted: Sun Jun 30, 2024 7:33 pm    Post subject: [Solved] How to set CFLAGS to kernels compiled by genkernel? Reply with quote

I want to compile kernel with CFLAGS added by genkernel. But i can't find any information in Gentoo documentation. I found a topic that the guy succeed by adding "KERNEL_CFLAGS" variable to /etc/genkernel.conf; https://forums.gentoo.org/viewtopic-p-8785123.html?sid=ffc4f016ae4af7f94b4288619e030a1b It will work or is there any method to kernel built by requested CFLAGS by genkernel? Is it correct usage for CFLAGS in kernel building;

/etc/genkernel.conf
Code:
KERNEL_CFLAGS="-march=native -mtune=native -O3 -pipe -flto=12 -fuse-linker-plugin -ftree-loop-optimize -fgraphite-identity -floop-nest-optimize -floop-parallelize-all -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition"


Last edited by Cruslan on Mon Jul 01, 2024 4:30 pm; edited 1 time in total
Back to top
View user's profile Send private message
Cruslan
n00b
n00b


Joined: 06 Jan 2024
Posts: 17

PostPosted: Mon Jul 01, 2024 4:29 pm    Post subject: Reply with quote

I succeed my goal by cherry-picking TKG-Kernel's "0013-optimize_harder_O3.patch" file in https://github.com/Frogging-Family/linux-tkg/blob/master/linux-tkg-patches/6.9/0013-optimize_harder_O3.patch. I changed default options to my desired CFLAGS. After that i applied patch by emerge to sys-kernel/gentoo-kernel. Lastly i compiled kernel as usual.

Original patch;
Code:
diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -442,7 +442,7 @@ endif
 HOSTPKG_CONFIG   = pkg-config

 KBUILD_USERHOSTCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes \
-          -O2 -fomit-frame-pointer -std=gnu11
+          -O3 -fomit-frame-pointer -std=gnu11
 KBUILD_USERCFLAGS  := $(KBUILD_USERHOSTCFLAGS) $(USERCFLAGS)
 KBUILD_USERLDFLAGS := $(USERLDFLAGS)

@@ -474,7 +474,7 @@ endif
              -Wclippy::dbg_macro

 KBUILD_HOSTCFLAGS   := $(KBUILD_USERHOSTCFLAGS) $(HOST_LFS_CFLAGS) $(HOSTCFLAGS)
-KBUILD_HOSTCXXFLAGS := -Wall -O2 $(HOST_LFS_CFLAGS) $(HOSTCXXFLAGS)
+KBUILD_HOSTCXXFLAGS := -Wall -O3 $(HOST_LFS_CFLAGS) $(HOSTCXXFLAGS)
 KBUILD_HOSTRUSTFLAGS := $(rust_common_flags) -O -Cstrip=debuginfo \
          -Zallow-features= $(HOSTRUSTFLAGS)
 KBUILD_HOSTLDFLAGS  := $(HOST_LFS_LDFLAGS) $(HOSTLDFLAGS)
@@ -757,7 +757,7 @@ KBUILD_CFLAGS       += $(call cc-disable-warning, format-overflow)
 KBUILD_CFLAGS  += $(call cc-disable-warning, address-of-packed-member)

 ifdef CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE
-KBUILD_CFLAGS += -O2
+KBUILD_CFLAGS += -O3
 KBUILD_RUSTFLAGS += -Copt-level=2
 else ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
 KBUILD_CFLAGS += -Os
diff --git a/init/Kconfig b/init/Kconfig
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -1401,10 +1401,10 @@ choice
    default CC_OPTIMIZE_FOR_PERFORMANCE

 config CC_OPTIMIZE_FOR_PERFORMANCE
-   bool "Optimize for performance (-O2)"
+   bool "Optimize for performance (-O3)"
    help
      This is the default optimization level for the kernel, building
-     with the "-O2" compiler flag for best performance and most
+     with the "-O3" compiler flag for best performance and most
      helpful compile-time warnings.

 config CC_OPTIMIZE_FOR_SIZE


Edited patch;
Code:
diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -442,7 +442,7 @@ endif
 HOSTPKG_CONFIG   = pkg-config

 KBUILD_USERHOSTCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes \
-          -O2 -fomit-frame-pointer -std=gnu11
+          -O3 -fomit-frame-pointer -std=gnu11 -flto=12 -fuse-linker-plugin -ftree-loop-optimize -fgraphite-identity -floop-nest-optimize -floop-parallelize-all -fdevirtualize-at-ltrans -fipa-pta -fno-semantic-interposition
 KBUILD_USERCFLAGS  := $(KBUILD_USERHOSTCFLAGS) $(USERCFLAGS)
 KBUILD_USERLDFLAGS := $(USERLDFLAGS)

@@ -474,7 +474,7 @@ endif
              -Wclippy::dbg_macro

 KBUILD_HOSTCFLAGS   := $(KBUILD_USERHOSTCFLAGS) $(HOST_LFS_CFLAGS) $(HOSTCFLAGS)
-KBUILD_HOSTCXXFLAGS := -Wall -O2 $(HOST_LFS_CFLAGS) $(HOSTCXXFLAGS)
+KBUILD_HOSTCXXFLAGS := -Wall -O3 $(HOST_LFS_CFLAGS) $(HOSTCXXFLAGS)
 KBUILD_HOSTRUSTFLAGS := $(rust_common_flags) -O -Cstrip=debuginfo \
          -Zallow-features= $(HOSTRUSTFLAGS)
 KBUILD_HOSTLDFLAGS  := $(HOST_LFS_LDFLAGS) $(HOSTLDFLAGS)
@@ -757,7 +757,7 @@ KBUILD_CFLAGS       += $(call cc-disable-warning, format-overflow)
 KBUILD_CFLAGS  += $(call cc-disable-warning, address-of-packed-member)

 ifdef CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE
-KBUILD_CFLAGS += -O2
+KBUILD_CFLAGS += -O3
 KBUILD_RUSTFLAGS += -Copt-level=2
 else ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
 KBUILD_CFLAGS += -Os
diff --git a/init/Kconfig b/init/Kconfig
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -1401,10 +1401,10 @@ choice
    default CC_OPTIMIZE_FOR_PERFORMANCE

 config CC_OPTIMIZE_FOR_PERFORMANCE
-   bool "Optimize for performance (-O2)"
+   bool "Optimize for performance (-O3)"
    help
      This is the default optimization level for the kernel, building
-     with the "-O2" compiler flag for best performance and most
+     with the "-O3" compiler flag for best performance and most
      helpful compile-time warnings.

 config CC_OPTIMIZE_FOR_SIZE
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Kernel & Hardware All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum