Skip to content

Publish individual bins for Linux-arm64 with regression test for cross-build#10606

Closed
oech3 wants to merge 1 commit intouutils:mainfrom
oech3:pubarm
Closed

Publish individual bins for Linux-arm64 with regression test for cross-build#10606
oech3 wants to merge 1 commit intouutils:mainfrom
oech3:pubarm

Conversation

@oech3
Copy link
Contributor

@oech3 oech3 commented Jan 31, 2026

@github-actions
Copy link

GNU testsuite comparison:

Skipping an intermittent issue tests/shuf/shuf-reservoir (passes in this run but fails in the 'main' branch)
Skipping an intermittent issue tests/sort/sort-stale-thread-mem (passes in this run but fails in the 'main' branch)

@oech3

This comment was marked as resolved.

@Ecordonnier
Copy link
Collaborator

@oech3 I'll take a look this weekend. I have no time today.

@oech3
Copy link
Contributor Author

oech3 commented Feb 5, 2026

ok. thankyou

@oech3 oech3 force-pushed the pubarm branch 2 times, most recently from 9742559 to 8cfa4ba Compare February 6, 2026 06:55
@github-actions
Copy link

github-actions bot commented Feb 6, 2026

GNU testsuite comparison:

Skipping an intermittent issue tests/misc/usage_vs_getopt (passes in this run but fails in the 'main' branch)
Skipping an intermittent issue tests/shuf/shuf-reservoir (passes in this run but fails in the 'main' branch)
Skipping an intermittent issue tests/sort/sort-stale-thread-mem (passes in this run but fails in the 'main' branch)

@github-actions
Copy link

github-actions bot commented Feb 6, 2026

GNU testsuite comparison:

Skipping an intermittent issue tests/misc/usage_vs_getopt (passes in this run but fails in the 'main' branch)
Skipping an intermittent issue tests/shuf/shuf-reservoir (passes in this run but fails in the 'main' branch)
Skipping an intermittent issue tests/sort/sort-stale-thread-mem (passes in this run but fails in the 'main' branch)

@oech3 oech3 force-pushed the pubarm branch 2 times, most recently from 443d211 to 290ff05 Compare February 7, 2026 05:44
@oech3
Copy link
Contributor Author

oech3 commented Feb 7, 2026

If we publish bins, it should be release profile instead of release-small. It made diff larger...

@github-actions
Copy link

github-actions bot commented Feb 7, 2026

GNU testsuite comparison:

Congrats! The gnu test tests/tail/retry is no longer failing!

@github-actions
Copy link

github-actions bot commented Feb 7, 2026

GNU testsuite comparison:

Congrats! The gnu test tests/tail/retry is no longer failing!

@codspeed-hq
Copy link

codspeed-hq bot commented Feb 7, 2026

CodSpeed Performance Report

Merging this PR will degrade performance by 3.62%

Comparing oech3:pubarm (9f9c52b) with main (f828549)

Summary

❌ 1 regressed benchmark
✅ 283 untouched benchmarks
⏩ 38 skipped benchmarks1

⚠️ Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation cp_large_file[16] 377.8 µs 392 µs -3.62%

Footnotes

  1. 38 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.

Copy link
Collaborator

@Ecordonnier Ecordonnier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added some comments inline. Please also extend the PR description.

test -f /tmp/usr/local/bin/uu-tty
test -f /tmp/usr/local/libexec/uu-coreutils/libstdbuf.*
sudo apt-get install -y gcc-aarch64-linux-gnu
RUSTFLAGS="${RUSTFLAGS} -C strip=symbols"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
RUSTFLAGS="${RUSTFLAGS} -C strip=symbols"
export RUSTFLAGS="${RUSTFLAGS} -C strip=symbols"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

shellcheck complains if we don't split export. (done at L329)

test -f /tmp/usr/local/libexec/uu-coreutils/libstdbuf.*
sudo apt-get install -y gcc-aarch64-linux-gnu
RUSTFLAGS="${RUSTFLAGS} -C strip=symbols"
export RUSTFLAGS
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
export RUSTFLAGS

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

build_makefile:
name: Build/Makefile
needs: [ min_version, deps ]
permissions:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As far as I understand the "build_makefile" jobs are test jobs. The "build" job at line 627 already has "permissions: contents: write" and already has one line for aarch64-unknown-linux-gnu.

Are you trying to publish files from the build_makefile job instead of from the build job so that you can get libstdbuf.so compiled with feat_external_stdbuf? Or why not use the build job?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should it not rather be something like this in the publish job around line 534?

matrix:
  job:
    - { os: ubuntu-latest, target: x86_64-unknown-linux-gnu, features: feat_os_unix }
    - { os: ubuntu-latest, target: aarch64-unknown-linux-gnu, features: feat_os_unix_gnueabihf, use-cross: true }

Copy link
Contributor Author

@oech3 oech3 Feb 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

x64 individual bins are published by reusing compute_size:. libstdbuf.so is also one of a reason to publish from here.

Ofcause I'm considering to merge jobs for publishing (and deduplicating release build). But currently, I can't.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(We should stop/merge duplicated build for compute_size:)

! test -f /tmp/usr/local/share/zsh/site-functions/_install
! test -f /tmp/usr/local/share/bash-completion/completions/head.bash
! test -f /tmp/usr/local/share/fish/vendor_completions.d/cat.fish
# We publish them instead of discarding
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that in order to change what gets released it would be good to have approval from @sylvestre . Can you please open an issue regarding the addition of individual arm binaries to the releases to discuss this?

Copy link
Contributor Author

@oech3 oech3 Feb 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, I just don't want to discard bins with release build (not interested in arm).
Cross-build for FreeBSD might better since Linux-arm coreutils is already published.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As far as I know, 99,999% of users will get uutils coreutils using their package-manager, and the distros like freebsd will use the source code of uutils coreutils and compile it themselves and not use the binary packages. So I am not sure it is useful to publish individual binaries for arm or freebsd? What is the use case? That is why I suggested to create an issue to discuss it.

Copy link
Contributor Author

@oech3 oech3 Feb 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Package manager does not provide binaries from main branch and most distributor provides single binary.

@oech3 oech3 force-pushed the pubarm branch 3 times, most recently from 943d6fc to 9f9c52b Compare February 8, 2026 06:46
@github-actions
Copy link

github-actions bot commented Feb 8, 2026

GNU testsuite comparison:

Skipping an intermittent issue tests/tail/follow-name (passes in this run but fails in the 'main' branch)
Congrats! The gnu test tests/pr/bounded-memory is no longer failing!
Note: The gnu test tests/expand/bounded-memory is now being skipped but was previously passing.
Note: The gnu test tests/tail/tail-n0f is now being skipped but was previously passing.

@oech3 oech3 marked this pull request as draft February 8, 2026 17:57
@oech3 oech3 closed this Feb 8, 2026
@oech3
Copy link
Contributor Author

oech3 commented Feb 8, 2026

@Ecordonnier #10825

@oech3 oech3 deleted the pubarm branch February 8, 2026 18:13
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