Edit: Merged! Thanks @metak
Heres a patch to fix clang lto compiling only modifying the PKGBUILD https://gist.github.com/xstefen/546d201257475c0ffbb954369453f692
Git Clone URL: | https://aur.archlinux.org/linux-clear.git (read-only, click to copy) |
---|---|
Package Base: | linux-clear |
Description: | Linux kernel with patches from Clear Linux which allow for higher performance. This package includes header files and scripts for building kernel modules. |
Upstream URL: | https://git.staropensource.de/JeremyStarTM/aur-linux-clear |
Keywords: | clear clearlinux intel kernel |
Licenses: | GPL-2.0-only |
Submitter: | metak |
Maintainer: | JeremyStarTM |
Last Packager: | JeremyStarTM |
Votes: | 73 |
Popularity: | 0.52 |
First Submitted: | 2018-01-18 21:47 (UTC) |
Last Updated: | 2024-12-22 18:20 (UTC) |
« First ‹ Previous 1 .. 3 4 5 6 7 8 9 10 11 12 13 .. 52 Next › Last »
Edit: Merged! Thanks @metak
Heres a patch to fix clang lto compiling only modifying the PKGBUILD https://gist.github.com/xstefen/546d201257475c0ffbb954369453f692
@seqfault I don't know since I don't run any benchmarks/tests. Upstream Clear team tests and develops with gcc in mind so I can't say anything about clang/llvm.
@metak thanks for explaining! how do you think, what will produce faster kernel binary: llvm16 without patch 162 but with lto, or gcc13 without lto, but with 162 optimizations?
hey @metak, now that llvm16 is in the stable repos, can we compile this with patch 162? if not, is there a way to build with gcc, but still have lto? also, should I use _subarch=44 now instead of 40, if using llvm16?
@tydynrain llvm/clang is unsupported upstream, comment out the latest patch Patch0162: 0162-extra-optmization-flags.patch
.
The past 3 versions of the linux-clear kernel have failed to build for me (it generally builds fine) with the following error message:
clang-15: error: optimization flag '-fivopts' is not supported [-Werror,-Wignored-optimization-argument]
clang-15: error: optimization flag '-fmodulo-sched' is not supported [-Werror,-Wignored-optimization-argument]
make[1]: *** [scripts/Makefile.build:252: scripts/mod/empty.o] Error 1
make: *** [Makefile:1286: prepare0] Error 2
==> ERROR: A failure occurred in build().
Aborting...
Built OK after I first manually compressed /lib/firmware/amd-ucode/microcode_amd_fam19h.bin
into /lib/firmware/amd-ucode/microcode_amd_fam19h.bin.xz
.
6.3.10-1 fails to build for me:
make[5]: *** No rule to make target '/lib/firmware/amd-ucode/microcode_amd_fam19h.bin.xz', needed by 'drivers/base/firmware_loader/builtin/amd-ucode/microcode_amd_fam19h.bin.xz.gen.o'. Stop.
make[5]: *** Waiting for unfinished jobs....
make[4]: *** [scripts/Makefile.build:494: drivers/base/firmware_loader/builtin] Error 2
make[3]: *** [scripts/Makefile.build:494: drivers/base/firmware_loader] Error 2
Pinned Comments
JeremyStarTM commented on 2024-08-06 19:37 (UTC) (edited on 2024-12-22 18:20 (UTC) by JeremyStarTM)
Information comment
This comment provides useful information about this package. Make sure to read it through, you won't regret it.
Repository URL
This package is hosted at sos!git. If you want to contribute to the package, you can do it here: https://git.staropensource.de/JeremyStarTM/aur-linux-clear
Issue handling
Please only submit issues in the package's repository if they aren't bug reports about the package or help requests. Please keep them to the AUR only. This prevents unnecessary signups.
Updates
I usually publish updates 0-3 days after a kernel release, depending on how busy I am.
If I however get wind of security-relevant updates or any vulnerabilities I will try to update the kernel as soon as possible and write a comment about the vulnerability/update. So make sure to subscribe to this package's comment mailing list.
PKGBUILD environment variable customization
The PKGBUILD file supports customization via environment variables. Here's a list of all of them:
-
_makemenuconfig
: Invokesmake menuconfig
(ncurses-based default configuration menu) before compilation starts-
_makenconfig
: Invokesmake nconfig
(ncurses-based nicer configuration menu) before compilation starts-
_makexconfig
: Invokesmake xconfig
(X11-based GUI configuration menu) before compilation starts-
_reuse_current
: Will use the configuration of the running kernel, if the running kernel is compiled withIKCONFIG_PROC
-
_reuse_file
: Will use the configuration file namedkconfig
contained in thePKGBUILD
file's directory-
_update_kconfig_on_reuse
: Specifies whether the kernel configuration shall be updated when using any of the 'reuse*' flags-
_copyfinalconfig
: Copies the final kernel configuration into the repository root askconfig-new
before compilation starts-
_localmodcfg
: Only compiles modules found in modprobed-db's database (which decreases compilation time and kernel size)-
_use_llvm_lto
: Compiles the kernel with LLVM instead of GCC. Should work, if not open an issue-
_subarch
: Specifies the subarchitecture to compile for (see thePKGBUILD
file for a list of all subarches). Default is41
(Generic x86-64), which is compatible with all amd64 processors. Must be a number-
_use_llvm_lto
: Enables compilation with LLVM. Untested but should work. If not write a comment on the AUR.-
_subarch_microarch
: Specifies the microarchitecture to compile for. Only applies to and is required by theGENERIC_CPU
subarch. Must be a number between1
and4
(click for more information)-
_debug_kernel
: Force enables kernel debugging options when set toy
, force disables debug options when set ton
or relies on the kconfig when unset-
_debug_script
: Enables debugging for thePKGBUILD
fileAll of these variables just need to be set for them to apply, except for
_subarch
,_subarch_microarch
and_debug_kernel
. For more information please check their documentation inside thePKGBUILD
fileGPG errors
If makepkg complains about invalid PGP keys, try running this command first:
gpg --locate-keys torvalds@kernel.org gregkh@kernel.org sashal@kernel.org benh@debian.org
. This command only needs to be executed once.Build tool
If you want a dead simple way to compile this package, you can try out my build tool. It includes a few no nonsense changes to the kernel configuration and allows you to configure the PKGBUILD file in a simple manner and decrease build time. And if you don't want that, using
makepkg
as-is works fine too.