Based on that error message, I'm fairly certain that the battery driver or battery is the issue though. If you look at drivers/power/htc_battery.c, you can see it's involved in negotiating the charging rate. Since there's thermal throttling, etc. batteries are very involved.
Conversation
honestly I just find the normal part of the AOSP build system bad enough, the thought of doing something with the kernel instills dread
1
6
(it's the LineageOS kernel build integration, I have absolutely no idea how it works)
1
1
We use the AOSP way of building it separately and including it in the AOSP build as a prebuilt.
Qualcomm has always included a way to run the kernel build in-tree via a wrapper in each kernel source tree as a hack for development. LineageOS turned that into a generic system.
2
2
I don't like running a totally separate build system within the AOSP build system. It takes a ridiculous amount of time and memory to link the Linux kernel with full LTO and it doesn't use kati so it doesn't handle incremental builds well so I really prefer the AOSP approach.
1
4
Why LTO? Does it have extended hardening properties or is it just 3% optimizing non-bottlenecks?
2
Pixels build the kernels with Clang CFI which requires LTO. If you disable dynamic kernel modules, set -fvisibility=hidden as the default and avoid using ThinLTO, you get much better CFI granularity because it can see that nearly everything can't be indirectly called.
2
3
It's infuriating that this needs LTO because conceptually there's no reason it couldn't just be normal linking with some extended symbol markup.
1
Compiling vs linking is the most critical scalability boundary and compiler folks are determined to tear it down because they love their fancy toy (LTO) and keep building all the actually useful stuff on top of it to push it.
2
or maybe it's because linkers are borderline unusable if you do something that wasn't standard in 1980. i have fixed a GNU ld bug once, and i will never touch that codebase again
2
2
IIRC, GNU ld is literally a massively pile of shell scripts generating code with here docs. ld.gold is essentially dead by the way, was always somewhat broken / incomplete and shouldn't be used. LLD is the only way to go for something that works properly now.
there's some shell scripting involved but the bulk of my complaint is architectural, it seems to be implemented in an inefficient to extend way that makes less popular architectures prone to having obscure bugs
i didn't know it about gold. i like the gold link times :/
1
2
Google stopped working it and shifted focus to LLD. LLD is actually intended as a full replacement for the GNU linker, the macOS linker and the Windows linker. It has really good support for Windows too. It had working Windows support before Linux. It's a lot nicer than gold.
2
4
Show replies


