Opened 9 months ago

Closed 8 months ago

#67973 closed defect (fixed)

john-jumbo @1.9.0_2: build failure on M1 (Apple Silicon) due to missing post-1.9.0 changes for M1

Reported by: JDLH (Jim DeLaHunt) Owned by: catap (Kirill A. Korinsky)
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: arm64 Cc:
Port: john-jumbo john

Description (last modified by JDLH (Jim DeLaHunt))

Port john-jumbo @1.9.0_2 fails to build on M1 (Apple Silicon) architectures. I believe this is due to missing support for M1 architectures in code checked in after version 1.9.0, so not yet in MacPorts. Upstream issue #4585 **Apple M1 build** appears to describe this problem, and links to a commit which claims to fix it.

How to reproduce: On a Mac with M1 architecture, install port john-jumbo. I used a MacBook Pro with an Apple M1 Max CPU and macOS 12.6.8 Monterey.

Observed behaviour:

% sudo port install john-jumbo
--->  Computing dependencies for john-jumbo
[… some steps elided …]
--->  Configuring john-jumbo
--->  Building john-jumbo                                
Error: Failed to build john-jumbo: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_sysutils_john/john-jumbo/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.
Error: Processing of port john-jumbo failed

The relevant part of the main.log file (which is attached) seems to be:

:info:build simd-intrinsics.c:234:2: error: argument value 39 is outside the valid range [0, 31]
:info:build         MD5_STEP(MD5_F, a, b, c, d, 0, 0xd76aa478, 7)
:info:build         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:info:build simd-intrinsics.c:90:16: note: expanded from macro 'MD5_STEP'
:info:build         a[i] = vroti_epi32( a[i], (s) );            \
:info:build                ^~~~~~~~~~~~~~~~~~~~~~~~
:info:build ./pseudo_intrinsics.h:70:61: note: expanded from macro 'vroti_epi32'
:info:build                                          (vtype)vsriq_n_u32(vshlq_n_u32((x).v32, 32 + (i)), (x).v32, -(i)))
:info:build                                                 ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:info:build /Library/Developer/CommandLineTools/usr/lib/clang/14.0.0/include/arm_neon.h:24874:24: note: expanded from macro 'vshlq_n_u32'
:info:build   __ret = (uint32x4_t) __builtin_neon_vshlq_n_v((int8x16_t)__s0, __p1, 50); \
:info:build                        ^
:info:build /Library/Developer/CommandLineTools/usr/lib/clang/14.0.0/include/arm_neon.h:26475:21: note: expanded from macro 'vsriq_n_u32'
:info:build   uint32x4_t __s0 = __p0; \
:info:build                     ^~~~

Expected behaviour: Port john-jumbo installs and runs without error.

Discussion: Upstream's discussion of issue 4585 includes very similar diagnostics to what the MacPorts main.log shows. There is a commit c9825e6 on Mar 8, 2021 which upstream describes as closing the issue. This is after release 1.9.0, which is from 2019.

Port john @1.9.0_1 installs without error messages.

Attachments (1)

main.log (460.6 KB) - added by JDLH (Jim DeLaHunt) 9 months ago.
main.log file showing build error

Download all attachments as: .zip

Change History (4)

Changed 9 months ago by JDLH (Jim DeLaHunt)

Attachment: main.log added

main.log file showing build error

comment:1 Changed 9 months ago by JDLH (Jim DeLaHunt)

Description: modified (diff)

comment:2 Changed 9 months ago by JDLH (Jim DeLaHunt)

Port: john added

Ticket #62859 says basically the same thing as this ticket, but it is listed as port "john", not "john-jumbo". On my system, port "john" does not fail with an error, but port "john-jumbo" does. Adding port "john" to this ticket to help with cross-referencing.

comment:3 Changed 8 months ago by catap (Kirill A. Korinsky)

Owner: set to catap
Resolution: fixed
Status: newclosed

In 061c6023c18b92e8c2291824210f7d703bdb6dc4/macports-ports (master):

john-jumbo: fix build on arm64; add devel subport; claim maintainership

Closes: #42379
Closes: #62859
Closes: #67973
Closes: #67974
Closes: #67975

Note: See TracTickets for help on using tickets.