Skip to content

Conversation

eschnett
Copy link

The master branch of Julia has this recent change:

commit 9427f339c90d9c726deeaf05517c2ecabbf02bd6
Author: Sam Schweigel <[email protected]>
Date:   Fri Sep 12 08:54:20 2025 -0700

    jl_dlfind: do not find symbols in library dependencies (#58815)

This means that a ccall to library A will not find symbols in A's dependencies any more. For example, looking for pango_version_string in Cairo_jll does not work any more. Instead, one has to look for this symbol in Pango_jll.

This PR updates Cairo in this respect. This change should be backward compatible, i.e. it should work with all earlier versions of Julia as well.

@eschnett
Copy link
Author

The respective change to Julia's master branch that required this change was reverted.

@eschnett eschnett closed this Sep 16, 2025
Comment on lines -31 to +35
ccall((:pango_version_string,Cairo.libpangocairo),Cstring,()) ))
ccall((:pango_version_string,Pango_jll.libpango),Cstring,()) ))
libgobject_version = VersionNumber(
unsafe_load(cglobal((:glib_major_version, Cairo.libgobject), Cuint)),
unsafe_load(cglobal((:glib_minor_version, Cairo.libgobject), Cuint)),
unsafe_load(cglobal((:glib_micro_version, Cairo.libgobject), Cuint)))
unsafe_load(cglobal((:glib_major_version, Glib_jll.libglib), Cuint)),
unsafe_load(cglobal((:glib_minor_version, Glib_jll.libglib), Cuint)),
unsafe_load(cglobal((:glib_micro_version, Glib_jll.libglib), Cuint)))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Honestly I think this was right.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And would probably work on Windows, too.

@eschnett eschnett reopened this Sep 16, 2025
libpango_version = VersionNumber(unsafe_string(
ccall((:pango_version_string,Cairo.libpango),Cstring,()) ))
ccall((:pango_version_string,Pango_jll.libpango),Cstring,()) ))
if !Sys.iswindows()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Try removing this? My hunch is that this was necessary because the wrong library was being referenced.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants