Opened 3 years ago

Last modified 13 months ago

#63385 assigned enhancement

ld64 +ld64_xcode is there a need for +llvm variant?

Reported by: Gcenx Owned by: jeremyhu (Jeremy Huddleston Sequoia)
Priority: Low Milestone:
Component: ports Version:
Keywords: +ld64_xcode Cc: cooljeanius (Eric Gallager)
Port: ld64

Description (last modified by Gcenx)

For other other ld64 subports I understand the need for a version of llvm, but I don’t understand why +ld64_xcode would require llvm-9.0, shouldn’t this not require llvm?

The issue is ld64 not ld64-xcode it’s self, ld64 when defaulting to +ld64_xcode also defaults to +llvm-9.0

Change History (8)

comment:1 Changed 3 years ago by kencu (Ken)

ld64-xode doesn't have any variants.... I thought... on 10.6.8 there are the standard deps (clang-9.0) that every port has, that is just too much trouble to remove, but no other deps.

$ port info ld64-xcode
ld64-xcode @2_3 (devel)
Variants:             universal

Description:          ld64 combines several object files and libraries, resolves references, and produces an ouput file.
Homepage:             http://opensource.apple.com/source/ld64/

Build Dependencies:   clang-9.0
Library Dependencies: libcxx
Platforms:            darwin
License:              APSL-2
Maintainers:          Email: jeremyhu@macports.org, GitHub: jeremyhu
                      Email: kencu@macports.org, GitHub: kencu

is there some system where you've noticed it has a dep on llvm?

comment:2 Changed 3 years ago by Gcenx

The problem is this section here;

        if {![some_llvm_variant_set] && ${os.major} >= 9} {
            default_variants +llvm90
        }

        if {![some_llvm_variant_set] && ${os.major} >= 9} {
            pre-fetch {
                ui_error "Your platform cannot be configured without LTO support in ld64.  Please enable one of the llvmXX variants, and try again."
                return -code error "Your platform cannot be configured without LTO support in ld64.  Please enable one of the llvmXX variants, and try again."
            }
        }
    }

When I’ve tried to install ld64 on macOS Mojave (due to ffmpeg) it becomes +ld64_Xcode and then +llvm-9.0 also gets added

Last edited 3 years ago by Gcenx (previous) (diff)

comment:3 Changed 3 years ago by Gcenx

Description: modified (diff)
Keywords: +ld64_xcode added
Port: ld64 added; ld64-xcode removed
Summary: ld64-xcode is there a need for +llvm variant?ld64 +ld64_xcode is there a need for +llvm variant?

comment:4 Changed 3 years ago by Gcenx

Corrected this issue is due to ld64 Port itself, this sets the version of ld64 and also adds a version of llvm.

On macOS Mojave for example installing ld64 become ld64 +ld64_xcode +llvm-9.0

comment:5 Changed 3 years ago by kencu (Ken)

I will see if I can find a way to reproduce this, and then come up with something elegant and wonderful :>

comment:6 Changed 3 years ago by Gcenx

I’m not near my system but I’d assume the following;

        if {![some_llvm_variant_set] && ![variant_isset ld64_xcode] && ${os.major} >= 9} {
            default_variants +llvm90
        }

        if {![some_llvm_variant_set] && ![variant_isset ld64_xcode] && ${os.major} >= 9} {
            pre-fetch {
                ui_error "Your platform cannot be configured without LTO support in ld64.  Please enable one of the llvmXX variants, and try again."
                return -code error "Your platform cannot be configured without LTO support in ld64.  Please enable one of the llvmXX variants, and try again."
            }
        }
    }

comment:7 Changed 3 years ago by kencu (Ken)

Owner: changed from kencu to jeremyhu

comment:8 Changed 13 months ago by cooljeanius (Eric Gallager)

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