Over the past day or so I've been building things like binutils, gcc, and glibc for a 2.6 kernel I've built on s390. One of the problems I encounter is something minor may go wrong with a build using "rpm -bb" and the only option I have is to fix the problem and start from scratch. I note there's a --short-circuit option but that is only valid for -bc and -bi. Am I missing something obvious?
I don't think you're missing anything; with large packages like glibc, the install phase tends to be somewhat lengthy. Using --short-circuit can save you a *LOT* of time in making sure that your build and install sections are correct, but it won't actually ever write out an RPM file.
But there's an upside to this kind of restriction. This ensures that the RPMs are truly reproducible, and that they didn't require some manual intervention to get them to build properly.
On the slower platforms I've worked on, the process I use is: 1. build using -ba. If it worked, celebrate and exit. 2. when there's problems, use --short-circuit and debug until it passes. 3. Go to 1.
Tetex on MIPS took me something like 18 hours to build, once I got the build running properly. This was a three week project.
I'm reasonably sure there're some less-documented ways to convince RPM to go into the RPM file writing phases when using --short-circuit, this has been a point of controversy for a long time.
Of course, this is all open source, so if you don't like the current behaviour, you can change it. You're not the first person to encounter this, so there may be some existing patches.
But Alan's right, as usual. Try a compiler cache.
- Alex
