-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Don't link with libraries in the Cellar #163
Comments
Now @tom111 is running into the same issue with libicu:
|
I asked chatGPT about this and here was one suggestion that might be worth a try: Solution 3: Dynamic Library Versioning This is usually controlled by linker options when building the software, such as -compatibility_version and -current_version in gcc. It might require modifications to the build scripts of the software to ensure these options are used correctly. For more details, see the man pages for ld and libtool on MacOS. There is more info here: https://chat.openai.com/share/03ac0508-78ff-4d7c-a59c-473a7ccfd8d9 I think in the case of issue #187 it seems to be the major version bump from 72 to 73 causing the issue (72 vs. 72.1 seems to be fine):
|
Thanks, but that's not helpful at all. For one, we are never linking with any of the libicu libraries directly; a bottled boost library that we are linking with is dependent on them (either boost-regex, boost-stacktrace, or boost-math). It would be helpful if you could figure out which one is the culprit. Alternatively, it would be helpful to find out which symbols in those libraries are used by M2-binary and maybe try to remove that from our code if possible. |
Hmm. Cutting out the code that uses this seems like a bad approach, too. I still don't understand how linking on MacOS works and who is to blame. Some more observations:
(Sorry if my suggestions are stupid, I just have vague memories how thinks worked with linux package managers...) |
We don't use icu libraries in M2. They sort of tag along with some boost libraries, so it could be possible to somehow indicate to boost at compile time that we don't need these features that we don't use so that they are not linked. |
boost
andgivaro
libraries are linked using the Cellar path, which means every time that either library is updated (mainlyboost
) M2 requires relinking.Avoiding this reduces the need for building new revisions considerably.
The text was updated successfully, but these errors were encountered: