Re: renamed rumprun toolchain available

  • From: Antti Kantee <pooka@xxxxxx>
  • To: rumpkernel-users@xxxxxxxxxxxxx
  • Date: Fri, 03 Jul 2015 15:06:36 +0000

On 03/07/15 14:45, Martin Lucina wrote:

On Friday, 03.07.2015 at 11:10, Antti Kantee wrote:
On 03/07/15 10:01, Martin Lucina wrote:
Given that configure will just work out CC et al correctly now, do you mind
if I remove the -configure, -make and -gmake wrappers?

-configure, sure, but we can't assume that everything on the planet
uses gnu autoconf, and therefore the case for -{g,}make remains.

I guess so, altough -{g,}make sort of send the message "you should always
use that instead of just make" which is not correct. Anyhow, let's see, if
it confuses people we can remove it later.

Why is it not correct?

Because the -{g,}make wrapper takes a wild guess and assumes that setting
CC= and CXX= is sufficient for a Makefile-based build to work.

It'll only work for Makefiles that honour CC and CXX. I've seen people
hardcode "gcc" in rules.

Software that hardcodes "gcc" is not cross-compilable no matter what kind of wrappers we don't provide. We can't use "won't work with incompatible software so let's not do it" as a design guideline. If the problem with that software would be solved by not having a make wrapper, I'd count it as an argument.

What about AS? CPP? Again, what if they're hardcoded?

They should (obviously) be added as well. Again, incompatible software.

It'll be actively harmful if you run it on a Makefile that was previously
(correctly) generated with ./configure --host=, you're using libtool and
your compilers don't match up. (BTDT, you get the obscure "libtool cannot
somethingorother-with-tags error)

What does "compilers don't match up" mean? You're building with a different compiler than what you configured with? That's like saying rm shouldn't exist because using it the wrong way causes unexpected results.

Does the build actually fail if you use the correct make wrapper? It sounds extremely weird if it does, because then just having "export CC=..." would also cause broken builds.

So, I think it's a case of "too much magic" with a "not good enough"
result. If whatever you're building is using a handmade Makefile, then you
should probably go read it and figure out what needs to be set explicitly,
which you can do in a "packaging" Makefile that calls the real one.

So when you do read it and see that you do need to set the full toolchain as environment variables, do you then type all the values in by hand?

The other option is to provide a snippet that you can source for the correct values, but I'm not a big fan of anything which leaves things hanging in the env.

Other related posts: