Fix symbol prefixing audit for libdecrepit and libpki.

libssl still to be done.

Bug: 544576498
Change-Id: I8f0e3c8e22bb155e1893be6c7723f2646a6a6964
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/100553
Reviewed-by: Xiangfei Ding <xfding@google.com>
Commit-Queue: Xiangfei Ding <xfding@google.com>
Presubmit-BoringSSL-Verified: boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com <boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 31b4cc6..6cda3c9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -853,6 +853,8 @@
                   run ${CMAKE_CURRENT_SOURCE_DIR}/util/audit_symbols.go
                   -ignore-symbols-with ${BORINGSSL_PREFIX}
                   $<TARGET_FILE:crypto>
+                  $<TARGET_FILE:decrepit>
+                  $<TARGET_FILE:pki>
           USES_TERMINAL
         )
         add_dependencies(run_tests check_prefixed_symbols)
diff --git a/util/audit_symbols.go b/util/audit_symbols.go
index 039efe2..13e03ae 100644
--- a/util/audit_symbols.go
+++ b/util/audit_symbols.go
@@ -54,11 +54,13 @@
 	regexp.MustCompile(`^_ZTI.*`),                        // typeinfo
 	regexp.MustCompile(`^_ZTS.*`),                        // typeinfo name
 	regexp.MustCompile(`^_ZTV.*`),                        // vtable
+	regexp.MustCompile(`^_ZTv.*`),                        // virtual thunks
 	regexp.MustCompile(`^_Z[A-Z]*St.*`),                  // std::
 	regexp.MustCompile(`^_Zd.*`),                         // operator delete()
 	regexp.MustCompile(`^_Zn.*`),                         // operator new()
 	regexp.MustCompile(`^__\w+\.get_pc_thunk\..*`),       // PIC
 	regexp.MustCompile(`^___asan_.*`),                    // AddressSanitizer
+	regexp.MustCompile(`^__clang_call_terminate$`),       // noexcept boundaries
 	regexp.MustCompile(`^__cxa_.*`),                      // libc++abi
 	regexp.MustCompile(`^__dynamic_cast$`),               // libc++abi
 	regexp.MustCompile(`^__emutls_get_address$`),         // emulated TLS
@@ -88,6 +90,7 @@
 	regexp.MustCompile(`^_real$`),                                       // Number literals
 	regexp.MustCompile(`^_vfprintf_l$`),                                 // vfprintf()
 	regexp.MustCompile(`^_xmm$`),                                        // SSE
+	regexp.MustCompile(`^ceilf$`),                                       // std::unordered_* uses this
 	regexp.MustCompile(`^fprintf$`),                                     // fprintf()
 	regexp.MustCompile(`^snprintf$`),                                    // snprintf()
 	regexp.MustCompile(`^time$`),                                        // MSVC 14.50+ CRT
@@ -140,6 +143,8 @@
 	for _, name := range []string{
 		// List of libraries for which symbol prefixing is stable.
 		"crypto",
+		"decrepit",
+		"pki",
 	} {
 		found := ""
 		// Trying patterns for all platforms as the current build might be a cross compile.