Opened 11 months ago

Last modified 7 months ago

#67585 assigned defect

nss @3.90: error: "AES/PCLMUL instructions not enabled"

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: mascguy (Christopher Nielsen)
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: Cc: Schamschula (Marius Schamschula), cooljeanius (Eric Gallager)
Port: nss

Description

https://build.macports.org/builders/ports-10.9_x86_64-builder/builds/234302/steps/install-port/logs/stdio

In file included from verified/Hacl_Poly1305_256.c:24:
In file included from verified/internal/Hacl_Poly1305_256.h:36:
In file included from verified/internal/../Hacl_Poly1305_256.h:37:
In file included from verified/libintvector.h:220:
/Library/Developer/CommandLineTools/usr/bin/../lib/clang/6.0/include/wmmintrin.h:30:3: error: "AES/PCLMUL instructions not enabled"
# error "AES/PCLMUL instructions not enabled"
  ^
1 error generated.

Change History (7)

comment:1 Changed 11 months ago by jmroot (Joshua Root)

Cc: Schamschula added

comment:2 Changed 11 months ago by mascguy (Christopher Nielsen)

Owner: set to mascguy
Status: newassigned

This port has a tremendous number of of rdependents, blocking builds for umpteen other ports. So fixing this is a top priority.

Taking on this one ASAP.

comment:3 Changed 11 months ago by mascguy (Christopher Nielsen)

While the quick fix would be to simply blacklist clang < 800, I'm checking whether the proper compiler flag for AES-NI (-maes) is being passed.

Hopefully one of our patches is screwing things up, but will know soon enough.

comment:4 Changed 11 months ago by Christopher Nielsen <mascguy@…>

In 807fbfb8850865b61143af785ae59c85a0c95405/macports-ports (master):

nss: blacklist clang < 800; short-term fix
See: #67585

comment:5 Changed 11 months ago by mascguy (Christopher Nielsen)

Queued builds for 10.8 thru 10.10, for ports blocked by nss.

comment:6 Changed 11 months ago by mascguy (Christopher Nielsen)

While -maes is being passed when compiling several other source files, that isn't the case for Hacl_Poly1305_256.c. And since upstream is likely building with much newer Clang versions - which apparently don't need this to be explicitly enabled any more? - that's why this hasn't been caught.

/usr/bin/clang -Os -std=c99 -arch x86_64 -o Output.OBJD/Darwin_SINGLE_SHLIB/Hacl_Poly1305_256.o -c -std=c99 -Os -fPIC -Dppc -fno-common -pipe
-DDARWIN -DHAVE_STRERROR -DHAVE_BSD_FLOCK  -Wall -Wshadow -Qunused-arguments -Wno-parentheses-equality -Wno-array-bounds  -DNSS_NO_GCC48 -DXP_UNIX
-DSHLIB_SUFFIX=\"dylib\" -DSHLIB_PREFIX=\"lib\" -DSHLIB_VERSION=\"3\" -DSOFTOKEN_SHLIB_VERSION=\"3\" -DRIJNDAEL_INCLUDE_TABLES -UDEBUG -DNDEBUG
-DNSS_DISABLE_SSE3 -DNSS_NO_INIT_SUPPORT -DUSE_UTIL_DIRECTLY -DNO_NSPR_10_SUPPORT -DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES -DNSS_USE_64
-DNSS_X86_OR_X64 -DNSS_X64 -DUSE_HW_SHA2 -DMPI_AMD64 -DMP_IS_LITTLE_ENDIAN -DMP_ASSEMBLY_MULTIPLY -DNSS_USE_COMBA -DHAVE_INT128_SUPPORT
-DHACL_CAN_COMPILE_VEC256 -DMP_API_COMPATIBLE -I/opt/local/include/nspr -I../../../dist/Output.OBJD/include -I../../../dist/public/nss
-I../../../dist/private/nss -Impi -Iecl -Iverified -Iverified/internal -Iverified/karamel/include -Iverified/karamel/krmllib/dist/minimal
-Ideprecated  -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 verified/Hacl_Poly1305_256.c

It should be easy enough to patch the build, but I want to check with upstream first. (Perhaps someone has already submitted an issue/patch, but we shall see.)

Last edited 11 months ago by mascguy (Christopher Nielsen) (previous) (diff)

comment:7 Changed 7 months ago by cooljeanius (Eric Gallager)

Cc: cooljeanius added
Note: See TracTickets for help on using tickets.