[LLVMdev] fatal error: error in backend: 32-bit absolute addressing is not supported in 64-bit mode

Jack Howarth howarth.mailing.lists at gmail.com
Thu Jun 11 08:21:55 PDT 2015


   While building FSF gcc 5.1 against Apple's public Xcode 7 beta's
new clang-based assembler, I ran into rejected assembly instructions
during the -m32 multilb build of libjava.

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66509

With assembler errors of the form...

natArray.s:1110:2: error: ambiguous instructions require an explicit
suffix (could be 'filds', or 'fildl')
        fild    8(%esi,%edi,2)
        ^

The gcc/config.log shows that the configure test for the filds and
fists mnemonics fails with...

configure:24880: checking assembler for filds and fists mnemonics
configure:24889: /usr/bin/as    -o conftest.o conftest.s >&5
clang -cc1as: fatal error: error in backend: 32-bit absolute
addressing is not supported in 64-bit mode
configure:24892: $? = 1
configure: failed program was
filds mem; fists mem

The same behavior is seen with in-line assembly in clang 3.7svn...

% cat conftest.c
asm("filds mem; fists mem");
% clang-3.7 -c conftest.c
fatal error: error in backend: 32-bit absolute addressing is not
supported in 64-bit mode

In both cases, the test only passes if it is compiled as -m32.

% clang-3.7 -m32 -c conftest.c
%

Is this strictness in the usage of filds and fists correct in the
clang built-in assembler and, if so, is there any permutation of the
configure test for the  filds and fists mnemonics which clang would
tolerate at -m64? Thanks in advance for any clarifications.
             Jack
ps This is also filed as radr://21326888, "the new clang-based
assembler in Xcode 7 on 10.11 fails on the
libjava/java/lang/reflect/natArray.cc file from FSF gcc 5.1".



More information about the llvm-dev mailing list