Skip to content
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

Pair emake -j1 with --shuffle=none #364

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Flowdalic
Copy link
Member

Thanks to trofi, GNU make 4.4 gained the --shuffle option to detect unsound Makefiles [1]. Gentoo's tinderboxes use --shuffle to find and report such issues. However, they also would report broken Makefiles where the ebuild author knew that the Makefile is broken, and hence added -j1 to the make invocation [2]..

To stop Tinderboxes from creating noise by reporting known issues, this change devmanual to suggest pairing -j1 with --shuffle=none for the compile case. Devmanual also suggest to consider -j1 for resource intensive testsuites, but this does not require --shuffle.

1: https://trofi.github.io/posts/249-an-update-on-make-shuffle.html
2: https://bugs.gentoo.org/947303#c10
Signed-off-by: Florian Schmaus [email protected]

Thanks to trofi, GNU make 4.4 gained the --shuffle option to detect
unsound Makefiles [1]. Gentoo's tinderboxes use --shuffle to find and
report such issues. However, they also would report broken Makefiles
where the ebuild author knew that the Makefile is broken, and hence
added -j1 to the make invocation [2]..

To stop Tinderboxes from creating noise by reporting known issues,
this change devmanual to suggest pairing -j1 with --shuffle=none for
the *compile* case. Devmanual also suggest to consider -j1 for
resource intensive testsuites, but this does not require --shuffle.

1: https://trofi.github.io/posts/249-an-update-on-make-shuffle.html
2: https://bugs.gentoo.org/947303#c10
Signed-off-by: Florian Schmaus <[email protected]>
@ulm
Copy link
Member

ulm commented Jan 3, 2025

This looks like an option that has a special and very narrow purpose.

Maybe this should be fixed on the tinderbox side instead?

@Flowdalic
Copy link
Member Author

Maybe this should be fixed on the tinderbox side instead?

I would have hoped this as well and this was briefly discussed in #-dev and #-tinderbox, but I guess its not that easy, even though probably possible. Tinderboxes would need to hook into the make invocation and determine if -j1 is active.

@ulm
Copy link
Member

ulm commented Jan 3, 2025

Maybe this should be fixed on the tinderbox side instead?

I would have hoped this as well and this was briefly discussed in #-dev and #-tinderbox, but I guess its not that easy, even though probably possible. Tinderboxes would need to hook into the make invocation and determine if -j1 is active.

Still sounds better to me than modifying many ebuilds. Also, what about make variants that don't support the option? https://trofi.github.io/posts/249-an-update-on-make-shuffle.html mentions passing the option via the GNUMAKEFLAGS variable rather than the command line. Would something like GNUMAKEFLAGS="${GNUMAKEFLAGS} --shuffle=none" emake -j1 work?

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.

2 participants