On Tue, 21 Feb 2017 16:14:28 +0000 Emil Velikov <emil.l.veli...@gmail.com> wrote:
> From: Emil Velikov <emil.veli...@collabora.com> > > Currently both of libwayland-{client,server} export the same util > (amongst other) symbols. > > Although not crucial this is something which should be avoided where > possible. > > As such let's move the library to a shared one and introduce a static > one for the purposes of wayland-scanner. > > Any old (existing) users of the new libwayland-{client,server} will be > safe since the libwayland* libraries will pull the util one and the > symbols will be resolved at runtime. > > Any programs building against the new libraries will have the dependency > (both compile and link-wise) resolved automatically by the Requires > field of the .pc file. > > Note: it's not possible to 'hide' the wl_list/wl_array API since it's > been part for the ABI (implicitly pulled via the wayland headers) for a > while, plus doing so will break KF5 and mpv, at least. > > v2: Rebase > > Signed-off-by: Emil Velikov <emil.veli...@collabora.com> > --- > Makefile.am | 18 ++++++++++++------ > configure.ac | 2 ++ > src/wayland-client-uninstalled.pc.in | 1 + > src/wayland-client.pc.in | 1 + > src/wayland-server-uninstalled.pc.in | 1 + > src/wayland-server.pc.in | 1 + > src/wayland-util-uninstalled.pc.in | 8 ++++++++ > src/wayland-util.pc.in | 12 ++++++++++++ > 8 files changed, 38 insertions(+), 6 deletions(-) > create mode 100644 src/wayland-util-uninstalled.pc.in > create mode 100644 src/wayland-util.pc.in Hi, since I have so much trouble making my mind on this patch, how about a silly counter-proposal? Let's squash libwayland-server.so and libwayland-client.so into a single libwayland.so. That would take care of the duplicate exported symbols issue not just for the util functions, but also for the exported variables produced by wayland-scanner. Since we have many programs (libEGL!) that necessarily already link to both, there cannot be problems from linking to everything always. We would still need to install dummy libwayland-server.so and libwayland-client.so just for pulling in libwayland.so, but that's no worse than Emil's proposition. Whether we have the existing .pc files telling to link to server/client or just libwayland.so would be up for debate. I'm not suggesting to merge the .pc files. libwayland-server.so and libwayland-client.so have exactly the same set of dependencies. Any downsides to this approach vs. doing nothing vs. Emil's libwayland-{client,server,util}.so? Thanks, pq
pgp_bLhzOlTb8.pgp
Description: OpenPGP digital signature
_______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel