From dbc9e971bd320f3df15c1ee74f54858e6792b183 Mon Sep 17 00:00:00 2001
From: Xavier Claessens <xavier.claessens@collabora.com>
Date: Fri, 11 Oct 2019 11:01:22 -0400
Subject: [PATCH] Remove duplicated object files in static libraries

When a static library link_whole to a bunch of other static libraries,
we have to extract all their objects recursively. But that could
introduce duplicated objects. ar is dumb enough to allow this without
error, but once the resulting static library is linked into an
executable or shared library, the linker will complain about duplicated
symbols.

Upstream-Status: Backport
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

---
 mesonbuild/backend/backends.py                 |  3 ++-
 test cases/unit/69 static link/lib/func17.c    |  4 ++++
 test cases/unit/69 static link/lib/func18.c    |  6 ++++++
 test cases/unit/69 static link/lib/func19.c    |  7 +++++++
 test cases/unit/69 static link/lib/meson.build | 12 ++++++++++++
 5 files changed, 31 insertions(+), 1 deletion(-)
 create mode 100644 test cases/unit/69 static link/lib/func17.c
 create mode 100644 test cases/unit/69 static link/lib/func18.c
 create mode 100644 test cases/unit/69 static link/lib/func19.c

diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index 947be1cbef..e54809657f 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -281,7 +281,8 @@ def relpath(self, todir, fromdir):
                                os.path.join('dummyprefixdir', fromdir))
 
     def flatten_object_list(self, target, proj_dir_to_build_root=''):
-        return self._flatten_object_list(target, target.get_objects(), proj_dir_to_build_root)
+        obj_list = self._flatten_object_list(target, target.get_objects(), proj_dir_to_build_root)
+        return list(dict.fromkeys(obj_list))
 
     def _flatten_object_list(self, target, objects, proj_dir_to_build_root):
         obj_list = []
diff --git a/test cases/unit/69 static link/lib/func17.c b/test cases/unit/69 static link/lib/func17.c
new file mode 100644
index 0000000000..d1d8ec498c
--- /dev/null
+++ b/test cases/unit/69 static link/lib/func17.c	
@@ -0,0 +1,4 @@
+int func17()
+{
+  return 1;
+}
diff --git a/test cases/unit/69 static link/lib/func18.c b/test cases/unit/69 static link/lib/func18.c
new file mode 100644
index 0000000000..c149085ba4
--- /dev/null
+++ b/test cases/unit/69 static link/lib/func18.c	
@@ -0,0 +1,6 @@
+int func17();
+
+int func18()
+{
+  return func17() + 1;
+}
diff --git a/test cases/unit/69 static link/lib/func19.c b/test cases/unit/69 static link/lib/func19.c
new file mode 100644
index 0000000000..69120e4bf8
--- /dev/null
+++ b/test cases/unit/69 static link/lib/func19.c	
@@ -0,0 +1,7 @@
+int func17();
+int func18();
+
+int func19()
+{
+  return func17() + func18();
+}
diff --git a/test cases/unit/69 static link/lib/meson.build b/test cases/unit/69 static link/lib/meson.build
index 5f04aab6a1..8f95fc4546 100644
--- a/test cases/unit/69 static link/lib/meson.build	
+++ b/test cases/unit/69 static link/lib/meson.build	
@@ -66,3 +66,15 @@ libfunc15 = static_library('func15', 'func15.c',
 libfunc16 = static_library('func16', 'func16.c',
   link_with : libfunc15,
   install : true)
+
+# Verify func17.c.o gets included only once into libfunc19, otherwise
+# func19-shared would failed with duplicated symbol.
+libfunc17 = static_library('func17', 'func17.c',
+  install : false)
+libfunc18 = static_library('func18', 'func18.c',
+  link_with : libfunc17,
+  install : false)
+libfunc19 = static_library('func19', 'func19.c',
+  link_whole : [libfunc17, libfunc18],
+  install : false)
+shared_library('func19-shared', link_whole : [libfunc19])
