diff mbox

PATCH: PR target/60151: HAVE_AS_GOTOFF_IN_DATA is mis-detected on x86-64

Message ID CAMe9rOq3p5iDiVX+49R3wM2CPYnybbYYPPfZ_GRnB-EQ+MFfkw@mail.gmail.com
State New
Headers show

Commit Message

H.J. Lu Feb. 11, 2014, 8:41 p.m. UTC
On Tue, Feb 11, 2014 at 12:29 PM, Rainer Orth
<ro@cebitec.uni-bielefeld.de> wrote:
> "H.J. Lu" <hjl.tools@gmail.com> writes:
>
>> On Tue, Feb 11, 2014 at 11:40 AM, Rainer Orth
>> <ro@cebitec.uni-bielefeld.de> wrote:
>>> Hi H.J.,
>>>
>>>> HAVE_AS_GOTOFF_IN_DATA defines a 32-bit assembler feature, we need to
>>>> pass --32 to assembler. Otherwise, we get the wrong result on x86-64.
>>>> We already pass --32 to assembler on x86.  It should be OK to do it
>>>> in configure.  OK for trunk?
>>>
>>> This would break Solaris/x86 with as configurations, where this test
>>> currently passes, but would fail since as doesn't understand --32.
>>>
>>
>> How about passing --32 to as only for Linux?  OK to install?
>
> I'd rather do it for gas instead, which can be used on non-Linux
> systems, too.
>

Sure.  Here is the new patch.  OK to install?
diff mbox

Patch

diff --git a/gcc/configure.ac b/gcc/configure.ac
index ac3d842..333bca6 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -3867,8 +3867,14 @@  foo: nop

     # These two are used unconditionally by i386.[ch]; it is to be defined
     # to 1 if the feature is present, 0 otherwise.
+    if test x"$gas" = x"yes"; then
+      as_ix86_gotoff_in_data_opt="--32"
+    else
+      as_ix86_gotoff_in_data_opt=
+    fi
     gcc_GAS_CHECK_FEATURE([GOTOFF in data],
-        gcc_cv_as_ix86_gotoff_in_data, [2,11,0],,
+        gcc_cv_as_ix86_gotoff_in_data, [2,11,0],
+ $as_ix86_gotoff_in_data_opt,
 [ .text
 .L0:
  nop