maelstrom-software / maelstrom

Maelstrom is a fast Rust, Go, and Python test runner that runs every test in its own container. Tests are either run locally or distributed to a clustered job runner.
https://maelstrom-software.com/
Apache License 2.0
600 stars 11 forks source link

xtask distribute should be more automatic when generalizing binaries #419

Closed bobbobbio closed 2 months ago

bobbobbio commented 2 months ago

Specific Maelstrom Program? this is about the xtask distribute subcommand

Problem Statement When we updated the nix glibc version to 2.39 our binaries now started getting built differently requiring glibc 2.39. When had the same problem with 2.38 but we wrote code in xtask distribute to remove those specific references. That code was specific to glibc 2.38 though, and when we upgraded it didn't work to do what it was meant to.

Proposed Solution There are two types of things that we need to update in the binary. First are the symbols which are tied down to a specific glibc version, they need to be made general. Second is the section of the binary which lists the required glibc version. Both of these I want to make general to just fix up anything it finds with a new enough version.