Opened 6 months ago

Closed 3 weeks ago

#68522 closed defect (fixed)

KeePassXC 2.7.6_0 < 2.7.6_1 Fails to build on Mavericks

Reported by: tehcog (tehcog) Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: mavericks Cc: RobK88, thetrial (alabay), cjones051073 (Chris Jones)
Port: KeePassXC

Description

Please see attached main.log.

Thank You

Attachments (3)

KeePassXC_2.7.6_1_main.log (1.4 MB) - added by tehcog (tehcog) 6 months ago.
main.log
main.log (1.4 MB) - added by RobK88 6 months ago.
main.log for Lion
main.log.7z (35.5 KB) - added by thetrial (alabay) 6 months ago.
Logfile for macOS Sierra.

Change History (14)

Changed 6 months ago by tehcog (tehcog)

Attachment: KeePassXC_2.7.6_1_main.log added

main.log

comment:1 Changed 6 months ago by RobK88

It also fails on Lion 10.7.5. See attached main.log.

KeePassXC 2.7.6_0 installs fine but 2.7.6_1 does not.

Undefined symbols for architecture x86_64:
  "__availability_version_check", referenced from:
      ___isPlatformVersionAtLeast in libclang_rt.osx.a(os_version_check.c.o)
      __initializeAvailabilityCheck in libclang_rt.osx.a(os_version_check.c.o)
Undefined symbols for architecture x86_64:
  "__availability_version_check", referenced from:
      ___isPlatformVersionAtLeast in libclang_rt.osx.a(os_version_check.c.o)
      __initializeAvailabilityCheck in libclang_rt.osx.a(os_version_check.c.o)
ld: symbol(s) not found for architecture x86_64
ld: symbol(s) not found for architecture x86_64
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
Last edited 6 months ago by RobK88 (previous) (diff)

Changed 6 months ago by RobK88

Attachment: main.log added

main.log for Lion

comment:2 Changed 6 months ago by RobK88

FYI -- The upgrade of KeePassXC from from 2.7.6_0 to 2.7.6_1 also fails on Mountain Lion with the same error.

Undefined symbols for architecture x86_64:
  "__availability_version_check", referenced from:
      ___isPlatformVersionAtLeast in libclang_rt.osx.a(os_version_check.c.o)
      __initializeAvailabilityCheck in libclang_rt.osx.a(os_version_check.c.o)
Undefined symbols for architecture x86_64:
  "__availability_version_check", referenced from:
      ___isPlatformVersionAtLeast in libclang_rt.osx.a(os_version_check.c.o)
      __initializeAvailabilityCheck in libclang_rt.osx.a(os_version_check.c.o)

comment:3 Changed 6 months ago by thetrial (alabay)

Exactly the same … 2.7.6 built, 2.7.6_1 won’t build. Quite often metioned: clang++: error: linker command failed with exit code 1.

OS: macOS 10.12.6 Sierra. I’ll attach the log.

Changed 6 months ago by thetrial (alabay)

Attachment: main.log.7z added

Logfile for macOS Sierra.

comment:4 Changed 6 months ago by kencu (Ken)

It's likely failing due to a change in clang-17 that weak links that function now.

Try it with some clang < clang-17, that should still have the old behaviour, until someone sorts out a fix for this.

comment:5 Changed 6 months ago by RobK88

Cc: RobK88 added

comment:6 Changed 6 months ago by RobK88

@kencu -- Thank you for the heads up. I did not realize that the latest Portfile for KeePassXC now has clang-17 as a build dependency.

You are right, KeePassXC@2.7.6_1 builds just fine with clang-16. See below.

bash-3.2$ sudo port clean KeePassXc
--->  Cleaning KeePassXC
bash-3.2$ 
bash-3.2$ sudo port upgrade keepassxc configure.compiler=macports-clang-16
--->  Computing dependencies for KeePassXC
--->  Fetching archive for KeePassXC
--->  Attempting to fetch KeePassXC-2.7.6_1.darwin_11.x86_64.tbz2 from http://packages.macports.org/KeePassXC
--->  Attempting to fetch KeePassXC-2.7.6_1.darwin_11.x86_64.tbz2 from http://ywg.ca.packages.macports.org/mirror/macports/packages/KeePassXC
--->  Attempting to fetch KeePassXC-2.7.6_1.darwin_11.x86_64.tbz2 from http://mirror.fcix.net/macports/packages/KeePassXC
--->  Fetching distfiles for KeePassXC
--->  Verifying checksums for KeePassXC
--->  Extracting KeePassXC
--->  Applying patches to KeePassXC
--->  Configuring KeePassXC
Warning: Qt dependency is not the latest version but may be the latest supported on your OS
--->  Building KeePassXC                                 
--->  Staging KeePassXC into destroot                    
--->  Installing KeePassXC @2.7.6_1                      
--->  Cleaning KeePassXC
--->  Computing dependencies for KeePassXC
--->  Deactivating KeePassXC @2.7.6_0
--->  Cleaning KeePassXC
--->  Activating KeePassXC @2.7.6_1
--->  Cleaning KeePassXC
--->  Scanning binaries for linking errors
--->  No broken files found.                             
--->  No broken ports found.
bash-3.2$

comment:7 Changed 6 months ago by RobK88

P.S. I was able to build KeePassXC@2.7.6_1 on High Sierra without specifying the clang-16 on the command line. But the buildbot for High Sierra failed. The buildbots succeeded for Mojave to Ventura.

It is interesting when one runs port info keepassxc on High Sierra, one does NOT see clang-17 as a build dependency.

But one does see clang-17 as a build dependency when running port info keepassxc on Lion and Mtn Lion.

Last edited 6 months ago by RobK88 (previous) (diff)

comment:8 Changed 6 months ago by thetrial (alabay)

Cc: thetrial added

comment:9 Changed 6 months ago by thetrial (alabay)

Ye, ran through with clang-16 under Sierra, too. I don’t know why, but clang-9 was also loaded, one-off, I think (and will be removed). Under Sierra one sees clang-17 as build dependency.

comment:10 Changed 6 months ago by tenzap

Could someone update the portfile so that it builds on older versions of macOS?

comment:11 in reply to:  10 Changed 3 weeks ago by ryandesign (Ryan Carsten Schmidt)

Cc: cjones051073 added
Resolution: fixed
Status: newclosed

Replying to RobK88:

I did not realize that the latest Portfile for KeePassXC now has clang-17 as a build dependency.

It does not. MacPorts as a whole was updated to use clang-17 as its default fallback compiler in October 2023 if Xcode clang cannot be used.

Replying to tenzap:

Could someone update the portfile so that it builds on older versions of macOS?

The change was rolled back for older systems in November 2023 because it caused other problems.

According to the build status, KeePassXC 2.7.6 built fine on OS X 10.8 and later in January 2024.

Note: See TracTickets for help on using tickets.