From 2d872af6e1782a2239de38bad0eb73e9e710c2dd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vivek=20Das=C2=A0Mohapatra?= <vivek@collabora.co.uk>
Date: Thu, 18 May 2017 20:14:42 +0100
Subject: [PATCH] Cleanup rules for shim library generation a bit & fix
 versioning

---
 Makefile.am | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 85202e543..d3d808941 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -21,7 +21,11 @@ ACLOCAL_AMFLAGS        = -I m4
 AM_CFLAGS 			   = --std=c99 -D_GNU_SOURCE -Wall
 
 bin_PROGRAMS 		   = elf-dump print-libstubs
-lib_LTLIBRARIES 	   = libcapsule.la libz.la libGL.la
+lib_LTLIBRARIES 	   = libcapsule.la
+
+lib_LTLIBRARIES       += libz.la
+lib_LTLIBRARIES       += libGL.la
+
 include_HEADERS        = capsule/capsule.h
 nodist_include_HEADERS = utils/utils.h utils/dump.h utils/process-pt-dynamic.h
 
@@ -39,15 +43,20 @@ libcapsule_la_SOURCES  = capsule/capsule-dlmopen.c  \
                          utils/mmap-info.c
 
 libcapsule_la_LDFLAGS  = -lelf
+############################################################################
+# shim libraries:
 
+# libz to match version 1.2.8 and have the same symbol versioning:
 libz_la_SOURCES        = shim/libz.so.c
-libz_la_LDFLAGS        = -lcapsule -version-info 1:1:0 \
+libz_la_LDFLAGS        = -lcapsule -version-number 1:2:8 \
                          -Wl,--version-script=shim/libz.so.map
 
+# libGL is always 1.2.0, and doesn't use symbol versioning:
 libGL_la_SOURCES       = shim/libGL.so.c
-libGL_la_LDFLAGS       = -lcapsule -version-info 1:1:0
+libGL_la_LDFLAGS       = -lcapsule -version-number 1:2
 
-shims      = z GL
+############################################################################
+shims      = $(patsubst shim/lib%.so.c,%,$(filter shim/lib%.so.c,$(SOURCES)))
 shim_srcs  = $(foreach l,$(shims),shim/lib$l.so.c)
 shim_base  = $(basename $(shim_srcs))
 shim_files = $(foreach y,map symbols,$(foreach x,$(shim_base),$x.$y))
-- 
GitLab