make 3.82 vs the world 3


After upgrading to fedora 14 at work I did some builds against various kernels, u-boot, buildroot and toolchains we use.  I ran into an interesting problem.

make[2]: Entering directory
`/home/mjhammel/src/cei/sysbuild/bld/buildroot-2010.05.xcc/output/toolchain/linux-2.6.32.14′
/home/mjhammel/src/cei/sysbuild/bld/buildroot-2010.05.xcc/output/toolchain/linux-2.6.32.14/arch/powerpc/Makefile:178: *** mixed implicit and normal rules.  Stop.

?A bit of googling shows that make 3.82 changed in a way that makes kernel compiles break if the kernel source has not been patched.  You can patch the kernel (or other code) or you can punt like I did and backtrack to make 3.81 since there is no switch to 3.82 to disable this function.  I had to ask on the Boulder LUG mailing list to find out how to downgrade, since I'd not done previously.  In Fedora, the way to do this is as follows:

yum –releasever=13 downgrade make

After that you'll need to add:

exclude=make

to the [updates] section of /etc/yum.repos.d/fedora-updates.repo.  However, when I did the downgrade like this I got an error message:

The gpg keys listed for the “Fedora 13 – x86_64 – Updates” repository are already installed but they are not correct for this package.  Check that the correct key URLs are configured for this repository.

The gpg keys are part of the fedora-release packages, which are tied to the release version, so it would be a bit tricky to import them.  The way around this is to tell the yum operation to ignore the GPG check, like so:

yum –nogpgcheck –releasever=13 downgrade make

More information on importing GPG keys can be found at the fedora project.

update: 2010-11-29

I noticed today when I tried to do a yum update that the make package was not excluded.  A little googling showed that a better place to place the exclude=make line is in the /etc/yum.conf file, as the last line in the [main] section.  I did this (and removed it from the /etc/yum.repos.d/fedora-updates.repo file) and the update proceeded without updating the make page.


Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

3 thoughts on “make 3.82 vs the world

  • Bob Cochran

    Hi, I have Fedora 14 also and wonder if you filed a bug for this condition? Thank you for posting this solution, because I too want to compile BeagleBoard images.

  • mjhammel Post author

    No, I didn’t file a bug report with the Fedora project because I don’t really see it as a bug. See, Fedora is a bleeding edge distro anyway and all this make change does is expose some incorrect handling within Makefiles. Well, incorrect is subjective in this case. But in any case, I just thought I would live with it for now. Downgrading make doesn’t seem to break anything. The kernel and other projects will run into this over time and begin to fix their code.

    You could file the bug if you’d like to see how the Fedora maintainer for make wants to handle it. As to filing it with the make development team, something tells me this was intended though I would have preferred it be in 3.9 vs a minor release update. The least they could do is make it a configurable option to allow for slow migration.

    Good luck with your BeagleBoard images!