I said: --- While trying the different 'platforms' (kernels), the build system seems a bit unoptimized. To me, rebuilding libports, ports, gems in each different kernels don't make much sense. I don't expect them to apply patch platform-specifics, only Genode-specifics. So it would make sense to specify two directory on create_builddir: one common for all platforms, and one for the platform. --- Norman replied: That would be cool but it is not possible.
Even though those libraries look like being the same for each base platform, they are different. At compile time, those libraries ultimately depend on platform-specific header files (e.g., the kernel's syscall bindings). So a library built for one kernel will typically not work on another kernel because it would try to call kernel functions in wrong ways. In theory, all those kernel-specific things could be encapsulated in a single kernel-specific library with an interface that hides all kernel details. But in practice, this would be extremely difficult and the extra indirection needed for that would certainly imply runtime overheads. In my opinion, the little added value of such a feature does not justify opening a big can of problems. --- Strange. You made me think if I expect libc to be differently compiled for different platforms. I concluded that I don't expect so.
In fact I expect everything running above Core, to not be platform-specific, including device drivers. Sure, we don't need to build some drivers if the architecture does not have the coresponing hardware, but that does not means it would be compiled differently.
And I definitively *do not* expect libraries to be compiled with specific kernel headers file. I expect libc, device drivers, to call Core the same way, and Core to be compiled in a specific manner for each platform.