You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
ci: add a non-PIE build job, the build the 42 machines make #183
On the 42 machines, cc is clang 12 and links non-PIE against Ubuntu 22.04's libreadline 8.1, which is built with -Bsymbolic-functions. On that combination, a readline function taken by address (&rl_forward_char) is the PLT stub. readline's keymaps hold its internal address, so the two never compare equal. Until 3.2 that left every #136 / #140 key unbound on those machines (fixed in #179 by asking readline by name: rl_named_function).
CI builds with gcc as PIE, and the release binary is static musl. Neither can show this class of bug, so the fix has only been proven on a 42 machine.
Proposal: a CI job that builds non-PIE on Ubuntu 22.04 with clang and the system readline:
make all CC=clang EXTRA_CFLAGS=-fno-pie EXTRA_LDFLAGS=-no-pie
It then runs history_prefix_search_test.py, autosuggest_test.py and rl_undo_leak_test.py. On the pre-fix tree (db8f4e3) this job should fail with 57 and 86 failures in the first two.
Caveat: this assumes the hosted runner's clang plus -no-pie reproduces the address split. Check that it fails on db8f4e3 before relying on it.
Activity