Skip to content

Fix/larger builds#4

Open
jdanielsson wants to merge 12 commits intowenbinf:masterfrom
jdanielsson:fix/larger_builds
Open

Fix/larger builds#4
jdanielsson wants to merge 12 commits intowenbinf:masterfrom
jdanielsson:fix/larger_builds

Conversation

@jdanielsson
Copy link

When working on larger projects with build times in the hours it is nice to have some ways to avoid re-building the code and avoid re-processing the logs. These commits add some command line options that are consumed by vizmake.py before they reach make. These options can tell vizmake.py to not re-build or not to re-process.

A --logdir option is also added to be able to tell vizmake where to store logs. Larger projects can generate gigabytes of logs and sometimes the /tmp partition can't handle that.

When adding the logdir option we also need to make sure that make has buffers large enough to handle a path passed.

Also in this pull-request are some fixes for issues I ran into while trying this on a large build.

Thanks
Jonas

The logdir option allows for specifying where to look for logs to
process instead of always looking and creating in /tmp.
It is possible for argv to be NULL at this point, it is
guarded against in other places in this function. Make sure we
guard at this point as well.
When we allow users to set the log directory we need to allocate more
room for the logs.
Using strncat is prone to buffer overflow errors.
For long unsigned we should use "%lu" not "%d".
In order to conform to Make's coding style.
The eval function in make can be called explicit for
an $(eval) function. This can occur outside of a
[START|END] EVAL MAKEFILE and we can't handle that.
When analyzing a big project it's nice to be able to skip rebuilding
and instead process the logs that are already there.
Sending all logs as arguments to system('rm') risks failing
with 'too many arguments'.
To avoid forking to a new process and to be sure that we retain
the permissions of the file.
Add a commandline option to determine where to generate the
visualization pages to and start the webserver from.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant