summaryrefslogtreecommitdiff
path: root/test cases/common
diff options
context:
space:
mode:
authorAndres Freund <andres@anarazel.de>2023-12-01 16:34:31 -0800
committerJussi Pakkanen <jpakkane@gmail.com>2023-12-04 23:54:59 +0200
commit30184a48a032e6a2a6dbf0a76e437aa676c3e4aa (patch)
treea6fc1d76e0a7a3c8b09966093a32044eab8c9c52 /test cases/common
parentf1c748df87554aa5800fe4ecdea3ab1178e8f613 (diff)
downloadmeson-30184a48a032e6a2a6dbf0a76e437aa676c3e4aa.tar.gz
macos: Skip as-needed test, the linker is too smart
The new linker in Sonoma / Xcode 15 considers the dependency via the initializer sufficient to pull in the library. The man page now notes: The linker never dead strips initialization and termination routines. They are considered "roots" of the dead strip graph. I could not find a good way to skip only if the linker version is new enough. Before long everyone will be using the new linker anyway...
Diffstat (limited to 'test cases/common')
-rw-r--r--test cases/common/173 as-needed/meson.build7
1 files changed, 7 insertions, 0 deletions
diff --git a/test cases/common/173 as-needed/meson.build b/test cases/common/173 as-needed/meson.build
index 3b54aaa02..1c2f632b4 100644
--- a/test cases/common/173 as-needed/meson.build
+++ b/test cases/common/173 as-needed/meson.build
@@ -11,3 +11,10 @@ libB = library('B', 'libB.cpp', link_with : libA)
main_exe = executable('C', 'main.cpp', link_with : [libA, libB])
test('main test', main_exe)
+
+# Since Sonoma / Xcode 15 the macos linker considers the dependency via the
+# initializer sufficient to pull in the other other library. There's no good
+# way to detect the linker version here, so just skip the on macos.
+if host_machine.system() == 'darwin'
+ error('MESON_SKIP_TEST: the macos linker is too smart for this test')
+endif