From e4d5a6c486a1b7cad3084c49b8f3370b59999114 Mon Sep 17 00:00:00 2001 From: Logan Chien Date: Wed, 26 Sep 2018 10:49:05 +0800 Subject: [PATCH] Allow cc_prebuilt version suffix to include `svn` This commit allows cc_prebuilt version suffix to include `svn`, e.g. `libclang.so.8svn`. The rationale behind this commit is that latest LLVM/Clang prebuilt binaries use `.8svn` as the version suffix. Bug: 111579848 Test: header-abi-dumper builds with the latest binaries Change-Id: I91594c5d8bc57605e2e0facb0a867dc4a4a17fe6 --- cc/util.go | 2 +- cc/util_test.go | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/cc/util.go b/cc/util.go index 93cf536c0..bab4d320b 100644 --- a/cc/util.go +++ b/cc/util.go @@ -105,7 +105,7 @@ func addSuffix(list []string, suffix string) []string { return list } -var shlibVersionPattern = regexp.MustCompile("(?:\\.\\d+)+") +var shlibVersionPattern = regexp.MustCompile("(?:\\.\\d+(?:svn)?)+") // splitFileExt splits a file name into root, suffix and ext. root stands for the file name without // the file extension and the version number (e.g. "libexample"). suffix stands for the diff --git a/cc/util_test.go b/cc/util_test.go index 3108294d0..7c718eae0 100644 --- a/cc/util_test.go +++ b/cc/util_test.go @@ -35,6 +35,22 @@ func TestSplitFileExt(t *testing.T) { } }) + t.Run("soname with svn version", func(t *testing.T) { + root, suffix, ext := splitFileExt("libtest.so.1svn") + expected := "libtest" + if root != expected { + t.Errorf("root should be %q but got %q", expected, root) + } + expected = ".so.1svn" + if suffix != expected { + t.Errorf("suffix should be %q but got %q", expected, suffix) + } + expected = ".so" + if ext != expected { + t.Errorf("ext should be %q but got %q", expected, ext) + } + }) + t.Run("version numbers in the middle should be ignored", func(t *testing.T) { root, suffix, ext := splitFileExt("libtest.1.0.30.so") expected := "libtest.1.0.30"