'Why Android kernel compilation needs both GCC and Clang?

Every tutorial I find about Android Kernel compilation (like this: https://gist.github.com/P1N2O/b9b2604c58aa4d7486e2fc0d327d23dc) does things like this:

make O=out ARCH=arm64 <defconfig>

PATH="<path to clang folder>/bin:<path to gcc folder>/bin:${PATH}" \
make -j$(nproc --all) O=out \
                      ARCH=arm64 \
                      CC=clang \
                      CLANG_TRIPLE=aarch64-linux-gnu- \
                      CROSS_COMPILE=aarch64-linux-android-

where CLANG_TRIPLE are things from GCC's bin folder. Why is GCC still needed? By the way, what does CLANG_TRIPLE and CROSS_COMPILE mean?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source