Opened 13 months ago

Closed 13 months ago

Last modified 13 months ago

#67222 closed defect (fixed)

clang-13 @13.0.1_3 does not build on 10.11.6 (El Capitan)

Reported by: snowflake (Dave Evans) Owned by: Chris Jones <jonesc@…>
Priority: Normal Milestone:
Component: ports Version: 2.8.99
Keywords: Cc:
Port: clang-13

Description (last modified by ryandesign (Ryan Carsten Schmidt))

Confirmed by the buildbots:

https://build.macports.org/builders/ports-10.11_x86_64-builder/builds/216803

I did not spot any errors, but there was this warning just before the build giving up:

ld: warning: object file (/opt/local/lib/libMacportsLegacySupport.a(macports_legacy_os_unfair_lock.o)) was built for newer OSX version (10.11) than being linked (10.10)

Change History (5)

comment:1 Changed 13 months ago by snowflake (Dave Evans)

Version: 2.8.99

comment:2 Changed 13 months ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)

I would be more concerned about:

ld: object file /opt/local/lib/libMacportsLegacySupport.a(macports_legacy_os_unfair_lock.o) was built for different x86_64 sub-type (3) than link command line (8) for architecture x86_64h

So the question is why is it trying to build for x86_64h?

comment:3 Changed 13 months ago by cjones051073 (Chris Jones)

Building for x86_64h is normal for LLVM. The compiler command in question here in fact is targeting both x86_64h and x86_64.

The sanitizers are notoriously picky to get built on older systems. clang 13 (and 14 which has the same problem as here) currently disable them on OSX10.10 and older. clang 15 and newer disable them on OSX10.11 and older. Given the sanitizers are not needed for the main use of the compiler, and any one needing them is likely on a newer OS and would want a newer clang anyway, I think the simple fix is to just extend the disabling to OSX10.11 here, to match clang-15+.

comment:4 Changed 13 months ago by Chris Jones <jonesc@…>

Owner: set to Chris Jones <jonesc@…>
Resolution: fixed
Status: newclosed

In eaa29a4816054657e65d001562d7f77ba5157e40/macports-ports (master):

LLVM 13/14: Disable sanitizers on OSX10.11
Closes: #67222

comment:5 Changed 13 months ago by ryandesign (Ryan Carsten Schmidt)

This doesn't seem "picky", it just seems like an architecture mismatch. Either legacysupport has to be built for x86_64h in addition to x86_64 so that llvm can use it, or llvm needs to stop building for x86_64h, or llvm cannot use legacysupport.

Note: See TracTickets for help on using tickets.