maxmind / libmaxminddb

C library for the MaxMind DB file format
https://maxmind.github.io/libmaxminddb/
Apache License 2.0
912 stars 239 forks source link

`make check` fails on macOS Monterey (`macos-12`) #304

Closed carlocab closed 2 years ago

carlocab commented 2 years ago

We're trying to update libmaxminddb for Homebrew at Homebrew/homebrew-core#111943. We encountered the following failure in make check:

  not ok 1 - No libs were found to test
  #   Failed test 'No libs were found to test'
  #   at ./external_symbols_t.pl line 53.
  1..1

Complete CI logs available at https://github.com/Homebrew/homebrew-core/actions/runs/3148372901.

The error for ARM Monterey can be found here, and on Intel Monterey here.

Any assistance would be appreciated.

oschwald commented 2 years ago

Can you confirm that make check with 1.6.0 worked on Monterey? I don't know of any relevant differences, but it would narrow the possibilities.

carlocab commented 2 years ago

It did, yes. We distribute binaries of 1.6.0 built on Monterey, and we run make check during every build of libmaxminddb.

Note, however, that the build environment from when we were able to build 1.6.0 on Monterey and the one where we are seeing failures now is not exactly identical: we've upgraded to Xcode 14 since then, and we've likely upgraded to a newer minor version of Monterey too. Our build of 1.6.0 was built with Xcode 13.1.

I mention this because we've seen other issues with Xcode 14 (e.g. iains/gcc-12-branch#6). The linked issue is a linker bug -- I'm not sure if that could have anything to do with the failing test.

I'm not aware of instances of minor version upgrades ever causing regressions.

oschwald commented 2 years ago

Would it be possible to force a rebuild of 1.6.0 with the newer environment? I just reviewed the diff and I don't see anything that is obviously related to this issue. It seems much more likely to be an environment issue (e.g., some sort of automake change).

oschwald commented 2 years ago

I was able to find a macOS user internally who reproduced the failure. It appears that it isn't specific to this release, but also happened with 1.6.0. I suspect previous builds by Homebrew had that test skipped due to missing test dependencies and upgrading Xcode caused those dependencies to be available.

We will likely just skip that test on non-Linux systems as it appears to assume a Linux-like environment and it is primarily beneficial as an author test rather than testing that the build was successful.

carlocab commented 2 years ago

Thanks for the lightning-quick fix!