This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH 2/N, MPX, x86_64] Intel MPX support in glibc for x86_64
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: "Carlos O'Donell" <carlos at redhat dot com>
- Cc: "Joseph S. Myers" <joseph at codesourcery dot com>, "Zamyatin, Igor" <igor dot zamyatin at intel dot com>, "libc-alpha at sourceware dot org" <libc-alpha at sourceware dot org>, OndÅej BÃlka <neleai at seznam dot cz>
- Date: Fri, 25 Apr 2014 09:38:05 -0700
- Subject: Re: [PATCH 2/N, MPX, x86_64] Intel MPX support in glibc for x86_64
- Authentication-results: sourceware.org; auth=none
- References: <0EFAB2BDD0F67E4FB6CCC8B9F87D756942973E8E at IRSMSX101 dot ger dot corp dot intel dot com> <5359FBA4 dot 7010203 at redhat dot com> <Pine dot LNX dot 4 dot 64 dot 1404251425350 dot 16509 at digraph dot polyomino dot org dot uk> <535A8A8F dot 5080807 at redhat dot com>
On Fri, Apr 25, 2014 at 9:17 AM, Carlos O'Donell <carlos@redhat.com> wrote:
> On 04/25/2014 10:30 AM, Joseph S. Myers wrote:
>> On Fri, 25 Apr 2014, Carlos O'Donell wrote:
>>
>>> You should test for __int128, set HAVE_INT128, and make this
>>> support conditional on the compiler feature being present
>>> (avoid hard-coding the compiler version). I believe Ondrej
>>> posted a patch for this?
>>
>> bits/link.h is an installed header so can't contain conditionals on
>> configure test results like that.
>>
>> However, the __int128_t built-in typedef is much older than the __int128
>> keyword (dating back to GCC 3.0, i.e. predating x86_64 support which was
>> added in 3.1), so that can be used instead.
>
> Agreed. Thanks for catching the fact that this is an installed header.
>
I tested and checked in this patch to replace __int128 with __int128_t.
Thanks.
--
H.J.
---
>From 48332d822090e41253692053a00dfe224d3ebec0 Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Fri, 25 Apr 2014 09:33:41 -0700
Subject: [PATCH] Replace __int128 with __int128_t in bits/link.h
__int128 was added in GCC 4.6 and __int128_t was added before x86-64
was supported. This patch replaces __int128 with __int128_t so that
the installed bits/link.h can be used with older GCC.
* sysdeps/x86/bits/link.h (La_x86_64_regs): Replace __int128
with __int128_t.
(La_x86_64_retval): Likewise.
---
ChangeLog | 6 ++++++
sysdeps/x86/bits/link.h | 6 +++---
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 0909d3b..3ab4d4a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2014-04-25 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86/bits/link.h (La_x86_64_regs): Replace __int128
+ with __int128_t.
+ (La_x86_64_retval): Likewise.
+
2014-04-24 Ian Bolton <ian.bolton@arm.com>
* sysdeps/aarch64/fpu/fclrexcpt.c (feclearexcept): Don't write to
diff --git a/sysdeps/x86/bits/link.h b/sysdeps/x86/bits/link.h
index 82522e5..ebc5989 100644
--- a/sysdeps/x86/bits/link.h
+++ b/sysdeps/x86/bits/link.h
@@ -94,7 +94,7 @@ typedef struct La_x86_64_regs
La_x86_64_xmm lr_xmm[8];
La_x86_64_vector lr_vector[8];
#ifndef __ILP32__
- __int128 lr_bnd[4];
+ __int128_t lr_bnd[4];
#endif
} La_x86_64_regs;
@@ -110,8 +110,8 @@ typedef struct La_x86_64_retval
La_x86_64_vector lrv_vector0;
La_x86_64_vector lrv_vector1;
#ifndef __ILP32__
- __int128 lrv_bnd0;
- __int128 lrv_bnd1;
+ __int128_t lrv_bnd0;
+ __int128_t lrv_bnd1;
#endif
} La_x86_64_retval;
--