[Android General] AlaskaLinuxUser:
Okay, that makes the picture even clearer. So you are upgrading a lineageOS nougat tree to oreo. That is no simple task. Going from pre-oreo to oreo or pie is the most difficult upgrade a developer can do. (In my opinion.) I spent months in an attempt to upgrade the LG G4 from N to O, and then joined a group of incredibly skilled developers (who were far smarter than me), with which it still took another month to complete. And I had been building Android for over 3 years. I don't say that to discourage you, I say that to encourage you that this can be done, but to inform you that this is difficult to do. This thread covers basic android compiling. Essentially helping people build already built material and make small modifications. I would recommend that a project like this be moved to the advanced thread: https://xdaforums.com/android/general/guide-intermediate-to-advanced-custom-t3823927

But I would also recommend that you have a bit of experience under your belt. Can you successfully build the LineageOS Nougat rom? Does it work and function as expected there? :good:

Great work! :highfive: Glad you figured it out.

1. There are a lot of tool chains. Which one is best? Well, it depends on your needs. Generally, I have used the default Android toolchain for most of my builds. The overall gain of another tool chain is usually so small that it isn't worth the effort in my opinion. (Everybody has one.) However, in the past, once I've got a rom/kernel really locked down and working well, and I want to go that extra mile, I have used linaro on my Samsung Galaxy S4 (way back in the day, years ago) and I used ubertc for the LG G4. The benchmarks, however, showed very little gain when using these tool chains, and so you will have to do some experimenting to decide what works best for you.

- Remember, tool chains have different goals. Some are designed to make compiling faster, which saves you time, but does that help the end user? Some are designed to make smaller kernels, but if you are not pressed for space on your device, does it mater? Some are designed to make the kernel more efficient in run time, but does it actually measure out in bench marks? Those are questions for you to answer.

My suggestion for the average developer? Use the stock one that comes with the current version of Android. If you get everything else in your rom/kernel going well, then experiment. Remember, though, that changing chains often is followed by having to edit the kernel source to clear up new warnings and or errors. :good:

2. Good question. Typically, in each build file, it can specify -Werror, which is to turn warnings into errors. So you could go to the offending file and take that out, or run the make command yourself. Some people run breakfast <device> && make -i to ignore errors/warnings, but this is a really bad idea. The developer put those warnings as werror for a reason. It is better to solve the problem, as it will likely not work with that issue.

Great question, and welcome to the group. So, errors. I need a little more background information:

- What device are you building? (Please be specific, as I don't recognize every device code name, due to my limited knowledge.)

- What Rom? AOSP? AOKP? Lineage? Omni?

- Does it have Pie already, and you are building your own Pie (That's great!)? Or is it an Oreo device that you are building Pie for it for the first time?

- Are you following a guide to use Arch Linux to build Android? I typically recommend Ubuntu, as that is what Google tests on when they build Android, but there are many great guides to use Arch.

Also, Pie is very, very new, so there are still a lot of bugs to work out depending on which rom you are using. If you can answer these questions, then perhaps I can give you a hand. :good: