This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Hi! 

Please see updated patch (attached)

ChangeLog:

2015-07-08  Igor Zamyatin  <igor.zamyatin@intel.com>

	[BZ #18134]
	* 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.
	* sysdeps/i386/link-defines.sym: Add definitions for LRV_BND0_OFFSET
	and LRV_BND1_OFFSET.

Thanks,
Igor

> -----Original Message-----
> From: H.J. Lu [mailto:hjl.tools@gmail.com]
> Sent: Friday, July 3, 2015 2:42 AM
> To: Zamyatin, Igor
> Cc: libc-alpha@sourceware.org
> Subject: Re: [PATCH, MPX] MPX-specific changes in dl_runtime routines
> 
> 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.

Attachment: mpx_glibc_dl_runtime_profile_all.patch
Description: mpx_glibc_dl_runtime_profile_all.patch


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]