On recent CURRENT (FreeBSD 12.0-CURRENT #0 r328002: Mon Jan 15 15:28:18 CET 2018 amd64 ) running recent poudriere jail (headamd64 12.0-CURRENT 1200056 amd64 src=/usr/src 2018-01-17 05:14:07 /pool/poudriere/jails/headamd64), the most recent ports tree won't build several important packages due to the failure of key packages, one of them is java/openjdk8, failing with the error shown below:
In file included from /wrkdirs/usr/ports/java/openjdk8/work/openjdk/hotspot/src/share/vm/runtime/atomic.inline.hpp:70:
/wrkdirs/usr/ports/java/openjdk8/work/openjdk/hotspot/src/os_cpu/bsd_x86/vm/atomic_bsd_x86.inline.hpp:95:21: error: unknown token in expression
__asm__ volatile (LOCK_IF_MP(%4) "cmpxchgl %1,(%3)"
/wrkdirs/usr/ports/java/openjdk8/work/openjdk/hotspot/src/os_cpu/bsd_x86/vm/atomic_bsd_x86.inline.hpp:48:24: note: expanded from macro 'LOCK_IF_MP'
#define LOCK_IF_MP(mp) "cmp $0, " #mp "; je 1f; lock; 1: "
<inline asm>:1:30: note: instantiated into assembly here
cmp $0, %edx; je 1f; lock; 1: cmpxchgl %ecx,(%rdi)
duplicate of bug #225054
*** This bug has been marked as a duplicate of bug 225054 ***
Note: this should be fixed after head r328090:
Pull in r322623 from upstream llvm trunk (by Andrew V. Tischenko):
Allow usage of X86-prefixes as separate instrs.
Differential Revision: https://reviews.llvm.org/D42102
This should fix parse errors when x86 prefixes (such as 'lock' and
'rep') are followed by various non-mnemonic tokens, e.g. comments, .byte
directives and labels.