Change the __canonicalize_funcptr_for_compare() implementation to stop
authorkettenis <kettenis@openbsd.org>
Mon, 9 Jan 2023 21:18:47 +0000 (21:18 +0000)
committerkettenis <kettenis@openbsd.org>
Mon, 9 Jan 2023 21:18:47 +0000 (21:18 +0000)
commit83125db9c48e29262b1d8c7e882ea820aac77ed4
treeae190c439cdbf2fe4b8c81f1ec9865120b11da13
parent0bd1b14946b7632f93b583db4ca5b3707012c724
Change the __canonicalize_funcptr_for_compare() implementation to stop
trying to read a branch instruction and decode it to extract the address
of the ld.so resolver function.  Instead, directly execute that branch
instruction.

This is effectively a C runtime ABI change.  In order to cross this if
you are building from source, make sure you install an updated ld.so
first.

ok deraadt@
gnu/gcc/gcc/config/pa/fptr.c