meson-0.52.0:ver. bump
This commit is contained in:
@@ -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])
|
||||||
@@ -12,13 +12,13 @@
|
|||||||
<IsA>app:console</IsA>
|
<IsA>app:console</IsA>
|
||||||
<Summary>High productivity build system</Summary>
|
<Summary>High productivity build system</Summary>
|
||||||
<Description>Yüksek verimli üretme sistemi</Description>
|
<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>
|
<BuildDependencies>
|
||||||
<Dependency>python3-devel</Dependency>
|
<Dependency>python3-devel</Dependency>
|
||||||
<Dependency>python3-setuptools</Dependency>
|
<Dependency>python3-setuptools</Dependency>
|
||||||
</BuildDependencies>
|
</BuildDependencies>
|
||||||
<Patches>
|
<Patches>
|
||||||
<!-- <Patch level="1">fix-tests.patch</Patch> -->
|
<Patch level="1">212a05b8.patch</Patch>
|
||||||
</Patches>
|
</Patches>
|
||||||
</Source>
|
</Source>
|
||||||
<Package>
|
<Package>
|
||||||
@@ -38,6 +38,13 @@
|
|||||||
</Files>
|
</Files>
|
||||||
</Package>
|
</Package>
|
||||||
<History>
|
<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">
|
<Update release="7">
|
||||||
<Date>2019-10-06</Date>
|
<Date>2019-10-06</Date>
|
||||||
<Version>0.51.2</Version>
|
<Version>0.51.2</Version>
|
||||||
|
|||||||
Reference in New Issue
Block a user