[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