In preparation for upcoming execute-only support, change the magic branch
authorkettenis <kettenis@openbsd.org>
Mon, 9 Jan 2023 13:45:55 +0000 (13:45 +0000)
committerkettenis <kettenis@openbsd.org>
Mon, 9 Jan 2023 13:45:55 +0000 (13:45 +0000)
commit4bd9ff11abf2fd7ac677cb497a9eea39a0dc4060
treea8069c6f6e844170ee685c2ef6070e6357b9c808
parentc0a6b811701bdbfe01fb72ed4246ca86eedef8aa
In preparation for upcoming execute-only support, change the magic branch
instruction used by __canonicalize_funcptr_for_compare() from "bl" into "b".
This allows __canonicalize_funcptr_for_compare() to execute the branch
instead of decoding the instruction to find the address of _dl_bind().

This is the first step in the transition to a new ABI.  Once an updated
ld.so has been installed, we can change __canonicalize_funcptr_for_compare()
(which lives in libgcc) and rebuild everything with a new libgcc.  Only
then we can actually make ld.so executable-only.

ok deraadt@, miod@
libexec/ld.so/hppa/ldasm.S