Skip to content

Conversation

@chrisnovakovic
Copy link
Contributor

@chrisnovakovic chrisnovakovic commented Nov 6, 2025

On Darwin, it seems that the plugin's default compiler and linker flags generate executables that are already pretty stripped, to the extent that -Wl,-S -Wl,-x doesn't do anything meaningful to all of them (e.g. the stripped and unstripped shared objects have identical file sizes and contain the same number of symbols). Guarantee that the linker has symbols to strip by emitting debug symbols; that way, the tests can ensure that the unstripped executables contain them, and the stripped ones don't.

This also removes the run-time dependency on file(1), which might not be present (e.g. on Alpine); nm(1) is part of both GNU binutils and LLVM, and is therefore much more likely to be installed if GCC or Clang are installed.

On Darwin, it seems that the plugin's default compiler and linker flags
generate executables that are already pretty stripped, to the extent
that `-Wl,-S -Wl,-x` doesn't do anything meaningful to all of them (e.g.
the stripped and unstripped shared objects have identical file sizes and
contain the same number of symbols). Guarantee that the linker has
symbols to strip by emitting debug symbols in the generated binaries;
that way, the tests can ensure that the unstripped executables contain
them, and the stripped ones don't.

This also removes the run-time dependency on `file(1)`, which might not
be present (e.g. on Alpine); `nm(1)` is part of both GNU binutils and
LLVM, and is therefore much more likely to be installed if GCC or Clang
are installed.
@chrisnovakovic chrisnovakovic merged commit 5d0fd3a into please-build:master Nov 6, 2025
28 checks passed
@chrisnovakovic chrisnovakovic deleted the strip_test-darwin-fixes branch November 6, 2025 14:49
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