[PATCH, MPX] MPX-specific changes in dl_runtime routines

H.J. Lu hjl.tools@gmail.com
Thu Jul 2 23:41:00 GMT 2015


On Thu, Jul 2, 2015 at 7:33 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Thu, Jul 2, 2015 at 7:03 AM, Zamyatin, Igor <igor.zamyatin@intel.com> wrote:
>> Hi!
>>
>> This patch adds necessary changes for proper work of dl_runtime routines both for 32 and 64 bits in MPX mode.
>>
>> Is it ok for trunk?
>>
>>
>> Thanks,
>> Igor
>>
>>
>> 2015-07-02  Igor Zamyatin  <igor.zamyatin@intel.com>
>>
>>         * sysdeps/i386/dl-trampoline.S (_dl_runtime_profile): Save
>>         and restore Intel MPX return bound registers
>>         * sysdeps/x86_64/dl-trampoline.h: Add PRESERVE_BND_REGS_PREFIX to
>>         call, jump and ret instructions to not loose bounds.
>>         * sysdeps/x86/bits/link.h (La_i86_retval): Add lrv_bnd0 and
>>         lrv_bnd1.
>
> Should we add link-defines.sym, similar to x86-64, to avoid
> those magic numbers when accessing the fields in La_i86_regs
> and  La_i86_retval?
>

Here is a patch to add sysdeps/i386/link-defines.sym.

I think the i386 MPX change will store values into La_i86_retval
with wrong order. You need to store bnd0/bnd1 after lrv_st1, not
before lrv_eax.

Please add an i386 audit testcase to verify that pltexit gets correct
La_i86_regs and La_i86_retval pointers and fix the i386 MPX patch.


-- 
H.J.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Add-and-use-sysdeps-i386-link-defines.sym.patch
Type: text/x-patch
Size: 3085 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20150702/fdfbe73a/attachment.bin>


More information about the Libc-alpha mailing list