RFC: x86: Fall back to lazy binding for unrelocated IFUNC symbol [BZ #23240]

Florian Weimer fweimer@redhat.com
Sat May 26 21:02:00 GMT 2018


On 05/26/2018 03:52 PM, H.J. Lu wrote:
> +	      /* NB: The symbol reference is resolved to IFUNC symbol
> +	         from a shared object which hasn't been relocated yet.
> +		 Relocate the GOT entry to enable lazy binding.  */
> +	      value = map->l_addr + *reloc_addr;
> +	      /* Disable RELRO so that the GOT entry can updated by lazy
> +		 binding later.  */
> +	      if (map->l_info[DT_BIND_NOW] != NULL)
> +		map->l_relro_size = 0;

People perceive BIND_NOW as a security feature.  Silently disabling it 
in this way, perhaps due to an implementation change in another shared 
object, looks very wrong to me.

Maybe you could share the *concrete* problem you are actually trying to 
solve?

Thanks,
Florian



More information about the Libc-alpha mailing list