Your Makefile has been rebuilt.
Yes, I’ve been butt-ass stupid. But at least you get to hear about it. I don’t worry about admitting my mistakes.
I’ve been trying to track down the cause of a build world problem for a couple of days. I’ve been suspecting hardware errors, -stable errors, etc. I have swapped more ram sticks in and out of this box than you’ve had installs. I didn’t find any solutions on google…
Here is the build error I was encountering:
Writing Makefile for DynaLoader ==> Your Makefile has been rebuilt. <== ==> Please rerun the make command. <== false *** Error code 1 Stop in /usr/obj/usr/src/gnu/usr.bin/perl/perl/ext/DynaLoader. *** Error code 1 Stop in /usr/src/gnu/usr.bin/perl/perl. *** Error code 1 Stop in /usr/src/gnu/usr.bin/perl. *** Error code 1 Stop in /usr/src/gnu/usr.bin. *** Error code 1 Stop in /usr/src/gnu. *** Error code 1 Stop in /usr/src. *** Error code 1 Stop in /usr/src. *** Error code 1 Stop in /usr/src.
A slightly larger log is available here (8KB).
The failed solutions
This box had had problems for about a week. It was a brand new box with 4.4-STABLE on it. It had successfully built world, installed XFree86-4, and been used for some time. Granted, the box did fall over when trying trying to export the slides from Star Office. But I put that down to a buggy Star Office, not X, and not FreeBSD. Then I bought a second box, which would not build world. It started coring, sig 11, etc. That is a classic sign of bad RAM. I was directed to Memtest86 - A Stand-alone Memory Diagnostic. This neat little product will install from either windows or *nix. I actually downloaded the version installable from Windows and DOS. It fits on a floppy. You just boot from it and away it goes. Very nice!
MemTest86 consistently found problems with one stick of ram. So I exchanged that with my local store, and tried again. It was fine. But now the box I had had for some started giving memory failures. Intermittently. And then it started failing build world. It would build with 128MB but not with 256MB (either 1 stick or two sticks). And it didn't matter what memory slots I used. It would fail with 256MB of RAM. That was very suspect. After consulting with the shop, they agreed to replace the motherboard. That's when I started getting the errors which prompted this article.
Once the Writing Makefile for DynaLoader errors started to occur, I started to ask around on IRC. Kris figured it was hardware problems. He has seen that error before, and it was hardware. I was perplexed. Two bad motherboards in a row? It was possible. So I tried swapping the memory around. I had three sticks (2x128MB and 1x256MB) so I started using all combinations of those. I ran out of options. The build failed repeatedly.
mux started me looking at times on files etc. He suspected that the access time was somehow screwed up. Well, he was right. I started looking at the access times for the files which the Makefile was looking at. We found this:
-rw-r--r-- 1 root wheel 133556 Jan 18 18:38:37 2000 Config.pm
-rw-r--r-- 1 root wheel 67988 Jan 18 18:38:36 2000 config.h
Yeah, OK, the times match up. That's about when the build world stopped... Then I checked the build log file which was created using my build world script:
# ls -lt | head /usr/tmp
-rw-r--r-- 1 root wheel 9405257 Jan 18 2000 bw.2000.01.18.17.18.22.log
That's when the light bulb went on. 2000? The date is wrong! DOH!
After a short discussion with mux, we decided to set the time on the box, and start the build again.
Please, if you came here with the same problem, Post a comment below so we know if the problem is solved the same way. Thanks.