4 ms·
But Android is still based on Linux and you need GCC to compile the kernel (yeah I know, other compilers can do it too, but GCC is in some kind of symbiosis wit
by protomikron 8y ago
But Android is still based on Linux and you need GCC to compile the kernel (yeah I know, other compilers can do it too, but GCC is in some kind of symbiosis with Linux, which is a good thing I guess).
I know about the Fuchsia project, but so-far it can't compete with Linux or other established OSes.
- pertymcpert 8y agoWhy is gcc dependency a good thing for the kernel?
- saagarjha 8y agoIt keeps both GPL?
- sigjuice 8y agoHow?
- onli 8y agoYou're right to ask, it does not. In the FOSS world the license of the compiler has nothing to do with the license of the compiled software, and that also goes for the GPL 3. Probably some leftover thinking from proprietary products that tried to apply license restrictions on the compiled output.
- pjmlp 8y agoActually GCC has an explicit clause that GPL doesn't apply to the generated binary, otherwise you could not link to the C runtime library "GCC Runtime Library Exception" https://www.gnu.org/licenses/gcc-exception-3.1.en.html https://www.gnu.org/licenses/gcc-exception-3.1.en.html This document was also the inspiration for the Classpath exception in OpenJDK.
- pertymcpert 8y agoRight but that's because the compiler is emitting code into the binary that exists verbatim in the GCC source.
- pjmlp 8y agoWhich makes the assertion false, otherwise there wouldn't be a need for the "GCC Runtime Library Exception". > "In the FOSS world the license of the compiler has nothing to do with the license of the compiled software".
- onli 8y agoThere is no other FOSS compiler that influences the license of the compiled software, afaik. So I think that statement holds up anyway.
- pjmlp 8y agoNo you don't, Android has removed all dependencies on GCC with Treble changes, upstream just did not took all the changes done by Google. Quote: "Android 8.0 and higher support only Clang/LLVM for building the Android platform. Join the android-llvm group to pose questions and get help. Report NDK/compiler issues at the NDK GitHub. For the Native Development Kit (NDK) and legacy kernels, GCC 4.9 included in the AOSP master branch (under prebuilts/) may also be used." From https://source.android.com/setup/build/requirements#software-requirements https://source.android.com/setup/build/requirements#software... "Removed GCC and gnustl/stlport. Added lld." From https://android.googlesource.com/platform/ndk/+/master/docs/Roadmap.md#ndk-r19 https://android.googlesource.com/platform/ndk/+/master/docs/... There are also a couple of Linux/Clang Conferences where Google goes through the kernel and clang changes they have done to accomplish it. Android might have the Linux kernel under the hood, but it isn't Linux as many know it.
- snvzz 8y ago>Android might have the Linux kernel under the hood, but it isn't Linux as many know it. Not like it matters. They're replacing even that. See Fuchsia. And that's a good thing: Fuchsia seems to have a better design (microkernel, multiserver).