https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66509
Bug ID: 66509 Summary: 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 at -m32 Product: gcc Version: 5.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: howarth.at.gcc at gmail dot com Target Milestone: --- Created attachment 35759 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35759&action=edit assembly for ibjava/java/lang/reflect/natArray.cc at -m32 on x86_64 darwin The public Xcode 7 beta and associated Command Line Tools (available on 10.10 from https://developer.apple.com/xcode/downloads/ and https://developer.apple.com/downloads/) replace the legacy GNU assembler with a clang-based assembler. The new clang-based assembler fails to compile libjava/java/lang/reflect/natArray.cc at -m32 in the multilib build of libjava due to the assembler errors... natArray.s:1110:2: error: ambiguous instructions require an explicit suffix (could be 'filds', or 'fildl') fild 8(%esi,%edi,2) ^ natArray.s:1120:2: error: ambiguous instructions require an explicit suffix (could be 'filds', or 'fildl') fild 10(%esp) ^ natArray.s:1267:2: error: ambiguous instructions require an explicit suffix (could be 'filds', or 'fildl') fild 8(%esi,%edi,2) ^ natArray.s:1277:2: error: ambiguous instructions require an explicit suffix (could be 'filds', or 'fildl') fild 14(%esp) ^ natArray.s:1830:2: error: ambiguous instructions require an explicit suffix (could be 'filds', or 'fildl') fild 14(%esp) ^ natArray.s:1907:2: error: ambiguous instructions require an explicit suffix (could be 'filds', or 'fildl') fild 14(%esp) ^ natArray.s:1988:2: error: ambiguous instructions require an explicit suffix (could be 'filds', or 'fildl') fild 14(%esp) ^ natArray.s:2047:2: error: ambiguous instructions require an explicit suffix (could be 'filds', or 'fildl') fild 14(%esp) ^ This issue can be reproduced with the attached natArray.s assembly file using the command... as -arch i386 -force_cpusubtype_ALL -o natArray.o natArray.s against the new clang-based assembler. The same file is processed without errors using the legacy GNU-based assembler from Xcode 6.2 on 10.9 or Xcode 6.3 on 10.10. Can the FSF gcc i386 maintainers comment on whether there is anything in the Intel/AMD instruction specifications that merits this strict behavior for the assembler with regard to ambiguous fild instructions? Note that this compilation failure is limited to -m32 and that the -m64 build of libjava is processed without errors by the new clang-based assembler.