After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 786232 - meson: libgdk_pixbuf_xlib exports no symbols
meson: libgdk_pixbuf_xlib exports no symbols
Status: RESOLVED FIXED
Product: gdk-pixbuf
Classification: Platform
Component: general
git master
Other Linux
: Normal major
: ---
Assigned To: gdk-pixbuf-maint
gdk-pixbuf-maint
: 786270 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2017-08-13 10:06 UTC by Jan Alexander Steffens (heftig)
Modified: 2017-08-14 11:08 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
[PATCH] gdk-pixbuf-xlib: Mark public funcs _GDK_PIXBUF_EXTERN (6.03 KB, patch)
2017-08-13 10:06 UTC, Jan Alexander Steffens (heftig)
committed Details | Review

Description Jan Alexander Steffens (heftig) 2017-08-13 10:06:18 UTC
Created attachment 357513 [details] [review]
[PATCH] gdk-pixbuf-xlib: Mark public funcs _GDK_PIXBUF_EXTERN

Meson builds the library with -fvisibility=hidden, but no functions have the visibility attribute to override this.

The attached patch marks all public functions _GDK_PIXBUF_EXTERN in order to fix this. The private globals gdk_pixbuf_dpy and gdk_pixbuf_screen stay hidden, even though the autotools build exported them.
Comment 1 Emmanuele Bassi (:ebassi) 2017-08-13 10:11:59 UTC
Review of attachment 357513 [details] [review]:

If we don't want to modify this old header, the alternative approach is to use a map file, and tell Meson to export the symbols specified from there. Adding _GDK_PIXBUF_EXTERN is pretty much the same, so I don't have a strong opinion.
Comment 2 Emmanuele Bassi (:ebassi) 2017-08-13 10:30:48 UTC
Pushed to master
Comment 3 Emmanuele Bassi (:ebassi) 2017-08-14 10:36:21 UTC
*** Bug 786270 has been marked as a duplicate of this bug. ***
Comment 4 Ikey Doherty 2017-08-14 10:41:12 UTC
Not to pick holes but your new patch is inconsistent with the headers elsewhere in the project, i.e. GDK_PIXBUF_AVAILABLE_IN_ALL
Comment 5 Emmanuele Bassi (:ebassi) 2017-08-14 10:42:46 UTC
GDK_PIXBUF_AVAILABLE_IN_ALL is just a (readable) alias for _GDK_PIXBUF_EXTERN.

To be fair, gdk-pixbuf-xlib is such a niche, legacy library that I don't particularly care about its consistency and style.
Comment 6 Ikey Doherty 2017-08-14 10:43:51 UTC
Nor I - I was more concerned about restoring ABI compatibility tbqh :P
Comment 7 Ikey Doherty 2017-08-14 10:46:05 UTC
Oh btw heads up while we're talking about meson changes, haven't had time to investigate it but long story short, the `tiff` module is no longer present/installed with autotools, which is why I switched the package over to meson today .. Updating only from 2.36.7 so its a fairly small regression window luckily.
Comment 8 Jan Alexander Steffens (heftig) 2017-08-14 11:08:14 UTC
The reason I used the "private" _GDK_PIXBUF_EXTERN is that I didn't bother checking when the functions were introduced, so I didn't want to make any assertions as to their availability.