fix dpdk-21.11 build failure
This commit is contained in:
parent
85426f2eaf
commit
a1ad2ecb29
142
Build-private-directory-name-from-output-file-name.patch
Normal file
142
Build-private-directory-name-from-output-file-name.patch
Normal file
@ -0,0 +1,142 @@
|
||||
From b4b1a2c5a145c1459fc4563a289e164e23bd6a02 Mon Sep 17 00:00:00 2001
|
||||
From: Jussi Pakkanen <jpakkane@gmail.com>
|
||||
Date: Sat, 11 Apr 2020 00:08:51 +0300
|
||||
Subject: [PATCH] Build private directory name from output file name.
|
||||
|
||||
Prefer:https://github.com/mesonbuild/meson/commit/b4bla2c5a145c1459fc4563a289e164e23bd6a02
|
||||
|
||||
---
|
||||
mesonbuild/backend/backends.py | 2 +-
|
||||
mesonbuild/backend/vs2010backend.py | 3 +++
|
||||
run_unittests.py | 38 +++++++++++++++++++----------
|
||||
3 files changed, 29 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
|
||||
index 9d527cbc9a67..3d12651c261b 100644
|
||||
--- a/mesonbuild/backend/backends.py
|
||||
+++ b/mesonbuild/backend/backends.py
|
||||
@@ -259,7 +259,7 @@ def get_target_source_dir(self, target):
|
||||
return self.build_to_src
|
||||
|
||||
def get_target_private_dir(self, target):
|
||||
- return os.path.join(self.get_target_dir(target), target.get_id())
|
||||
+ return os.path.join(self.get_target_filename(target) + '.p')
|
||||
|
||||
def get_target_private_dir_abs(self, target):
|
||||
return os.path.join(self.environment.get_build_dir(), self.get_target_private_dir(target))
|
||||
diff --git a/mesonbuild/backend/vs2010backend.py b/mesonbuild/backend/vs2010backend.py
|
||||
index 614d35700215..6965c423614d 100644
|
||||
--- a/mesonbuild/backend/vs2010backend.py
|
||||
+++ b/mesonbuild/backend/vs2010backend.py
|
||||
@@ -98,6 +98,9 @@ def __init__(self, build: T.Optional[build.Build], interpreter: T.Optional[Inter
|
||||
self.subdirs = {}
|
||||
self.handled_target_deps = {}
|
||||
|
||||
+ def get_target_private_dir(self, target):
|
||||
+ return os.path.join(self.get_target_dir(target), target.get_id())
|
||||
+
|
||||
def generate_custom_generator_commands(self, target, parent_node):
|
||||
generator_output_files = []
|
||||
custom_target_include_dirs = []
|
||||
diff --git a/run_unittests.py b/run_unittests.py
|
||||
index b21f785ea428..c04b82523a2d 100755
|
||||
--- a/run_unittests.py
|
||||
+++ b/run_unittests.py
|
||||
@@ -2449,9 +2449,12 @@ def test_internal_include_order(self):
|
||||
# Check include order for 'someexe'
|
||||
incs = [a for a in split_args(execmd) if a.startswith("-I")]
|
||||
self.assertEqual(len(incs), 9)
|
||||
- # target private dir
|
||||
- someexe_id = Target.construct_id_from_path("sub4", "someexe", "@exe")
|
||||
- self.assertPathEqual(incs[0], "-I" + os.path.join("sub4", someexe_id))
|
||||
+ # Need to run the build so the private dir is created.
|
||||
+ self.build()
|
||||
+ pdirs = glob(os.path.join(self.builddir, 'sub4/someexe*.p'))
|
||||
+ self.assertEqual(len(pdirs), 1)
|
||||
+ privdir = pdirs[0][len(self.builddir)+1:]
|
||||
+ self.assertPathEqual(incs[0], "-I" + privdir)
|
||||
# target build subdir
|
||||
self.assertPathEqual(incs[1], "-Isub4")
|
||||
# target source subdir
|
||||
@@ -2472,7 +2475,10 @@ def test_internal_include_order(self):
|
||||
incs = [a for a in split_args(fxecmd) if a.startswith('-I')]
|
||||
self.assertEqual(len(incs), 9)
|
||||
# target private dir
|
||||
- self.assertPathEqual(incs[0], '-Isomefxe@exe')
|
||||
+ pdirs = glob(os.path.join(self.builddir, 'somefxe*.p'))
|
||||
+ self.assertEqual(len(pdirs), 1)
|
||||
+ privdir = pdirs[0][len(self.builddir)+1:]
|
||||
+ self.assertPathEqual(incs[0], '-I' + privdir)
|
||||
# target build dir
|
||||
self.assertPathEqual(incs[1], '-I.')
|
||||
# target source dir
|
||||
@@ -5577,6 +5583,10 @@ def test_qt5dependency_qmake_detection(self):
|
||||
self.assertRegex('\n'.join(mesonlog),
|
||||
r'Run-time dependency qt5 \(modules: Core\) found: YES .* \((qmake|qmake-qt5)\)\n')
|
||||
|
||||
+ def glob_sofiles_without_privdir(self, g):
|
||||
+ files = glob(g)
|
||||
+ return [f for f in files if not f.endswith('.p')]
|
||||
+
|
||||
def _test_soname_impl(self, libpath, install):
|
||||
if is_cygwin() or is_osx():
|
||||
raise unittest.SkipTest('Test only applicable to ELF and linuxlike sonames')
|
||||
@@ -5592,28 +5602,28 @@ def _test_soname_impl(self, libpath, install):
|
||||
self.assertPathExists(nover)
|
||||
self.assertFalse(os.path.islink(nover))
|
||||
self.assertEqual(get_soname(nover), 'libnover.so')
|
||||
- self.assertEqual(len(glob(nover[:-3] + '*')), 1)
|
||||
+ self.assertEqual(len(self.glob_sofiles_without_privdir(nover[:-3] + '*')), 1)
|
||||
|
||||
# File with version set
|
||||
verset = os.path.join(libpath, 'libverset.so')
|
||||
self.assertPathExists(verset + '.4.5.6')
|
||||
self.assertEqual(os.readlink(verset), 'libverset.so.4')
|
||||
self.assertEqual(get_soname(verset), 'libverset.so.4')
|
||||
- self.assertEqual(len(glob(verset[:-3] + '*')), 3)
|
||||
+ self.assertEqual(len(self.glob_sofiles_without_privdir(verset[:-3] + '*')), 3)
|
||||
|
||||
# File with soversion set
|
||||
soverset = os.path.join(libpath, 'libsoverset.so')
|
||||
self.assertPathExists(soverset + '.1.2.3')
|
||||
self.assertEqual(os.readlink(soverset), 'libsoverset.so.1.2.3')
|
||||
self.assertEqual(get_soname(soverset), 'libsoverset.so.1.2.3')
|
||||
- self.assertEqual(len(glob(soverset[:-3] + '*')), 2)
|
||||
+ self.assertEqual(len(self.glob_sofiles_without_privdir(soverset[:-3] + '*')), 2)
|
||||
|
||||
# File with version and soversion set to same values
|
||||
settosame = os.path.join(libpath, 'libsettosame.so')
|
||||
self.assertPathExists(settosame + '.7.8.9')
|
||||
self.assertEqual(os.readlink(settosame), 'libsettosame.so.7.8.9')
|
||||
self.assertEqual(get_soname(settosame), 'libsettosame.so.7.8.9')
|
||||
- self.assertEqual(len(glob(settosame[:-3] + '*')), 2)
|
||||
+ self.assertEqual(len(self.glob_sofiles_without_privdir(settosame[:-3] + '*')), 2)
|
||||
|
||||
# File with version and soversion set to different values
|
||||
bothset = os.path.join(libpath, 'libbothset.so')
|
||||
@@ -5621,7 +5631,7 @@ def _test_soname_impl(self, libpath, install):
|
||||
self.assertEqual(os.readlink(bothset), 'libbothset.so.1.2.3')
|
||||
self.assertEqual(os.readlink(bothset + '.1.2.3'), 'libbothset.so.4.5.6')
|
||||
self.assertEqual(get_soname(bothset), 'libbothset.so.1.2.3')
|
||||
- self.assertEqual(len(glob(bothset[:-3] + '*')), 3)
|
||||
+ self.assertEqual(len(self.glob_sofiles_without_privdir(bothset[:-3] + '*')), 3)
|
||||
|
||||
def test_soname(self):
|
||||
self._test_soname_impl(self.builddir, False)
|
||||
@@ -5741,10 +5751,12 @@ def test_compiler_cpp_stds(self):
|
||||
def test_unity_subproj(self):
|
||||
testdir = os.path.join(self.common_test_dir, '45 subproject')
|
||||
self.init(testdir, extra_args='--unity=subprojects')
|
||||
- simpletest_id = Target.construct_id_from_path('subprojects/sublib', 'simpletest', '@exe')
|
||||
- self.assertPathExists(os.path.join(self.builddir, 'subprojects/sublib', simpletest_id, 'simpletest-unity0.c'))
|
||||
- sublib_id = Target.construct_id_from_path('subprojects/sublib', 'sublib', '@sha')
|
||||
- self.assertPathExists(os.path.join(self.builddir, 'subprojects/sublib', sublib_id, 'sublib-unity0.c'))
|
||||
+ pdirs = glob(os.path.join(self.builddir, 'subprojects/sublib/simpletest*.p'))
|
||||
+ self.assertEqual(len(pdirs), 1)
|
||||
+ self.assertPathExists(os.path.join(pdirs[0], 'simpletest-unity0.c'))
|
||||
+ sdirs = glob(os.path.join(self.builddir, 'subprojects/sublib/*sublib*.p'))
|
||||
+ self.assertEqual(len(sdirs), 1)
|
||||
+ self.assertPathExists(os.path.join(sdirs[0], 'sublib-unity0.c'))
|
||||
self.assertPathDoesNotExist(os.path.join(self.builddir, 'user@exe/user-unity.c'))
|
||||
self.build()
|
||||
|
||||
@ -1,10 +1,11 @@
|
||||
Name: meson
|
||||
Version: 0.54.3
|
||||
Release: 1
|
||||
Release: 2
|
||||
Summary: An open source high quality build system
|
||||
License: ASL 2.0
|
||||
URL: https://mesonbuild.com/
|
||||
Source0: https://github.com/mesonbuild/meson/archive/%{version}/%{name}-%{version}.tar.gz
|
||||
Patch0: Build-private-directory-name-from-output-file-name.patch
|
||||
|
||||
BuildArch: noarch
|
||||
Obsoletes: %{name}-gui < 0.31.0-3
|
||||
@ -48,6 +49,9 @@ install -Dpm0644 data/macros.%{name} %{buildroot}%{_rpmmacrodir}/macros.%{name}
|
||||
%{_mandir}/man1/%{name}.1*
|
||||
|
||||
%changelog
|
||||
* Mon Oct 16 2023 chenyaqiang <chengyaqiang@huawei.com> - 0.54.3-2
|
||||
- fix dpdk-21.11 build failure
|
||||
|
||||
* Sun Jun 28 2020 huanghaitao <huanghaitao8@huawei.com> - 0.54.3-1
|
||||
- Upgrade to meet compilation needs
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user