Rockbox Development > Starting Development and Compiling

Can't reproduce v3.15 clip zip build


Hey, I've been using rockbox for years, and it's been working pretty good, so thanks for all the work.

I am currently running the sansa clip zip port, and ran into a crash bug in the official 3.15 builds. In short playing a specific ".asf" file would result in a divide by zero exception and crash.

I have some embedded experience, and decided to finally go ahead and debug this problem. I started by building rockbox for my player from the top-of-tree, and trying to reproduce the bug, but the file played fine and did not crash the player. I then checked out the commit 54e7eaf8fc0bf6a2a6c413d7f8043fa386eb483f
( )
which looks like what 3.15 was built from, and built that. and again the crash bug did not happen. I've downloaded the "z7" of the official build that included the source code, and confirmed that it seems to match this commit.

I have 3 of the target devices with one running the official 3.15 release, and one which is running my personal build of the 3.15 code with an override of the VERSION environment variable to confirm that the code is what I intended to build.

So it seems to me that the official 3.15 build for sansa clip zip does not match those built from the associated commit today. Is there a procedure to reproduce the original build bit-for-bit?

Perhaps there has been a compiler change? If this is down to a new toolchain fixing a code generation bug, then perhaps it would be good to release a new build from the new tool chain as a way fix this bug?

The 3.15 branch is here:

However, ASF decoding wasn't touched in the year before or after 3.15 branched, so probably the issue you're having reproducing your crash is not related to the exact git checkout you use.  It is possible tool chain updates fixed some random crash, but it sounds like the error you're having may have been fixed here:

You could try decoding your file in the simulator while printing the id3->length field to see if that was the issue. 

Thanks for the response.

I did try using the simulator, but it also did not crash, and I wasn't sure how accurate it was, so I switched to actual hardware.

I have confirmed that the commit I was looking at ( 54e7eaf8fc0bf6a2a6c413d7f8043fa386eb483f) is equal to the next-to-last commit in that branch, aside from the SHA-1. So even with the code from before the commit you referenced (which may have fixed a possibly different divide by zero bug), the official 3.15 code does not crash, at least when built with the current tool chain, while the official 3.15 binary release does crash.

So this is either a tool chain difference, or there was some mistake in the original release process, IMO. Or maybe I have made some other mistake. If there is an easy way to reproduce the original build that would be nice, otherwise I think I'll just run my local build, and move on.


[0] Message Index

Go to full version