meson-0.52.0:ver. bump

This commit is contained in:
Rmys
2019-11-17 22:05:00 +03:00
parent 7920ec92b4
commit fcd0e50e48
2 changed files with 100 additions and 2 deletions
@@ -0,0 +1,91 @@
From 212a05b87ed34f921dfd07142305389dbfa9bb7d 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.
---
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])
+9 -2
View File
@@ -12,13 +12,13 @@
<IsA>app:console</IsA>
<Summary>High productivity build system</Summary>
<Description>Yüksek verimli üretme sistemi</Description>
<Archive sha1sum="acc307c85efe57dc2a5a126106219fce2dd5fee4" type="targz">https://github.com/mesonbuild/meson/releases/download/0.51.2/meson-0.51.2.tar.gz</Archive>
<Archive sha1sum="f5b924f5128f53f9eaeffc2e72ac3f757977a809" type="targz">https://github.com/mesonbuild/meson/releases/download/0.52.0/meson-0.52.0.tar.gz</Archive>
<BuildDependencies>
<Dependency>python3-devel</Dependency>
<Dependency>python3-setuptools</Dependency>
</BuildDependencies>
<Patches>
<!-- <Patch level="1">fix-tests.patch</Patch> -->
<Patch level="1">212a05b8.patch</Patch>
</Patches>
</Source>
<Package>
@@ -38,6 +38,13 @@
</Files>
</Package>
<History>
<Update release="8">
<Date>2019-11-17</Date>
<Version>0.52.0</Version>
<Comment>Version bump.</Comment>
<Name>Mustafa Cinasal</Name>
<Email>muscnsl@gmail.com</Email>
</Update>
<Update release="7">
<Date>2019-10-06</Date>
<Version>0.51.2</Version>