-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Nondeterminism in nesc output #36
Comments
can you please be more specific? what exactly is non-deterministic? |
The function declaration arguments seem to have names generated from program pointers to memory. Such pointers are usually nondeterministic because of things like ASLR. But anyway, the simplest way to reproduce the problem is to run the command |
what is ASLR? On Tue, Dec 22, 2015 at 1:29 PM, Steven Stewart-Gallus <
Eric B. Decker |
ASLR is short for Address Space Layout Randomization and is a security feature in modern operating systems. When the library code for |
okay. thanks for the def so why does any of this matter? On Tue, Dec 22, 2015 at 8:19 PM, Steven Stewart-Gallus <
Eric B. Decker |
Reproducible builds have a number of uses: see https://reproducible-builds.org/ I personally would like reproducible builds so that if I decide to distribute partially compiled code (nesc code translated to C code but the C code not compiled to object code) that someone else could independently compile and create the C code to be sure I wasn't pulling any funny business. |
Steven, I'd suggest contacting David Gay (dgay42), since he wrote 99% of the nesC compiler. He can at the very least point you at the bit of code that generates those argument names so you can suggest something more deterministic. |
There are two cases.
When function declarations do not have argument names then nondeterministic names will be generated for them like
typedef int (*__compar_fn_t)(const void *arg_0x2aeff645d6e0, const void *arg_0x2aeff645d9b8);
.When templated instances are used then instance parameters for functions can also have nondeterministic names.
This is bad for reproducible builds although I think as of now it can only really effect debug information.
The text was updated successfully, but these errors were encountered: