Skip to content

build-gnu.sh: Use MULTICALL=y for faster build time#9236

Closed
oech3 wants to merge 16 commits intouutils:mainfrom
oech3:multicall-gtest
Closed

build-gnu.sh: Use MULTICALL=y for faster build time#9236
oech3 wants to merge 16 commits intouutils:mainfrom
oech3:multicall-gtest

Conversation

@oech3
Copy link
Copy Markdown
Contributor

@oech3 oech3 commented Nov 12, 2025

No description provided.

@github-actions
Copy link
Copy Markdown

GNU testsuite comparison:

GNU test failed: tests/id/context. tests/id/context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/id/no-context. tests/id/no-context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/basic-1. tests/install/basic-1 is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/create-leading. tests/install/create-leading is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/d-slashdot. tests/install/d-slashdot is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/install-C. tests/install/install-C is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/install-C-root. tests/install/install-C-root is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/install-C-selinux. tests/install/install-C-selinux is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/install-Z-selinux. tests/install/install-Z-selinux is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/strip-program. tests/install/strip-program is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/ln/misc. tests/ln/misc is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/misc/invalid-opt. tests/misc/invalid-opt is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/restorecon. tests/mkdir/restorecon is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/selinux. tests/mkdir/selinux is passing on 'main'. Maybe you have to rebase?
Skip an intermittent issue tests/misc/usage_vs_getopt (fails in this run but passes in the 'main' branch)
Skipping an intermittent issue tests/tail/overlay-headers (passes in this run but fails in the 'main' branch)
Note: The gnu test tests/chcon/chcon is now being skipped but was previously passing.
Note: The gnu test tests/cp/no-ctx is now being skipped but was previously passing.
Note: The gnu test tests/ls/selinux is now being skipped but was previously passing.
Note: The gnu test tests/misc/selinux is now being skipped but was previously passing.
Note: The gnu test tests/misc/xattr is now being skipped but was previously passing.

@github-actions
Copy link
Copy Markdown

GNU testsuite comparison:

GNU test failed: tests/id/context. tests/id/context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/id/no-context. tests/id/no-context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/basic-1. tests/install/basic-1 is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/install-C-selinux. tests/install/install-C-selinux is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/restorecon. tests/mkdir/restorecon is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/selinux. tests/mkdir/selinux is passing on 'main'. Maybe you have to rebase?
Skipping an intermittent issue tests/tail/overlay-headers (passes in this run but fails in the 'main' branch)
Note: The gnu test tests/chcon/chcon is now being skipped but was previously passing.
Note: The gnu test tests/cp/no-ctx is now being skipped but was previously passing.
Note: The gnu test tests/ls/selinux is now being skipped but was previously passing.
Note: The gnu test tests/misc/selinux is now being skipped but was previously passing.

@github-actions
Copy link
Copy Markdown

GNU testsuite comparison:

GNU test failed: tests/id/context. tests/id/context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/id/no-context. tests/id/no-context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/basic-1. tests/install/basic-1 is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/install-C-selinux. tests/install/install-C-selinux is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/restorecon. tests/mkdir/restorecon is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/selinux. tests/mkdir/selinux is passing on 'main'. Maybe you have to rebase?
Skip an intermittent issue tests/tail/overlay-headers (fails in this run but passes in the 'main' branch)
Note: The gnu test tests/chcon/chcon is now being skipped but was previously passing.
Note: The gnu test tests/cp/no-ctx is now being skipped but was previously passing.
Note: The gnu test tests/ls/selinux is now being skipped but was previously passing.
Note: The gnu test tests/misc/selinux is now being skipped but was previously passing.

@github-actions
Copy link
Copy Markdown

GNU testsuite comparison:

GNU test failed: tests/id/context. tests/id/context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/id/no-context. tests/id/no-context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/basic-1. tests/install/basic-1 is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/install-C-selinux. tests/install/install-C-selinux is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/restorecon. tests/mkdir/restorecon is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/selinux. tests/mkdir/selinux is passing on 'main'. Maybe you have to rebase?
Skip an intermittent issue tests/misc/tee (fails in this run but passes in the 'main' branch)
Note: The gnu test tests/chcon/chcon is now being skipped but was previously passing.
Note: The gnu test tests/cp/no-ctx is now being skipped but was previously passing.
Note: The gnu test tests/ls/selinux is now being skipped but was previously passing.
Note: The gnu test tests/misc/selinux is now being skipped but was previously passing.

@oech3
Copy link
Copy Markdown
Contributor Author

oech3 commented Nov 12, 2025

We previously saw multicall binary specific issues. But it was symlink specific. This PR is using hardlinks. Why broken?
@naoNao89

@github-actions
Copy link
Copy Markdown

GNU testsuite comparison:

GNU test failed: tests/id/context. tests/id/context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/id/no-context. tests/id/no-context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/basic-1. tests/install/basic-1 is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/install-C-selinux. tests/install/install-C-selinux is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/restorecon. tests/mkdir/restorecon is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/selinux. tests/mkdir/selinux is passing on 'main'. Maybe you have to rebase?
Skip an intermittent issue tests/misc/tee (fails in this run but passes in the 'main' branch)
Skip an intermittent issue tests/tail/overlay-headers (fails in this run but passes in the 'main' branch)
Note: The gnu test tests/chcon/chcon is now being skipped but was previously passing.
Note: The gnu test tests/cp/no-ctx is now being skipped but was previously passing.
Note: The gnu test tests/ls/selinux is now being skipped but was previously passing.
Note: The gnu test tests/misc/selinux is now being skipped but was previously passing.

@github-actions
Copy link
Copy Markdown

GNU testsuite comparison:

GNU test failed: tests/id/context. tests/id/context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/id/no-context. tests/id/no-context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/basic-1. tests/install/basic-1 is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/create-leading. tests/install/create-leading is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/d-slashdot. tests/install/d-slashdot is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/install-C. tests/install/install-C is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/install-C-root. tests/install/install-C-root is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/install-C-selinux. tests/install/install-C-selinux is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/install-Z-selinux. tests/install/install-Z-selinux is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/install/strip-program. tests/install/strip-program is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/ln/misc. tests/ln/misc is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/misc/invalid-opt. tests/misc/invalid-opt is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/restorecon. tests/mkdir/restorecon is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/selinux. tests/mkdir/selinux is passing on 'main'. Maybe you have to rebase?
Skip an intermittent issue tests/misc/usage_vs_getopt (fails in this run but passes in the 'main' branch)
Skip an intermittent issue tests/tail/overlay-headers (fails in this run but passes in the 'main' branch)
Note: The gnu test tests/chcon/chcon is now being skipped but was previously passing.
Note: The gnu test tests/cp/no-ctx is now being skipped but was previously passing.
Note: The gnu test tests/ls/selinux is now being skipped but was previously passing.
Note: The gnu test tests/misc/selinux is now being skipped but was previously passing.
Note: The gnu test tests/misc/xattr is now being skipped but was previously passing.

@codspeed-hq
Copy link
Copy Markdown

codspeed-hq Bot commented Nov 12, 2025

CodSpeed Performance Report

Merging #9236 will not alter performance

Comparing oech3:multicall-gtest (61a1874) with main (ceeacf4)

Summary

✅ 123 untouched
⏩ 5 skipped1

Footnotes

  1. 5 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@oech3 oech3 marked this pull request as draft November 12, 2025 16:07
@oech3 oech3 marked this pull request as ready for review November 12, 2025 16:07
@github-actions
Copy link
Copy Markdown

GNU testsuite comparison:

GNU test failed: tests/id/context. tests/id/context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/id/no-context. tests/id/no-context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/restorecon. tests/mkdir/restorecon is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/selinux. tests/mkdir/selinux is passing on 'main'. Maybe you have to rebase?
Skipping an intermittent issue tests/misc/tee (passes in this run but fails in the 'main' branch)
Note: The gnu test tests/chcon/chcon is now being skipped but was previously passing.
Note: The gnu test tests/cp/no-ctx is now being skipped but was previously passing.
Note: The gnu test tests/ls/selinux is now being skipped but was previously passing.
Note: The gnu test tests/misc/selinux is now being skipped but was previously passing.

@oech3
Copy link
Copy Markdown
Contributor Author

oech3 commented Nov 12, 2025

Copies (instead of hardlinks) does not work too. Strange...

@naoNao89
Copy link
Copy Markdown
Contributor

Copied binaries inherit wrong SELinux contexts. Try relabeling after copying:

chcon -t bin_t "${UU_BUILD_DIR}/${binary}" 2>/dev/null || true

@oech3
Copy link
Copy Markdown
Contributor Author

oech3 commented Nov 12, 2025

Are labels not provided by test tools after copying automatically?

@naoNao89
Copy link
Copy Markdown
Contributor

No. When using cp --remove-destination, the new file gets the destination directory's default context, not the original file's context. SELinux doesn't auto-relabel copied binaries.

Fix: Add restorecon after copying to restore proper contexts based on system policy rules. This will give each binary (install, id, mkdir, etc.) the correct bin_t context that SELinux policies expect.

ref:

@github-actions
Copy link
Copy Markdown

GNU testsuite comparison:

GNU test failed: tests/id/context. tests/id/context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/id/no-context. tests/id/no-context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/restorecon. tests/mkdir/restorecon is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/selinux. tests/mkdir/selinux is passing on 'main'. Maybe you have to rebase?
Skipping an intermittent issue tests/misc/tee (passes in this run but fails in the 'main' branch)
Skipping an intermittent issue tests/tail/overlay-headers (passes in this run but fails in the 'main' branch)
Note: The gnu test tests/chcon/chcon is now being skipped but was previously passing.
Note: The gnu test tests/cp/no-ctx is now being skipped but was previously passing.
Note: The gnu test tests/ls/selinux is now being skipped but was previously passing.
Note: The gnu test tests/misc/selinux is now being skipped but was previously passing.

@oech3
Copy link
Copy Markdown
Contributor Author

oech3 commented Nov 12, 2025

Would you push suggestion button? Thankyou.

Comment thread util/build-gnu.sh
Co-authored-by: Cả thế giới là Rust <90588855+naoNao89@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown

GNU testsuite comparison:

GNU test failed: tests/id/context. tests/id/context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/id/no-context. tests/id/no-context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/restorecon. tests/mkdir/restorecon is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/selinux. tests/mkdir/selinux is passing on 'main'. Maybe you have to rebase?
Skip an intermittent issue tests/timeout/timeout (fails in this run but passes in the 'main' branch)
Skipping an intermittent issue tests/misc/tee (passes in this run but fails in the 'main' branch)
Note: The gnu test tests/chcon/chcon is now being skipped but was previously passing.
Note: The gnu test tests/cp/no-ctx is now being skipped but was previously passing.
Note: The gnu test tests/ls/selinux is now being skipped but was previously passing.
Note: The gnu test tests/misc/selinux is now being skipped but was previously passing.

@github-actions
Copy link
Copy Markdown

GNU testsuite comparison:

GNU test failed: tests/id/context. tests/id/context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/id/no-context. tests/id/no-context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/restorecon. tests/mkdir/restorecon is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/selinux. tests/mkdir/selinux is passing on 'main'. Maybe you have to rebase?
Skipping an intermittent issue tests/misc/tee (passes in this run but fails in the 'main' branch)
Note: The gnu test tests/chcon/chcon is now being skipped but was previously passing.
Note: The gnu test tests/cp/no-ctx is now being skipped but was previously passing.
Note: The gnu test tests/ls/selinux is now being skipped but was previously passing.
Note: The gnu test tests/misc/selinux is now being skipped but was previously passing.

@oech3
Copy link
Copy Markdown
Contributor Author

oech3 commented Nov 12, 2025

Hmm.. still failing. Saving 10 min+ is large advantage. I don't want giveup.

@github-actions
Copy link
Copy Markdown

GNU testsuite comparison:

GNU test failed: tests/id/context. tests/id/context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/id/no-context. tests/id/no-context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/restorecon. tests/mkdir/restorecon is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/selinux. tests/mkdir/selinux is passing on 'main'. Maybe you have to rebase?
Note: The gnu test tests/chcon/chcon is now being skipped but was previously passing.
Note: The gnu test tests/cp/no-ctx is now being skipped but was previously passing.
Note: The gnu test tests/ls/selinux is now being skipped but was previously passing.
Note: The gnu test tests/misc/selinux is now being skipped but was previously passing.

@naoNao89
Copy link
Copy Markdown
Contributor

- name: Build with SELinux support
  run: |
    SELINUX_ENABLED=1 util/build-gnu.sh

@oech3
Copy link
Copy Markdown
Contributor Author

oech3 commented Nov 13, 2025

It is already done. No?: https://github.com/oech3/coreutils/blob/b3997197e117cf6b9061e8eac58209871cfd6074/.github/workflows/GnuTests.yml#L247

@github-actions
Copy link
Copy Markdown

GNU testsuite comparison:

GNU test failed: tests/id/context. tests/id/context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/id/no-context. tests/id/no-context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/restorecon. tests/mkdir/restorecon is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/selinux. tests/mkdir/selinux is passing on 'main'. Maybe you have to rebase?
Skip an intermittent issue tests/timeout/timeout (fails in this run but passes in the 'main' branch)
Skipping an intermittent issue tests/misc/tee (passes in this run but fails in the 'main' branch)
Note: The gnu test tests/chcon/chcon is now being skipped but was previously passing.
Note: The gnu test tests/cp/no-ctx is now being skipped but was previously passing.
Note: The gnu test tests/ls/selinux is now being skipped but was previously passing.
Note: The gnu test tests/misc/selinux is now being skipped but was previously passing.

@github-actions
Copy link
Copy Markdown

GNU testsuite comparison:

GNU test failed: tests/id/context. tests/id/context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/id/no-context. tests/id/no-context is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/restorecon. tests/mkdir/restorecon is passing on 'main'. Maybe you have to rebase?
GNU test failed: tests/mkdir/selinux. tests/mkdir/selinux is passing on 'main'. Maybe you have to rebase?
Skip an intermittent issue tests/tail/overlay-headers (fails in this run but passes in the 'main' branch)
Note: The gnu test tests/chcon/chcon is now being skipped but was previously passing.
Note: The gnu test tests/cp/no-ctx is now being skipped but was previously passing.
Note: The gnu test tests/ls/selinux is now being skipped but was previously passing.
Note: The gnu test tests/misc/selinux is now being skipped but was previously passing.

@naoNao89
Copy link
Copy Markdown
Contributor

gud luck :))))

@oech3
Copy link
Copy Markdown
Contributor Author

oech3 commented Nov 13, 2025

@Ecordonnier Can you fix this?

@oech3 oech3 marked this pull request as draft November 14, 2025 15:30
@oech3 oech3 closed this Nov 15, 2025
@oech3 oech3 deleted the multicall-gtest branch November 15, 2025 21:11
@oech3
Copy link
Copy Markdown
Contributor Author

oech3 commented Nov 15, 2025

Sad that failed to omit 10 min+. But I can't.

@Ecordonnier
Copy link
Copy Markdown
Collaborator

@Ecordonnier Can you fix this?

Sorry, due to a technical issue I was not receiving notifications per email. This has been fixed now. What do you want me to fix?

@oech3
Copy link
Copy Markdown
Contributor Author

oech3 commented Nov 24, 2025 via email

@Ecordonnier
Copy link
Copy Markdown
Collaborator

What do you want me to fix?
Copies of multicall binary did not work on GNU test suite if SELINUX_ENABLED=1. Is this related with AppArmor things too?

I don't know. I haven't worked on this part.

@oech3
Copy link
Copy Markdown
Contributor Author

oech3 commented Nov 25, 2025

OK. Thankyou.

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.

3 participants