AMU dynamic dependencies highly unreliable?
Jeffrey Lee (213) 6048 posts |
I’m encountering some problems with AMU 5.27 discarding dynamic dependencies from makefiles. This seems to be such a major and unpredictable issue that I’m not sure why I haven’t had a problem with it before now, or how the problem hasn’t been picked up by anyone else yet. Or maybe it’s just some quirk with my setup. While working on the OMAP3 HAL, I discovered that one of the files (o.Interrupts) wasn’t being rebuilt when it should have been because its dependency information was missing from the makefile. I tried running objasm manually and verified that the dependencies were being placed in the !Depend file – but for some reason AMU wasn’t placing them in the makefile. After some experimentation I’ve come to the conclusion that AMU is completely random in which dependencies it adds to makefiles:
Similar results are observed if I compile the code via !Builder. Help?!? |
Ben Avison (25) 445 posts |
Yes, there is a bug. I spotted it myself just a few weeks ago, it’s one of those “how the hell did that ever work” bugs. If a file compiles very quickly (under about a second) then there’s a chance its dependencies will get missed out of the makefile, and that chance increases as the compile time gets shorter. It’s the result of trying to squeeze a 5-byte RISC OS time into a cross-platform 4-byte value (since all the Norcroft tools were originally written to be cross-platform). It’s fixed in AMU 5.28, which will be in the next C tools release along with things like cc -s outputting ARMv6 instructions properly, and everything being rebuilt to not use unaligned loads. Hopefully this release will be made available soon, we’re working on it. |