Skip to content

Weak linkage on OSX not working anymore? #10235

@h-vetinari

Description

@h-vetinari

While building cryptography 42.0 in conda-forge, the macos jobs are failing with:

            Undefined symbols for architecture x86_64:
              "_getentropy", referenced from:
                  std::sys::unix::rand::hashmap_random_keys::h694f1d109e8c2473 in libstd-f4038c6a2122598b.rlib(std-f4038c6a2122598b.std.69f244de2863e905-cgu.0.rcgu.o)
            ld: symbol(s) not found for architecture x86_64
            clang-16: error: linker command failed with exit code 1 (use -v to see invocation)

This is easily fixed by upgrading the MacOS deployment target; I would be the first to celebrate ecstatically once we finally shoot MacOS<10.13 to the moon, but for now, the default in conda-forge is still 10.9. However, we actually already announced that we're moving to 10.13 last August, so the only reason that this hasn't happened yet at scale is some painfully deep infrastructure work. Still, it'd be perfectly legitimate to just raise our target version in response to this.

The reason I'm opening this issue at all, is that, while searching to find out which MacOS version introduced support for _getentropy (10.12, AFAICT), I stumbled across this comment by @alex on a related issue:

Our next release uses weak linkage to ensure that no matter what macOS version a wheel is built on, it will work fine on any supported macOS. This can be closed.

Even though that comment is going on 7 years old, I thought I'd at least ask if that is something that should still be working according to you. Personally, I wouldn't want you to waste any time on supporting ancient MacOS versions, so I really don't mind if the answer is no.

Metadata

Metadata

Assignees

No one assigned

    Labels

    waiting-on-reporterIssue is waiting on a reply from the reporter. It will be automatically cloesd if there is no reply.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions